データベース内のすべてのテーブルからすべてのデータを消去する手順で、このようなことをしています。
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.
- storage キーワードが必須なのはなぜですか?
DROP STORAGE
デフォルトだと思っていました。 storage close を指定しても、
EXECUTE IMMEDIATE 'TRUNCATE TABLE' || t.table_name || 'ドロップストレージ';
役に立ちません。エラーは同じです。
- 一部のテーブルの外部制約と関係があるのではないかと思いました。したがって、スクリプトの前半で「制約を無効にする」