- - PR -
表領域を変更するには?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-05-23 13:27
OS:Windows2000Server SP4
Oracle:9i はじめまして。 現在、仕事でOracle環境を再構築しております。 しかし、以前構築した管理者がSystem領域にUserデータを 保存しておりました。 そこでデータを新しい表領域に移そうと思っているのですが System領域を違う表領域に移すことは可能なのでしょうか? ご存知の方ご教示宜しくお願い致します。 | ||||
|
投稿日時: 2005-05-23 14:14
システム表領域にあるユーザテーブルの格納先を変えたいってことですか? ALTER TABLEのmove_table_clauseは参考になりませんか? | ||||
|
投稿日時: 2005-05-23 16:13
一旦ユーザデータをエクスポートしてユーザを削除し、新しい表領域をデフォルト表領域に指定したユーザを作成してテーブルを作成し、ignore=Yオプションつきでインポートするのが手っ取り早いでしょう。
テーブルをあらかじめ作成しておかなかった場合、エクスポートファイルに作成場所の定義も含まれているため、またシステム表領域にオブジェクトが作成されてしまいます。 | ||||
|
投稿日時: 2005-05-23 16:32
ご返答ありがとうございます。
あんとれ様にご質問があります。 テーブルを再作成する場合、既存の表領域にあるテーブル内容を 削除しなくてはいけないと思うのですが 約300テーブルほどあるので ユーザーテーブル内容を一気に消すSQL文など ありましたらご教示宜しくお願い致します。 | ||||
|
投稿日時: 2005-05-25 17:14
takeishi819さん、始めまして。
>約300テーブルほどあるので >ユーザーテーブル内容を一気に消すSQL文など >ありましたらご教示宜しくお願い致します。 そのようなSQL文は残念ながらありません。 でもこれぐらいでしたら自分でSQLのスクリプトを作成しましょう。 と言っても手でコリコリ書くのではなく、以下のSELECT文の実行結果をファイル に落として、余分なものを削除して一発実行! です。 (下の例だとユーザ A,Bが所有しているテーブルを全て削除するスクリプトを 作成します。) select 'DROP TABLE '||owner||'.'||table_name||';' from dba_tables where owner in ('A','B') SQL*Plusからだと、 SQL> set pause off SQL> set head off SQL> set pages 0 SQL> spool (ファイル名) SQL> (上のSQL文) ですね・・・ P.S. (独り言)会議室デビュー日と投稿数見て愕然。ほとんどROMだったのねぇ・・・ | ||||
1
