私はOracle 10gデータベースにストアドプロシージャを作成しようとしました。これは、データを選択dba_segments
して別のテーブルに挿入します(つまり、table_space)。
作成または置換 手順 P_DAILY_ENTRY は an_job_id 番号; 始める INSERT INTO table_space(table_name, max_size, date_of_max_size) テーブル名を選択し、 TRUNC(SUM(バイト)/1024) max_size, sysdate date_of_max_size から ( SELECT セグメント名 テーブル名、所有者、バイト FROM dba_segments WHERE セグメント タイプ = 'テーブル' ユニオンオール SELECT セグメント名 テーブル名、所有者、バイト FROM dba_segments WHERE セグメント タイプ = 'INDEX' ) WHERE 所有者 ('CARAT') GROUP BY table_name、所有者 ORDER BY SUM(bytes) DESC; その他の場合の例外 ロールバック; END P_DAILY_ENTRY;
上記を実行すると、次の2つのエラーが表示されます。
- ライン05 | 実行 | PL/SQL: SQL文は無視されました
- 12行目 | 実行 | PL/SQL: ORA00942: テーブルまたはビューが存在しません
ただし、INSERT
ステートメントを個別に実行すると、table_spaceテーブルにデータが入力されます。