0

特殊文字をエスケープする Oracle 関数があるかどうかを知りたいです。

例は次のとおりです。

request := 'update tvire set nbqe = ''' || var_my_value  
dbms_sql.parse(curseur_ref_2, request, dbms_sql.native);
response := dbms_sql.execute(curseur_ref_2);

var_my_value に引用符が含まれている場合、実行中にエラーが発生します。

それを防ぐOracle関数はありますか: xx(var_my_value)

ありがとうございました

4

2 に答える 2

1

エスケープしようとせず、代わりにバインド変数を使用してください。

于 2013-09-17T12:20:10.083 に答える
0

バインド変数を使用して、すぐに実行します。

execute immediate update t1 set c1 = :p1 where c2 = :p2 using var_my_value1, var_my_value2

dbms_sql は、まれな場合にのみ使用してください。たとえば、動的クエリにさまざまな数のパラメーターがある場合などです。

PS: dbms_sql にも procedure がありますbind_variable

于 2013-09-17T15:37:08.210 に答える