oracle 11gR2 でSQLLDR でデータをロードしたときの話
まずoracle 11gR2が古いという事は百も承知だ。そのせいで質問サイトで質問しても「そんな古いバージョン使っているから悪い」と請け合ってもらえない。
ほかのバージョンもダウンロードすることができるがoracleは以下のサイトで紹介しているoracle公式ページから無料でダウンロードできた。
当方、Win10 64bitである。
oracleのインストーラは2つのzipをダウンロードすることになると思うが2of2に入っているフォルダを1of2に丸コピしてから1of2に入っているsetupを叩くこと。あとはデフォルトでポチポチ押していけばDBのインストールは完了する。
DBへの入り方はググればでてくるが、一応書くとcmd.exe > sqlplus > ユーザ名:sys as sysdba パスワード:(自分で設定したパスワード)で入ることができる。gui使いたい人は別途オブジェクトブラウザーやa5m2などをインストールすること。
SQL Loderのサンプルコードは以下のサイトを参考にさせていただいた。(※注意:以下のサイトはテーブルカラム名を取得するため32bit oracleのODACに入っていると思われるoo4oミドルウェアを使用している。その為カラム名はハードコーディングした)
データをロードするためにテーブルが必要であった為以下のサイトのサンプルテーブルを作成した(※注意:サンプルデータはdateがアメリカ表記なので日本語版oracleをインストールした場合"1981/1/1"のような形式に変換してください)
以下、これらの情報を使用してSQLLoderでCSVファイルのデータをEMPテーブルに入れることに成功したまでの要点をまとめると、
・oracle_homeの設定が必要だった(oracle_homeはNETWORKフォルダがあるディレクトリを指定)
・sqlnet.oraにNAMES.DIRECTORY_PATH = (TNSNAMES)という記述を追記した
・sys as sysdbaではSQL Loderは使えなかった。その為以下のサイトを参考に、ユーザrivusを作成した。
というところがポイントだった。
あとSQLLoderは既存のデータを全削除してからデータを入れなおすので社内の適当なDBのテーブルで試すと怒られる(た)ので注意。(だから速いと思われる)
以上、ハマりにハマったので怒りの投稿
この記事が気に入ったらサポートをしてみませんか?