-2103:无效的模式名[%s]

达梦数据库中执行sql语句,提示报错-2103:无效的模式名[%s]。

-2103:无效的模式名[%s]

复现场景1:创建重复模式报错

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条语句执行失败

复现场景2:查询不存在的模式对象

select * from OA.TABLE1;

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

[执行语句1]:
select * from OA.TABLE1;
执行失败(语句1)
-2103: 第1 行附近出现错误:
无效的模式名[OA]

1条语句执行失败

SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE='SCH' AND OBJECT_NAME='OA';

复现场景3:大小写敏感问题

关于实例大小写是否敏感,区别如下:

数据库实例大小写敏感:
创建模式、对象及字段时,若不加双引号,则默认将小写转为大写,如果添加双引号,则与双引号中的大小写保持一致。对于表中的字段内容比较时,是区分大小写,即where password=’A’和 where password=’a’的查询结果是不一样的。

数据库实例大小写不敏感:

模式、对象、字段大小写无所谓,创建时指定大小写在显示时按创建时的大小写进行显示,但是在SQL中指定时不区分大小写。对于插入数据一样,保持插入的数据与插入时的大小写一样。在插入结果查询时,a和A是等价的,where password=’A’和 where password=’a’的查询结果是一样的。

查看当前数据库实例大小写敏感情况:

SELECT SF_GET_CASE_SENSITIVE_FLAG();
SELECT '大小写是否敏感:',DECODE(SF_GET_CASE_SENSITIVE_FLAG,'0','不敏感','1','敏感') 

案例:大小写敏感库中,创建了表名自动转大写但查询的是小写的表

create table SYSDBA.tab1 (a int);
总共1个语句正依次执行...

[执行语句1]:
create table SYSDBA.tab1 (a int);
执行成功, 执行耗时30毫秒. 执行号:1623
影响了0条记录

1条语句执行成功

select * from SYSDBA."tab1";
总共1个语句正依次执行...

[执行语句1]:
select * from SYSDBA."tab1";
执行失败(语句1)
-2106: 第1 行附近出现错误:
无效的表或视图名[tab1]

1条语句执行失败

select * from SYSDBA."TAB1";
总共1个语句正依次执行...

[执行语句1]:
select * from SYSDBA."TAB1";
执行成功, 执行耗时1毫秒. 执行号:1624

1条语句执行成功

原创文章,作者:lzb,如若转载,请注明出处:http://www.wlkjzx.com/2023/07/05/2103%ef%bc%9a%e6%97%a0%e6%95%88%e7%9a%84%e6%a8%a1%e5%bc%8f%e5%90%8ds/

(0)
打赏 微信扫一扫 微信扫一扫
lzblzb
上一篇 2023年6月27日
下一篇 2023年7月7日

相关推荐

发表回复

登录后才能评论