专栏/培训园地/ 文章详情 /

达梦V8报错-非法的基类名[JSON]

老哥讲数据库 2025/01/14 179 0 0
摘要

## 问题描述:
今天朋友问我一个对已有的表添加JSON数据类型的字段报错的问题,表的结构很复杂,我简化了一下,并尝试复现了这个问题:
首先,创建一个表,语句如下:

CREATE TABLE "CONFIG_TABS"
(
	"ID"  INTEGER NOT NULL
);

复制

然后,给这个表添加一个JSON数据类型的字段,语句如下:

ALTER TABLE "CONFIG_TABS" ADD COLUMN "CONFIG_INFO" JSON;

复制

结果:哦吼,它报错了。
具体报错信息是:-3719 非法的基类名[JSON]
如下图:
image.png

但是,达梦明明是支持JSON数据类型的,如下图:
image.png

这是为什么呢?

## 解决过程:
网上查询一番,在达梦官网的技术手册中找到了答案,如下图:
image.png
原来,JSON是嵌套了各种数据类型来使用的。

它其中可以嵌套“字符串 string、数字 number、布尔值 true 和 false、 null、对象 object 和数组 array”。

按照这个说明,既然我添加的字段中JSON嵌套的内容是字符串string,那么按照手册中的示例修改添加字段的语句如下:

ALTER TABLE "CONFIG_TABS" ADD COLUMN "CONFIG_INFO" VARCHAR2(100) CHECK (CONFIG_INFO IS JSON(LAX));

复制

再次执行,成功。
image.png

## 波澜再起
貌似问题到这里就圆满了,我给朋友回复了这个结果。
然后他给我回了下面这个截图,事情再次陷入了被动。
如下图:
image.png
他在另一套达梦实例中,用之前直接添加JSON数据类型字段报错的那条语句居然执行成功了。

我陷入了长时间的静止,这一点都不振奋。
那么,谁能解释下这个现象呢?

## 补充下版本信息:

我的环境:

  • 达梦—dm8_20240712_x86_rh7_64.iso
  • OS----银河麒麟服务器版V10SP3

朋友的环境:

  • 达梦—dm8_20241011_x86_win_64.zip
  • OS----windows

期待一个权威的解答。

评论
后发表回复

作者

admin

文章

0

阅读量

0

获赞

0

扫一扫
联系客服