如何修正更新RRP_VALIDATION时的SQL报错?提示命令未正确结束
解决SQL更新语句“命令未正确结束”的报错问题
你的SQL语句报错的核心原因是字符串内嵌套的单引号未正确转义。在Oracle数据库中,若要在单引号包裹的字符串里使用单引号,必须用两个连续的单引号('')来表示一个实际的单引号,否则数据库会错误识别字符串的结束位置,导致语法解析失败。
以下是修正后的完整SQL语句:
UPDATE HES_REPORT_REF_PARAMS SET RRP_VALIDATION = 'select to_char(RECONCILED_ID), decode(STATUS, ''R'', ''RECONCILED'', ''UNRECONCILED'')||'' - bank ''||BANK_CODE||'' - date ''||to_char(RECONCILED_DATE, ''DD-MON-YYYY'') from HES_BANK_RECONCILED_GROUPS where CONTROL_CONTEXT_ID = TO_NUMBER(:PARAMETER.BPX_CCI) order by RECONCILED_ID desc' WHERE HES_REPORT_REF_PARAMS.RRP_MODULE_NUM = '100';
修改说明:
- 所有嵌套在大字符串内的单引号(比如
'R'、'RECONCILED'、'DD-MON-YYYY')都替换成了两个连续单引号 - 字符串中的
' - bank '和' - date '也做了同样的替换,确保整个RRP_VALIDATION字段的字符串内容被正确包裹
内容的提问来源于stack exchange,提问作者Abinnaya
相关产品推荐
相关产品推荐

