TABLE_NAME与" TABLE_NAME"之间存在差异在Oracle?

时间:2014-11-21 03:55:37

标签: oracle navicat

我是一个非常新的Oracle SQL用户,我遇到了问题。

如果我创建一个包含

等代码的表
create table TBL_NAME...

之后我可以通过

获取数据
  

从TBL_NAME中选择*;

但是,当我使用Navicat创建表(只需单击按钮新表)时,我必须在表名中添加“”以访问我的表,例如:

select * from "TBL_NAME";

那么,还有其他类型的表吗?如果我使用Navicat创建表,它是什么类型的?

1 个答案:

答案 0 :(得分:1)

当您在没有双引号的Oracle中指定表的名称时,Oracle会将该表名转换为大写。但是,如果您在双引号中指定表的名称,那么Oracle将尊重您可能拥有的小写字母。

因此,在您的示例中,表的名称已经全部为大写,那么指定或不指定双引号没有区别。

但是,例如,如果你创建一个这样的表:

CREATE TABLE "my_table" ....

然后你不能这样访问它:

SELECT * FROM my_table;

因为Oracle会将该选择转换为:

SELECT * FROM MY_TABLE;

你的系统中没有这样的表格。

在你使用Navicat的情况下,它只需要你按原样指定表的名称,但不要担心,只需加上双引号并坚持使用所有大写名称,你就可以了。