0

SQL INSERT or UPDATE statements指定されたxmlファイルを読み取り、xmlファイルのデータで作成するためのJavaアプリを開発しました。以下のようないくつかのステートメントがあります。

INSERT INTO BUYERS(BUYER_ID, BUYER_NAME) VALUES ('100', 'A's Shop') 
INSERT INTO BUYERS(BUYER_ID, BUYER_NAME) VALUES ('101', 'ABC's Shop') 
INSERT INTO BUYERS(BUYER_ID, BUYER_NAME) VALUES ('102', 'ZXCVBN's Shop') 
INSERT INTO BUYERS(BUYER_ID, BUYER_NAME) VALUES ('103', 'RR's Shop') 

UPDATE BUYERS SET BUYER_NAME = 'MKO's Shop' WHERE BUYER_ID = 151
UPDATE BUYERS SET BUYER_NAME = 'DDD's Shop' WHERE BUYER_ID = 160

これらのステートメントを実行しようとすると、 in の値ORA-00917: missing commaがあるため、エラーが発生しました。single quoteBUYER_NAME

Javaのメソッドをsingle quote使用してこれを置き換えようとしました。しかし、それは私のクエリreplace(char oldChar, char newChar)のすべてを置き換えます。single quotes

single quoteのみをに置き換える必要がありBUYER_NAMEます。どうすればそれができますか?

4

5 に答える 5

0

安全な (そして簡単な) 方法は、StringBuilder を構築することです

StringBuilder sb = new StringBuilder();
sb.append("UPDATE BUYERS SET BUYER_NAME = '";
sb.append("MKO''s Shop" ) // or the (String) parameter build otherwhere
sb.append("' WHERE BUYER_ID = ");
sb.append(100); // Integer are transormed in String here

そして使うsb.toString();

編集:''文字列内の二重に置き換え

あなたは同じことをすることができます

INSERT INTO BUYERS(BUYER_ID, BUYER_NAME) VALUES ('
100
', '
name''s 
')
于 2012-07-30T09:38:50.093 に答える
0

この一重引用符を置き換えるために使用してみてください

String str = 'A's Shop'

str=replace(str," ' "," '' ") // Here it will store as "A''s Shop"

Or preparedStatement().
于 2012-07-30T09:28:23.110 に答える