dev*_*ium 0 sql oracle oracle11g
我对Oracle SQL有以下奇怪的问题.我有一个名为schema_version的表,但我不能对它进行简单的选择:
> SELECT * FROM schema_version;
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Error at Line: 1 Column: 15
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试运行相同的查询,但这次用双引号围绕表名,一切似乎运行正常:
> SELECT * FROM "schema_version";
< results are shown >
Run Code Online (Sandbox Code Playgroud)
从我读过的内容@ /sf/answers/519815201/我应该没有使用双引号.我可能缺少什么?谢谢
如果表创建为
CREATE TABLE "schema_version" (...)
Run Code Online (Sandbox Code Playgroud)
它的名称以精确(较低)的形式存储在目录中.当您引用未引用的名称时:
SELECT * FROM schema_version;
Run Code Online (Sandbox Code Playgroud)
默认情况下,名称将转换为大写,因此无法找到该表.当您引用引用的名称时:
SELECT * FROM "schema_version";
Run Code Online (Sandbox Code Playgroud)
表名按原样使用(小写)并与目录中的名称匹配.