我可以使用Oracle在列标题中转义双引号吗?

时间:2013-01-24 11:59:13

标签: sql database oracle header escaping

创建一个带双引号的表来逃避真正的双引号似乎在Oracle的SQL语法中不起作用:

CREATE TABLE "MyTable" (
"Col""umn 1" varchar(168)
);

以上失败。有没有办法逃避双重引用以使'Col'umn 1'?

3 个答案:

答案 0 :(得分:8)

你做不到。 根据{{​​3}}:

  

不带引号的标识符只能包含来自的字母数字字符   您的数据库字符集和下划线(_),美元符号($),   和英镑符号(#)。数据库链接还可以包含句点(。)和   “at”标志(@)。 Oracle强烈反对使用$和#in   不带引号的标识符。

     

带引号的标识符可以包含任何字符和标点符号   以及空间。但是,既没有引用也没有引用标识符   可以包含双引号或空字符(\ 0)。

答案 1 :(得分:2)

当然,您可以使用unicode!

SELECT
    1 "“Unicode Rocks”",
    2 "ʺSooo cooolʺ",
    3 ""My co-workers love me""
FROM DUAL

答案 2 :(得分:0)

也许这会有所帮助......但请不要创建包含此类列的表格:

CREATE TABLE DropMe AS
SELECT rpad('X', 168, ' ') "Col''umn1" FROM dual
/

SELECT * FROM DropMe
/

SQL>

Col"umn1
-------------------------------------.....
X