【发布时间】:2018-03-17 06:57:48
【问题描述】:
以下代码适用于大多数情况。 当 LIB_SEGCO 有任何单引号时它会爆炸 比如ABC'DEF
在这些情况下,它会给出错误 ORA-00917: missing comma
req := 'INSERT INTO CLIENTS(
IDEVT,
ID_CLIENT,
CATEGORIE_CLIENT,
SEGCO,
LIB_SEGCO,
NOM,
ADRESSE,
CODE_POSTAL,
VILLE,
PAYS,
STATUT)
values(''' || UNID ||''','''||ID||''','''||SEGCO||''','''||L_SEGCO ||''','''||**LIB_SEGCO** ||''','''|| NOM||''','''||
ADRESSE||''','''||CODE_POSTAL||''','''||cVILLE||''','''||PAYS||''','''||CODE_STATUT||''')';
execute immediate req;
有什么想法可以在传入变量时避开撇号?
谢谢
【问题讨论】:
-
在这个特定的演示案例中绝对不需要使用动态 SQL。使用静态
INSERT语句。变量UNID, ID, ....已被 PL/SQL 引擎视为绑定变量。
标签: sql oracle plsql oracle11g oracle-sqldeveloper