在TSQL中,我可以使用类似Select [table] from tablename的东西来选择一个名为“table”的列。我如何在oracle中为保留字做这件事?编辑:我试过方括号,双引号,单引号和反引号,它们不起作用。作为进一步的澄清,我有一个列,有人命名为comment。由于这是一个保留字,甲骨文正在尝试选择它,它在解析查询时失败。我已经尝试从tablename中选择“comment”,但它不起作用。我将检查大小写并返回。
Select [table] from tablename
bvk5enib1#
从快速搜索,Oracle似乎使用双引号(",例如"table"),显然需要正确的大小写-而对于任何感兴趣的人,MySQL默认使用反引号(`),除非为了兼容性而设置为使用双引号。
"
"table"
js81xvg62#
Oracle通常需要双引号来分隔SQL语句中标识符的名称,例如。
SELECT "MyColumn" AS "MyColAlias" FROM "MyTable" "Alias" WHERE "ThisCol" = 'That Value';
字符串但是,它允许省略双引号,在这种情况下,它会悄悄地将标识符转换为NULL:
SELECT MyColumn AS MyColAlias FROM MyTable Alias WHERE ThisCol = 'That Value';
型在内部转换为类似于:
SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS" FROM "THEUSER" . "MYTABLE" "ALIAS" WHERE "ALIAS" . "THISCOL" = 'That Value';
型
6g8kf2rb3#
当我把关键字作为列名之一时,双引号在Oracle中起作用。例如:
select t."size" from table t
字符串
iovurdzv4#
Oracle确实使用双引号,但您最有可能需要将对象名称置于大写形式,例如“TABLE”。
CREATE TABLE table AS ...
字符串Oracle会将对象创建为大写。但是,引用不区分大小写,除非使用双引号!
mwecs4sa5#
您必须将该列重命名为其他名称,因为TABLE是Oracle保留的。您可以在Oracle视图V$RESERVED_WORDS中查看Oracle的所有保留字。
TABLE
V$RESERVED_WORDS
5条答案
按热度按时间bvk5enib1#
从快速搜索,Oracle似乎使用双引号(
"
,例如"table"
),显然需要正确的大小写-而对于任何感兴趣的人,MySQL默认使用反引号(`),除非为了兼容性而设置为使用双引号。js81xvg62#
Oracle通常需要双引号来分隔SQL语句中标识符的名称,例如。
字符串
但是,它允许省略双引号,在这种情况下,它会悄悄地将标识符转换为NULL:
型
在内部转换为类似于:
型
6g8kf2rb3#
当我把关键字作为列名之一时,双引号在Oracle中起作用。
例如:
字符串
iovurdzv4#
Oracle确实使用双引号,但您最有可能需要将对象名称置于大写形式,例如“TABLE”。
字符串
Oracle会将对象创建为大写。但是,引用不区分大小写,除非使用双引号!
mwecs4sa5#
您必须将该列重命名为其他名称,因为
TABLE
是Oracle保留的。您可以在Oracle视图
V$RESERVED_WORDS
中查看Oracle的所有保留字。