2015-11-08 81 views
0
String SQL = "SELECT * from USERNAME."LoginTable" "; 

我有一个名为TestDB的数据库,我有一个名为USERNAME的模式,我有一个名为LoginTable的表。这个select语句的适当的Derby SQL语法是什么?

我遇到的问题是我需要在select语句中使用双引号,当我在NetBeans Derby SQL中运行此查询时,但我显然无法在Java中使用2组双引号,因为它赢了不承认这是一个完整的字符串。写这个的正确方法是什么,所以我将来不会再有这个问题出现?

以下是错误消息多数民众赞成在未来,当我尝试运行: java.sql.SQLSyntaxErrorException:语法错误:第1行,列遇到“\‘LoginTable \’” 24

+0

您可能不需要引用该标识符,因为对我来说没有什么特别的。只是String String =“从USERNAME.LoginTable中选择*”会发生什么? –

+0

多数民众赞成在每一个我已经发现的语法应该是什么样的事情,没有引号周围的表名,但无论出于何种原因引用表名是唯一的方式,它会为我工作。 – gurpalrattu

回答

1

使用能逃脱双引号内的字符串使用反斜杠。

例如,

String myString = "My String contains \"Double Quotes\""; 

而且,如果您需要字符串中的反斜线,请使用反斜杠进行转义。

例如,

String oneBackslash = "\\"; 

所以你现在就变成

String SQL = "SELECT * from USERNAME.\"LoginTable\" "; 

很多数据库引擎的我用允许使用单引号了。只是不确定Derby DB是否是其中之一。