梯はしこです。
今日は8章の復習3回目。
前回と前々回はこちら。
表の削除と復活
表を削除する際には、DROP TABLEコマンドを実行します。
DROP TABLE kitsune;
上記のコマンドを実行することでkitsune表が削除されます。
DROP TABLEコマンドを実行すると、
- 表に格納されたデータ
- 表に作成されていた制約や索引
うっかり大切な表を削除してしまったらどうしたらいいのでしょうか
ちゃんと復活させるための仕組みがあります
DROP TABLEコマンドで削除された表は、正確には削除されたわけではなく、「ゴミ箱」に入れられます。
つまり、
この表は削除済みですよー
という扱いになっただけで、存在が抹消されたわけではありません。
ゴミ箱から表を戻すことをフラッシュバックドロップと呼びます。
フラッシュバックドロップを実行するには、FLASHBACK TABLEコマンドを実行します。
FLASHBACK TABLE kitsune TO BEFORE DROP;
上記を実行することで、kitsune表がもとに戻ります。
それじゃあ間違えて表を削除しても問題ないってわけね
というと、フラッシュバックドロップの機能がOFFになっていれば復元ができませんので要注意です。
フラッシュバックドロップ機能は、初期化パラメータファイルのRECYCLEBIN初期化パラメータをONにしておく必要があります。
ここがOFFになっていると、削除した表を戻せなくなってしまいます…
データ作成のためのツール
黒本8章には、2つのデータ作成のためのツールが解説されていました。
- SQL*Loader
- Data Pump
黒本の記載を見る限りは、2つともそこまで突っ込んだことは聞かれないようです。ツールを使ってできることも明確なので、そこまで難しくはありません。
ただ、名前が似ているツールがあるので、気を付けましょうというところですね…
(SQL*Plusとか)
SQL*Loader
csvファイルなどに記載されたデータを表にインサートできるツールです。
必要なものは、
- データを書き込んだcsvファイルなどのデータファイル
- SQL*Loader用の制御ファイル
- データをインサートする表
Data Pump
Oracleデータベース間でデータを移動するためのツールがData Pumpです。
データを移動するまでの手順は、
- expdpコマンドを実行し、移動元データベースからデータをダンプファイルにエクスポートする
- 出来上がったダンプファイルを、移動先データベースサーバにコピーする
- impdpコマンドを実行して、コピーしたダンプファイルを移動先データベースにインポートする
![ニコニコ](https://stat100.ameba.jp/blog/ucs/img/char/char3/002.png)
- 移動元と移動先のOSが違ってもOK
- 移動元と移動先のOracleデータベースのバージョンが違ってもOK
- 表だけではなくスキーマ単位や表領域単位、さらにはデータベース全体を移動することも可能
![びっくり](https://stat100.ameba.jp/blog/ucs/img/char/char3/014.png)
所感
さて、ちょっと急ぎ足でしたが、8章の復習が完了しました。
間違えた問題の復習以外は…(それが一番大事)
というわけで、次回は間違えた問題の復習をやって、9章、10章と急ぎます