Oracle执行update语句字段更新内容过长解决方案ORA-00972:标识符过长

错误描述:ORA-00972:标识符过长

错误原因:update的字段使用了双引号

对于超长的存储SQL举例

UPDATE FEATURE set "FEATURE_SQL" = 'SELECT SUM(CASE WHEN bglst_typ_cd in (''01'', ''02'', ''03'', ''04'', ''11'', ''12'') THEN 1 else 0 END) val FROM bds_rtafp_inadb_lnact_nmlst t INNER JOIN risk_request r ON r.risk_request_id = t.risk_request_id WHERE r.risk_request_individual_id = ''{individualId}'' AND r.risk_request_status = ''finish''' WHERE CODE = 'BLACK_LIST'

Oracle有个不好的地方,就是更新内容内包含单引号的,需要使用双单引号反转义一下,即可直接更新
错误案例

UPDATE FEATURE set "FEATURE_SQL" = "SELECT SUM(CASE WHEN bglst_typ_cd in ('01', '02', '03') THEN 1 else 0 END) val FROM bds_rtafp_inadb_lnact_nmlst t INNER JOIN risk_request r ON r.risk_request_id = t.risk_request_id WHERE r.risk_request_individual_id = '{individualId}' AND r.risk_request_status = finish'" WHERE CODE = 'BLACK_LIST'

我们使用了双引号更新,会直接抛出标识符过长错误

本作品采用《CC 协议》,转载必须注明作者和本文链接
每天一点小知识,到那都是大佬,哈哈
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!