• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ORA-00959: 表領域'****'は存在しません)

ORA-00959: 表領域'****'は存在しません

このQ&Aのポイント
  • 既存のSQLスクリプトを流してテーブルを作成しようとしている際、ORA-00959: 表領域'TS_TB_DATA_1M'は存在しませんというエラーが出てしまいます。
  • スクリプトの内容は、tb_mstcom_111というテーブル名で、様々な列が定義されています。主キーはtrhksk_cd列で、インデックステーブルスペースts_ix_data_1mを使用しています。
  • 初心者の方は、このエラーの原因がわからず困っている状況です。どなたか原因を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • potedora
  • ベストアンサー率47% (66/140)
回答No.1

エラーの通り、表領域がないためです。 ORACLEのテーブルはすべて表領域に作られます。 ですのでテーブルを作る前に表領域tb_mstcom_111を先に作成するか、上記のtb_mstcom_111の部分を存在する表領域に変更すればいいと思います。 表領域の作成はCREATE TABLESPACEで可能です。

hisajiro
質問者

補足

今まで単純にCREATE TABLEでテーブルを作成していたのですが、その時は表領域とか作成したりしなくてもできていました。 表領域が必要な場合とそうでない場合の違いとは何でしょうか? お手数おかけしますが、簡単な説明でいいのでお願いします。

その他の回答 (1)

  • potedora
  • ベストアンサー率47% (66/140)
回答No.2

表領域が必要な場合は、CREATE TABLEでTABLESPACEを指定したときです。 上記でいえば、TABLESPACE ts_tb_data_1m を指定しているからです。 (表領域名はtb_mstcom_111ではなく、ts_tb_data_1mでした。) この指定をなくせば、デフォルトの表領域に上記のテーブルtb_mstcom_111が作成されます。 デフォルトの表領域にテーブルを作りたくない場合にTABLESPACE句を指定してCREATE TABLEを実行します。

hisajiro
質問者

お礼

迅速且つわかり易い説明ありがとうございました。 表領域を作成し、無事実行できました。

関連するQ&A