ORA-00917在SQL查询中转义撇号

时间:2017-10-05 15:22:06

标签: sql oracle plsql oracle11g oracle-sqldeveloper

以下代码适用于大多数情况。 当 LIB_SEGCO 有任何单引号时,它会爆炸 例如ABC' DEF

在这些情况下,它会出现错误 ORA-00917:缺少逗号

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;

任何在传递变量时逃避撇号的想法吗?

由于

1 个答案:

答案 0 :(得分:6)

使用:

, CODE_STATUT

注意:我省略了CODE_STATUT,因为INSERT命令中只列出了10列,但{{1}}是第11列,因此列数与值的数量不匹配。< / p>