Ich versuche, Begriffe aus einer Datenbank (> 10K) zu lesen, und ich verwende diesen Begriff in einer anderen Abfrage. Ich erhalte den folgenden Fehler in Oracle:Wie kann ein einzelnes Anführungszeichen in sql vermieden werden, das dazu führt, dass die Anführungszeichenfolge nicht ordnungsgemäß beendet wird?
Zeichenfolge in Anführungszeichen nicht ordnungsgemäß beendet‘
I
tatterm.replaceAll("'", "\\'");
aber das scheint nicht die Arbeit von mir zu tun. Außerdem sind diese Begriffe Token von Dokumenten, wenn sie in Text konvertiert werden. Gibt es einen regulären Ausdruck, der dieses Problem überwinden kann?
Die genaue SQL-Abfrage ist:
String sql = "Select * from indexDB where (DocID=" + d.getDocId() + "and Term='" + term + "')";
ich Java bin mit. Der Ersatz funktioniert nicht für mich.
Sie müssen auf [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) lesen – Oded
Siehe auch http://bobby-tables.com/ für Details zur Verwendung von parametrisierten Abfragen in egal welche Sprache du benutzt. Dies schützt Sie vor einer SQL-Injektion, auf die sich Oded bezieht. –
Yeah ging durch und parametrisierte Abfrage tat es !! Vielen Dank ! – Aashima