Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORA-00942:表或视图不存在-Oracle_Oracle - Fatal编程技术网

ORA-00942:表或视图不存在-Oracle

ORA-00942:表或视图不存在-Oracle,oracle,Oracle,我正在使用Oracle11g 我在使用查询时遇到此错误: select count(*) from potluck; 因此,当我使用: select count(*) from "potluck"; 每个人都很好。。。 请告诉我为什么? 谢谢在Oracle中的标识符周围加双引号会导致Oracle将标识符视为区分大小写,而不是使用默认的不区分大小写。如果创建名称周围带有双引号的表(或列),则必须始终使用双引号并通过正确指定大小写来引用标识符(所有大写标识符除外,其中双引号没有意义) 在幕后,O

我正在使用Oracle11g 我在使用查询时遇到此错误:

select count(*) from potluck;
因此,当我使用:

select count(*) from "potluck";
每个人都很好。。。 请告诉我为什么?
谢谢

在Oracle中的标识符周围加双引号会导致Oracle将标识符视为区分大小写,而不是使用默认的不区分大小写。如果创建名称周围带有双引号的表(或列),则必须始终使用双引号并通过正确指定大小写来引用标识符(所有大写标识符除外,其中双引号没有意义)

在幕后,Oracle总是进行区分大小写的标识符匹配。但在进行匹配之前,它总是将不带双引号的标识符强制转换为大写。如果在标识符周围加双引号,Oracle将跳过大写转换

所以如果你做类似的事情

CREATE TABLE my_table( 
col1 number,
col2 number
)
 SELECT * FROM "my_table"
CREATE TABLE "my_other_table"( 
col1 number,
col2 number
)
你可以

SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
但有点像

CREATE TABLE my_table( 
col1 number,
col2 number
)
 SELECT * FROM "my_table"
CREATE TABLE "my_other_table"( 
col1 number,
col2 number
)
将失败

另一方面,如果你做了

CREATE TABLE my_table( 
col1 number,
col2 number
)
 SELECT * FROM "my_table"
CREATE TABLE "my_other_table"( 
col1 number,
col2 number
)
你不能这样做

SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
但是这个

SELECT * FROM "my_other_table"

将起作用

有人创建了带有引号的表,因此名称区分大小写-
创建表“potluck”…
。当一个表有这样一个名称时,引用它的唯一方法是使用与第二个示例中相同的大小写,使用带引号的名称。如果可能的话,将表重命名为一个非引用的名称,并且在将该表重命名为非引号之后,也改变所有引用该表的程序。个人认为引用的表(和其他数据库对象)名称是一个错误,甚至许多工具引用这些名称。YMMV。