2012-01-21 392 views
1

可能重複:
How to handle a single quote in Oracle SQL插入查詢到Oracle數據庫

我塞納里奧: 我要保存的查詢(而不是結果集)在數據庫中。 我使用Java作爲前端; 我的表(Querytab)具有以下字段:

sno VARCHAR2(1024) 
QUERY VARCHAR2(4000) 

問題是,當我插入具有條件的查詢 例如insert into querytab values('100','select * from querytab where sno ='100'');

位於第1行錯誤: ORA-00933:SQL命令未正確end

問題是:查詢值在找到時終止' 如何解決此問題。 在此先感謝。

+0

@Mat:這不是重複你說的話......他想存儲的查詢... –

+2

問題是一樣的。你需要正確地逃避你的字符串。 (如果你是從代碼中完成的,你應該使用預處理語句並綁定變量。) – Mat

+0

@Mat感謝幫助它的工作夥計..!非常感謝 – special

回答

1

使用PreparedStatement來轉義字符串。

事情是這樣的:

sql="insert into querytab values (?,?)"; 
PreparedStatement ps=conn.prepareStatement(sql); 
ps.setString(1,"100"); 
ps.setString(2,"select * from querytab where sno ='100'"); 
ps.executeUpdate(); 
1

試試這個,

insert into querytab values('100','select * from querytab where sno =100'); 
+1

你正在存儲一個不同的字符串。這不是OP要存儲的字符串。 –