在使用双引号括起表名时,只能在Oracle SQL中查找表.为什么?

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/我应该没有使用双引号.我可能缺少什么?谢谢

mus*_*cio 5

如果表创建为

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)

表名按原样使用(小写)并与目录中的名称匹配.