■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【…OB …OBER …全般 …その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
EXCELファイルデータを読み込む方法 2001/10/17 12:25 OB 3
EXCELファイル(*.XLS)から読み込んだデータを
CREATE文で作成済みのテーブルに
入れるには、どうしたらよいのでしょうか?
「管理」-「インポート」や「ロード」などの項目があるのですが、
うまくできません。
どのようにしたらテーブルに反映させることができるでしょうか?
>MAC さん

EXCELファイル(*.XLS)を直接取り込む機能は現状ではないようですね。

EXCEL で *.XLS のファイルを CSV フォーマット(*.CSV)に変換して
それを OB の「ロード」機能を使って取り込むのがいいのではないで
しょうか。

実際にデータを取り込むにはデータファイル(*.CSV)の他に制御ファイル
が必要になりますが、これは OB の「ロード」機能で生成可能です。

まずは適当なテーブルにデータを数件入力し、「ロード」機能を使って
「DB->ファイル」と「ファイル->DB」の操作を行ってみるとイメージが
つかめるかもしれません。

蛇足ですが「ロード」機能を使うには、OB が動いているマシンに
SQL*Loader(SQLLDR.EXE) がインストールされている必要があります。
うまく動かない場合は SQL*Loader がインストールされているか、また
ロード」機能のオプション設定で SQLLDR.EXE のパスが正しく設定
されているか等を確認してみましょう。

また、対象データが少なければ直接コピーペーストしちゃうってのも
手ですけどね(こちらは状況により上手くいったり行かなかったり)。


>SIさん
掲示板開設おめでとうございます。
これからもちょくちょく利用させて頂きます。
ありがとうございます。
csvに変換することでできました。
ただ、例えば読み込みたくないレコードが1件ある場合
そのレコードだけ、skipさせることはできるのでしょうか?

制御ファイルにその読み込みたくないレコードを指定することは可能でしょうか?
WHEN 句というのを使用すればいけそうですね。
例えば下記の制御ファイルでは ITEM01 の値が 'BBBBB' の
データを破棄するように指示してあります。
(詳しい使い方は SQL*Loader のマニュアルをご参照ください)

# LOAD DATA
# INFILE 'TEST.TABLE01.DAT'
# APPEND
# INTO TABLE TEST.TABLE01
# WHEN "ITEM01" != 'BBBBB' <=ココ
# FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
# TRAILING NULLCOLS("ITEM01","ITEM02","ITEM03")


一時的なテーブルに全件ロードしてから INSERT SELECT 文を
使ってデータを移すとか、CSV の時点でデータをカットすると
かのほうが手っ取り早い気もしますが、状況によりけりですね。