Q-Quote执行立即PL / SQL

时间:2014-05-21 12:13:32

标签: plsql

我有以下更新声明:

UPDATE COL_VAL SET DESC_VALUE=q'['TOM','JOHN','MARIE','VANI','PUTIN']' WHERE TYPE_NAME||TYPE='OLDHOL' ;

当我在执行立即执行上面的a-quote时,PL / SQL无法识别语法。

DECLARE
upd_stmnt varchar2(4000);
BEGIN
    upd_stmnt := q'[UPDATE COL_VAL SET DESC_VALUE=q'['TOM','JOHN','MARIE','VANI','PUTIN']' WHERE     TYPE_NAME||TYPE='OLDHOL']';
EXECUTE IMMEDIATE upd_stmnt;
END;
/

请帮忙。

1 个答案:

答案 0 :(得分:0)

似乎你无法嵌套q引用的字符串,请尝试这个

DECLARE
  upd_stmnt varchar2(4000);
BEGIN
    upd_stmnt := q'[UPDATE COL_VAL SET DESC_VALUE = '''TOM'',''JOHN'',''MARIE'',''VANI'',''PUTIN''' WHERE TYPE_NAME || TYPE='OLDHOL']';
EXECUTE IMMEDIATE upd_stmnt;
END;
/