2016-03-02 17 views
0

我在Oracle SQL中遇到了以下奇怪的问题。我有一个名为schema_version表,但我不能在它运行简单的选择:使用双引号括起表名时,只能在Oracle SQL中查找表。为什么?

> 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 

现在,如果我尝试运行同样的查询,但这个时候周围用双引号一切表的名称似乎运行正常:

> SELECT * FROM "schema_version"; 
< results are shown > 

从我读过@https://stackoverflow.com/a/7425931/130758我不应该使用双引号是好的。我可能会错过什么?感谢

回答

5

如果作为

CREATE TABLE "schema_version" (...) 

其名称被存储在目录中的确切(低级)的情况下创建该表。当您引用名称加引号:

SELECT * FROM schema_version; 

名称转换为默认大写,因此该表不能被发现。当您引用所引用的名称时:

SELECT * FROM "schema_version"; 

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

相关问题