- ベストアンサー
SQLローダーを使ってExcelのデータをインポートする方法
Oracle9iで作成したテーブルに Excel2002で作成したデータを SQLローダーを使ってインポートするには どのようにすれば良いのでしょうか? バッチファイルを作ったりしなければ ならない、というのは知っているのですが、 手順が分からないので、一連の操作の流れを 教えて頂ければ幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>CSVファイルとコントロールファイルを作成し、 >sqlldrをコマンドプロンプトかSQL PLUSで >流す、と言う事で良いのでしょうか? SQL*Loader を実行するのは、コマンドプロンプト上です。 >また、コントロールファイルの作成は、 >エディタソフト(秀丸、wordpad等)で記述し、 >拡張子を変更すれば良いのでしょうか? コントロールファイルは、通常お使いのエディタで記述して問題ありません。 あと、さきほどの例では、データの仕様については触れていないので、 NOT NULL などの制約がついている表だったりすると、変更しなければ ならない場合があるので、注意したほうが良いです。 これ以上のことは、そちらの環境や表の構成、エクセルのデータを見てみないと なんとも言えないので、後は自力で頑張ってもらうしかないですね。
その他の回答 (3)
- MrKT
- ベストアンサー率71% (15/21)
どこがわからないのでしょうか? エクセルデータをCSV形式で保存する方法もわかりませんか? まったくわかっていないと言う事でしょうか? こちらとしても、どのようなデータを扱っているかが わからないと、正確な答えは出せませんので、アドバイス程度でしか お答えできません。 OTN でマニュアルは無料ダウンロードできるんだし・・・。 もし、以下の説明でわからないようであれば、 マニュアルなしの操作は諦めたほうが良いと思います。 というか、保守契約をお持ちなら、サポートに問合せしたほうが良いと思いますよ。 もっと優しく丁寧に教えてくれると思いますんで。 CSV を扱う場合のコントロールファイル基本的な書き方 LOAD DATA INFILE 'ファイル名' <<<<< CSVファイルを指定 INTO TABLE 表名 <<<< 入れたい表名を指定 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (列名, 列名, 列名,・・・) <<< 入れたい列名を指定 取り込む環境がわからないですが、Windowsだとしたら c:\> sqlldr userid=ユーザ名/パスワード control=コントロールファイル名 で読み込めるはずです。 sqlldrで指定するオプションは、help=y で見れますので、 必要なものを選んでください。 以上です。
- MrKT
- ベストアンサー率71% (15/21)
SQL*Loader を使用してファイルを読み込むには、 コントロールファイルを記述せねばなりません。 マニュアルはすでに読まれていますか? 記述の方法は、以下のマニュアルに書いてあるので、読んでみましょう。 例も載っているので、簡単に作成できるはずですよ。 Oracle9i データベース・ユーティリティ リリース1(9.0.1) 手順としては、 エクセルのファイルをCSV形式で保存 コントロールファイルを作成 > CSVファイルを指定 > SQL*Loaderで読み込み となります。 CSV 形式にしてしまえば、区切りを , データの囲みを " " と指定するだけです。
お礼
回答ありがとうございます。 会社のマシンを借りて作業をしているので マニュアル類が、手元にありません。 出来ましたら手順の詳細を 教えて頂ければ幸いです。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
一旦テキストファイルにしましょう。 Excelのファイルのままではロードできません。 CSVでも、固定長のファイルのでもかまいませんので、 テキストエディタで内容が確認できるようにしてください。
お礼
回答ありがとうございます。 Excelファイルではインポートは 出来ないとは思っていました。 ファイル変換後は、どのように すれば良いのでしょうか?
お礼
回答ありがとうございます。 ExcelファイルをCSVに変換して保存するのは分かりますが、 不明点は、その後のインポートの操作方法です。 手順として、 CSVファイルとコントロールファイルを作成し、 sqlldrをコマンドプロンプトかSQL PLUSで 流す、と言う事で良いのでしょうか? また、コントロールファイルの作成は、 エディタソフト(秀丸、wordpad等)で記述し、 拡張子を変更すれば良いのでしょうか? 保守契約は、持ってないと思います。