2015-04-27 52 views
0

我想要的是在我的嵌入式德比數據庫中用分號存儲java語句。不過,我不能完全生成可以工作的簡單SQL插入語句。我相信,當控件在字符串中遇到半冒號語句時,如果將其視爲終止字符並引發錯誤。請嘗試以下操作:Apache Derby中的Semi Colon問題

create table dummy(keys int, vals varchar(255)); 
insert into dummy values (10,'System.out.println();'); 

上述語句失敗,錯誤。然而,如果我刪除分號它可以工作

insert into dummy values (10,'System.out.println()'); 

有沒有人看過這個之前,如果是的話,你使用了哪個轉義字符。

謝謝。

回答

0

它可能有助於查看您嘗試執行sql語句的環境,即周圍的代碼。如果這是在Java程序中,這樣的事情可能工作:

int n = stmt.executeUpdate("insert into dummy values (10, 'System.out.println()$;') {ESCAPE '$'}"); 
+0

感謝您的回覆,我只是使用了eclipse提供的sql編輯器 – hakish

0

你的語句正常工作時,我使用的是Derby的「IJ」 SQL編輯器中運行它們:

ij version 10.12 
ij> connect 'jdbc:derby:tt;create=true'; 
ij> create table dummy(keys int, vals varchar(255)); 
0 rows inserted/updated/deleted 
ij> insert into dummy values (10,'System.out.println();'); 
1 row inserted/updated/deleted 
ij> select * from dummy; 
KEYS  |VALS 

-------------------------------------------------------------------------------- 
------------------------------------------------------------ 
10   |System.out.println(); 


1 row selected 

也許問題出在其它地方。如果您可以包含更多關於確切消息的詳細信息,那可能會有所幫助。

+0

錯誤1: 插入droolstest.dummy值(10,'System.out.println() VALUES子句必須至少包含一個元素。空元素不允許。 錯誤2:'); 語法錯誤:在第1行第1列遇到「\'」。 – hakish

+0

順便說一句,我正在使用eclipse的Eclipse Data Tools Platform pulgin,它使我能夠在ide中執行查詢。可能是問題出在那裏,但我不太確定。 – hakish

+0

這聽起來像是你的IDE中存在問題。它似乎是在尋找分號而不考慮這些分號是否用引號括起來。 –