電気ウナギ的○○

About Home

Oracle impdb コマンドの tables 指定

shinoda (2018年10月12日 08:50)
テスト用データを Oracle DB にセットアップする必要があったんで、本番DBのバックアップファイルから impdb コマンドでインポートをしようかと。
全部のテーブルではなく、必要なのは3つだけなので、以下のようなコマンドを実行。

impdb HOGE/HOGEPW@HOGEDB directory=backup_dir dumpfile=backup.dmp table_exists_action=replace tables=(ロケーション,IPアドレスリスト,ユーザーマスタ)

そしたら、こんなエラーが出て失敗しちゃう。

ORA-39002: 操作が無効です
ORA-39166: オブジェクトHOGE.IPアドレスリストが見つかりません。

これ、エラーになるタイミングは毎回バラバラで、

ORA-39002: 操作が無効です
ORA-39166: オブジェクトHOGE.IPアドレスリストが見つかりません。
ORA-39166: オブジェクトHOGE.ユーザーマスタが見つかりません。

こういうときもある。
別にテーブル名が問題なわけではなく、

impdb HOGE/HOGEPW@HOGEDB directory=backup_dir dumpfile=backup.dmp table_exists_action=replace tables=(IPアドレスリスト)

こんな感じで、エラーになったテーブル単体でインポートすると、

. . "HOGE"."IPアドレスリスト"    12.3MB   12034行がインポートされました

こんな具合に成功する。カンマ区切りで複数テーブルを指定したときだけ問題。
でも、英語名のテーブルではエラーにならないんで、やっぱ日本語名なのが問題なんだろうなあと思って、

impdb HOGE/HOGEPW@HOGEDB directory=backup_dir dumpfile=backup.dmp table_exists_action=replace tables=("ロケーション","IPアドレスリスト","ユーザーマスタ")

こんな風に、テーブル名をダブルクォーテーションで括ってみた。

. . "HOGE"."ロケーション"    28.5MB   9800行がインポートされました
. . "HOGE"."IPアドレスリスト"    12.3MB   12034行がインポートされました
. . "HOGE"."ユーザーマスタ"      1.3MB   109行がインポートされました

ああ、やっぱり成功。

俺はそもそもテーブル名や項目名などに日本語を使うのが嫌い(プログラムでも、(日本語対応されているかどうかは関係なく)日本語の変数名を使うのとか大嫌い(読みづらいは!!)なんだけど、まあ、それはおいといて、日本語使えるんなら、英語名と同じ動きをしっかりしてほしいわ!!

Oracle は金に汚いだけの会社じゃのお。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5015

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE