代码之家  ›  专栏  ›  技术社区  ›  Spence

如何在Oracle中转义保留字?

  •  113
  • Spence  · 技术社区  · 15 年前

    在TSQL中,我可以使用 Select [table] from tablename 选择名为“table”的列。

    如何在Oracle中为保留字执行此操作?

    编辑:我试过方括号、双引号、单引号和反引号,它们不起作用…

    作为进一步的澄清,我有一个专栏,有人将其命名为评论。由于这是一个保留字,所以甲骨文在尝试用它进行选择时遇到了摇摆不定的问题,在分析查询时失败了。我试过从tablename中选择“comment”,但没用。我去查一下箱子,然后回来。

    5 回复  |  直到 15 年前
        1
  •  166
  •   Luke Girvin Nathan Bedford    12 年前

    " "table" ) 显然需要正确的案例 _,但是,对于任何感兴趣的人,MySQL默认使用反勾号(`),除非设置为使用双引号以实现兼容性。

        2
  •  31
  •   Jeffrey Kemp    7 年前

    SELECT "MyColumn" AS "MyColAlias"
    FROM "MyTable" "Alias"
    WHERE "ThisCol" = 'That Value';
    

    但是,它允许省略双引号,在这种情况下,它会悄悄地将标识符转换为大写:

    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';
    
        3
  •  7
  •   kabirbaidhya Jan Hančič    7 年前

    select t."size" from table t 
    
        4
  •  3
  •   Andrew not the Saint    15 年前

    Oracle确实使用双引号,但您很可能需要将对象名放在大写,例如“table”。默认情况下,如果创建的对象没有双引号,例如

    CREATE TABLE table AS ...
    

        5
  •  -7
  •   Pete Irfan TahirKheli    11 年前

    TABLE

    V$RESERVED_WORDS