我在清除数据库中所有表中的所有数据的过程中正在执行类似的操作。
LOOP
dbms_utility.exec_ddl_statement('alter table ' || c.owner || '.' || c.table_name || ' disable constraint ' || c.constraint_name);
END LOOP;
.
.
.
LOOP
EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || t.table_name ;
END LOOP;
现在,这会引发以下错误:
ORA-03291: Invalid truncate option - missing STORAGE keyword
ORA-06512: at "MYSCHEMA.CLEAR_DATA", line 15
ORA-06512: at line 2
Process exited.
Disconnecting from the database MYDB.
- 为什么存储关键字是强制性的?我以为
DROP STORAGE
是默认的。 即使指定存储关闭,如,
立即执行“截断表”|| t.table_name || '丢弃存储';
没有帮助。错误是一样的。
- 我认为这可能与某些表上的外部约束有关。因此,脚本前面的“禁用约束”