我尝试将更新表格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行
那么,我该如何编辑这段代码?
答案 0 :(得分:1)
TABLE是一个关键字。它只能在引用时用作标识符:" TABLE"。
P.S。 PARTITION是一样的。