执行立即UPDATE语句

时间:2017-11-17 14:36:26

标签: sql oracle plsql

我尝试将更新表格CHECK_COMPRESSER添加到PROCEDURE并使用EXECUTE IMMEDIATE

EXECUTE immediate 'update CHECK_COMPRESSER 
set NEW_SIZE_MB = '||''''||TABLE_P_ENTRY.NEW_SIZE_MB || '''' ||
 ' WHERE EXEC_ID = ' || '''' || EXEC_ID || '''' || ' AND TABLE = ' || '''' || TABLE_P_ENTRY.SEGMENT_NAME || '''' || ' AND PARTITION = ' || '''' || TABLE_P_ENTRY.PARTITION_NAME || '''';

dbms_output.put_line显示:

update CHECK_COMPRESSER set NEW_SIZE_MB = '182' WHERE EXEC_ID = '43' AND TABLE = 'MA_CONTACT_COMPRESS' AND PARTITION = 'P_OLD'

但是有一个错误:

  

ORA-00936:缺少表达式ORA-06512:at" SASDBA.COMPRESS_TABLE",   第50行

那么,我该如何编辑这段代码?

1 个答案:

答案 0 :(得分:1)

TABLE是一个关键字。它只能在引用时用作标识符:" TABLE"。

P.S。 PARTITION是一样的。