创建一个带有双引号的表来转义真正的双引号在 Oracle 的 SQL 语法中似乎不起作用:
CREATE TABLE "MyTable" (
"Col""umn 1" varchar(168)
);
以上失败。有什么办法可以逃避双引号来制作 'Col"umn 1' 吗?
你不能。根据文档:
不带引号的标识符只能包含数据库字符集中的字母数字字符以及下划线 (_)、美元符号 ($) 和井号 (#)。数据库链接还可以包含句点 (.) 和“at”符号 (@)。Oracle 强烈建议您不要在未加引号的标识符中使用 $ 和 #。
带引号的标识符可以包含任何字符和标点符号以及空格。但是,带引号和不带引号的标识符都不能包含双引号或空字符 (\0)。
当然,您可以使用 unicode!
SELECT
1 "“Unicode Rocks”",
2 "ʺSooo cooolʺ",
3 ""My co-workers love me""
FROM DUAL
也许这会有所帮助......但请不要创建包含此类列的表:
CREATE TABLE DropMe AS
SELECT rpad('X', 168, ' ') "Col''umn1" FROM dual
/
SELECT * FROM DropMe
/
SQL>
Col"umn1
-------------------------------------.....
X