如果我的查詢是在SQL查詢中轉義關鍵字的通用方法是什麼?
SELECT from FROM myTable;
我怎麼能「從」逃脫列名。
我需要一種方法,其適用於Oracle,MySQL等,Teradata和所有其他系統
威爾
SELECT myTable.from FROM mytable;
在所有系統上的工作?
如果我的查詢是在SQL查詢中轉義關鍵字的通用方法是什麼?
SELECT from FROM myTable;
我怎麼能「從」逃脫列名。
我需要一種方法,其適用於Oracle,MySQL等,Teradata和所有其他系統
威爾
SELECT myTable.from FROM mytable;
在所有系統上的工作?
通用方法???不確定任何這樣的,但雙引號""
是ANSI標準,除此之外每個RDBMS都有一些特定的方式。此外,如果您使用保留字或關鍵字的表或列名..不要自己,你不需要任何這樣的通用方式在評論已經建議
SQL標準是相當清楚的:保留關鍵字只能使用時它們是雙引號括起來:
select "FROM" from mytable;
需要注意的是帶引號的標識符也區分敏感。 "Foo"
和"FOO"
是兩個不同的名字! (而Foo
和FOO
是標準的SQL和大多數DBMS相同的名稱)
我需要一種方法,其適用於Oracle,MySQL等,Teradata和所有其他系統
Postgres,Oracle,DB2(LUW),Firebird,Ingres,HSQLDB,H2,Vertica,HANA和Teradata都符合標準。
MySQL需要確信通過將sql-mode
設置爲ANSI
或至少ANSI_QUOTES
來遵守該標準。
對於SQL Server QUOTED_IDENTIFIER
需要設置到on
的選項。
對於Informix需要設置DELIMIDENT
到y
通過JDBC
連接時,但一般而言,您應真的避免需要使用帶引號的標識符。通常情況下,您遲早會遇到麻煩。
沒有「通用」方法(雖然有ANSI標準方法)。只是不要使用關鍵字的列名,你不會有問題。 –