2011-09-21 54 views
0

我在oracle數據庫中插入一條記錄,我從java bean中取值。它是這樣::什麼是插入記錄時逃脫oracle sql序列?

insert into allergy (patient_id, allergy, reaction) values(seq_patient.nextval, '" + bean.getPatient_allergy() + "', '"+ bean.getReaction()+"')"; 

但對過敏的值可以給這會導致SQL失敗,ORA-00917的撇號:缺少逗號。有什麼辦法可以解決這個問題嗎?

回答

1

這是更好優先使用bind variables建立你的查詢語句的字符串。

這會照顧你的問題。它也會阻止SQL injection attacks(另請參閱Bobby Tables)。

以下是關於如何在Java中使用預準備語句和綁定變量的一些信息:link

0

如何使用參數化查詢而不是組裝INSERT命令? Tha還會修復當前的SQL Injection漏洞。