EXECUTE IMMEDIATE 'UPDATE GDW_ARC_CDM.LND_DIM_GEO
SET DESCRIPTION_COLUMN = REPLACE( DESCRIPTION_COLUMN, '`', '''' )
WHERE CNTRY_ID = 'KR'
AND SRC_ID = 'KR_RET'
AND DESCRIPTION_COLUMN LIKE '%`%'';
COMMIT;
我正在Tryin中在Oracle SP中添加以上语句,我得到以下错误,相同的查询在SQL Developer中与普通语句(在SP中不一样)工作。
您能建议一下吗?
UPDATE
括在单引号中(您所做的事情),但要注意该代码中的其他单引号。所有这些都必须“加倍”,或者-使用更简单,更易于阅读和维护的选项-使用q引用机制。类似这样的东西:
SQL> select * From lnd_dim_geo;
DES CN SRC_ID
--- -- ------
x`y KR KR_RET
SQL> begin
2 execute immediate q'[update lnd_dim_geo set description_column = replace(description_column, '`', '')
3 where cntry_id = 'KR' and src_id = 'KR_RET' and description_column like '%%']';
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> select * From lnd_dim_geo;
DES CN SRC_ID
--- -- ------
xy KR KR_RET
SQL>