2017-06-20 113 views
1

如果我的查詢是在SQL查詢中轉義關鍵字的通用方法是什麼?

SELECT from FROM myTable; 

我怎麼能「從」逃脫列名。

我需要一種方法,其適用於Oracle,MySQL等,Teradata和所有其他系統

威爾

SELECT myTable.from FROM mytable; 

在所有系統上的工作?

+4

沒有「通用」方法(雖然有ANSI標準方法)。只是不要使用關鍵字的列名,你不會有問題。 –

回答

0

通用方法???不確定任何這樣的,但雙引號""是ANSI標準,除此之外每個RDBMS都有一些特定的方式。此外,如果您使用保留字或關鍵字的表或列名..不要自己,你不需要任何這樣的通用方式在評論已經建議

3

SQL標準是相當清楚的:保留關鍵字只能使用時它們是雙引號括起來:

select "FROM" from mytable; 

需要注意的是帶引號的標識符也區分敏感"Foo""FOO"是兩個不同的名字! (而FooFOO是標準的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需要設置DELIMIDENTy通過JDBC


連接時,但一般而言,您應真的避免需要使用帶引號的標識符。通常情況下,您遲早會遇到麻煩。

相關問題