不带引号的表名不起作用

时间:2012-04-20 07:56:50

标签: oracle oracle10g

我有一个问题。为什么我的Oracle Express Edition需要双引号表名称:

不工作选择:

select * from table

工作选择:

select * from "table" 

感谢您对我的帖子进行编辑的答案和帮助。我很困惑如何命名这个案例。

2 个答案:

答案 0 :(得分:4)

只有在您使用的名称是关键字(,您的示例 - table处于此情况)或者您想要包含特殊字符或非字母数字字符(例如"Multi word table name")。

“_中包含的名称区分大小写。

答案 1 :(得分:0)

仅使用双引号: 从“table”中选择*;

它的工作原理没有引号只有名称被创建为大写。默认情况下,所有未引用的名称都以大写形式存储。

例如:

CREATE TABLE "T1" (x number);

-- That works:
select * from "T1";

-- that works too:
select * from t1;

-- that works too:
select * from T1;

TABLE - 是一个关键字。因此,即使在create语句中使用大写的名称,也可以使用不带引号:

CREATE TABLE "TABLE" (x number);

select * from table;

ORA-00906: missing left parenthesis