見出し画像

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のテーブルで試すと怒られる(た)ので注意。(だから速いと思われる)

以上、ハマりにハマったので怒りの投稿


この記事が気に入ったらサポートをしてみませんか?