在达梦数据库中执行sql操作,很多时候都会越到报错:「-2103」:无效的模式名[xxx]的错误。该报错的原因其实很简单,但是我们需要先来理解达梦数据库的数据库模式。

在达梦数据库中,我们每创建一个用户,就会自动创建一个与用户名相同的模式出来,在模式中是具体的数据库对象,比如视图、表、函数等等。其次,达梦数据库每一个用户时支持创建多个模式的,也就是说我创建一个TEST用户,那么它会自动创建一个TEST的模式,默认的数据库对象都会在TEST模式,默认的模式在指定对象名时可以忽略模式名的前缀,比如TEST模式的A表,我们查询可以写为select * from TEST.A,或者可以忽略模式名写为select * from A。但如果TEST用户再创建一个TEST1的模式,那我们查TEST1模式中的表B的时候,就必须待模式名,比如:select * from TEST1.B,因为TEST1不是TEST用户的默认模式,所以必须加模式名前缀。

其次,我们还需要理解达梦数据库是一个单库模式,它不像mysql数据库是一个多库的模式。

下面我们来说说该错误代码的报错原因,一般来说有这么几个方面:

1、首先在数据库中检查,看是否有这个模式;

2、注意大小写敏感问题,在大小写敏感的数据库实例里面,如果模式名是小写,可以试试加将报错的模式加双引号,否则默认转成大写;

测试案例:

CREATE SCHEMA "SYSDBA_1" AUTHORIZATION "SYSDBA";

执行成功

CREATE SCHEMA "SYSDBA_1" AUTHORIZATION "SYS";

总共1个语句正依次执行...

[执行语句1]:

CREATE SCHEMA "SYSDBA_1" AUTHORIZATION "SYS";

执行失败(语句1)

-2103: 无效的模式名[SYSDBA_1]

1条语句执行失败

举报/反馈

古今中外畅所欲言

4420获赞 1525粉丝
古往今来,这人世间的事谁能说的清楚
关注
0
0
收藏
分享