2015-11-08 64 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是否是其中之一。