在SQL查询中转义关键字的通用方法是什么?

时间:2017-06-20 19:20:36

标签: sql jdbc

如果我的查询是

SELECT from FROM myTable;

如何从'中删除列名称。

我需要一种适用于Oracle,MySQL,Teradata和所有其他系统的方法

威尔

SELECT myTable.from FROM mytable; 

在所有系统上工作?

2 个答案:

答案 0 :(得分:3)

SQL标准非常明确:保留关键字只能在用双引号括起来时使用:

"Foo"

请注意,带引号的标识符也是敏感的大小写。 "FOO"Foo是两个不同的名字! (而FOOsql-mode在标准SQL和大多数DBMS中的名称相同

  

我需要一种适用于Oracle,MySQL,Teradata和所有其他系统的方法

Postgres,Oracle,DB2(LUW),Firebird,Ingres,HSQLDB,H2,Vertica,HANA和Teradata符合开箱即用的标准。

MySQL需要通过将ANSI设置为ANSI_QUOTES或至少QUOTED_IDENTIFIER来确信尊重该标准。

对于SQL Server,需要将on选项设置为DELIMIDENT

对于Informix,您需要在通过JDBC连接时将y设置为 .projectBoxes { vertical-align: top; }

但总的来说,你应该真的避免使用带引号的标识符。通常情况下,你迟早会遇到麻烦。

答案 1 :(得分:0)

通用方法???不确定任何此类但双引号""是ANSI标准,除了每个RDBMS都有一些特定的方法。此外,如果您不使用表或列名称的保留字或关键字,则不需要任何此类通用方法..正如评论中已建议的那样