ご注意ください

  • 当ブログのコメントやトラックバックに、アカウントハックサイトや、そのようなサイトへリダイレクト(転送)される可能性が高いサイトへのリンクが時々貼られているようです。
    そのようなサイトへのリンクが貼られたコメント・トラックバックは、見つけ次第削除・禁止ワード登録していますが、今後も危険なサイトへのリンクが貼られる可能性がありますので、安易にリンク先へ飛ばないよう充分ご注意ください。

オンラインゲーム関連

著作権表示

  • 当ブログに記載されている
    会社名・製品名・システム名などは、
    各社の登録商標、もしくは商標です。

    当ブログ上の文章・写真・画像の
    無断転載、無断転用、直リンクなどは
    行わないでください。

    (C) 1998-2016 Vertex.
    (C) 2002-2016 SQUARE ENIX CO., LTD.
    (C) CAPCOM CO., LTD. 2007, 2016

    All Rights Reserved.
無料ブログはココログ

« [PS3] 頭文字D Ex. | トップページ | 5インチHDD分解 »

OracleにCSVファイルからインポート

DBにOracleを使ってるのに、客先からもらってきたテストデータはAccess形式だった!

とりあえずAccessからリンクさせてOracleのテーブルを参照したんだけど、テストデータをインポートしたいテーブルだけ、なぜかAccessから見えない。Table not foundになってしまう。

調べている時間もあまりないので、AccessからExcel形式でエクスポートし、Oracle SQL Developerでインポートしてしまおう!と思ってやってみると、どうもnullデータがうまく扱えないらしく、Exceptionが出てしまってお手上げ。

こうなったらしょうがない。SQL*Loaderを使ってコマンドラインからインポートするしかない!

ということで、普段やり慣れないSQL*Loaderを使ってのデータインポート方法をメモメモ。



まずはAccessから、csv形式でエクスポート・・・と思ったら、引数エラーとか言われてエクスポートできず・・・。とりあえずインポートしたいデータを表示させて、コピー&ペーストでテキストエディタに貼り付けて、タグをカンマに変換してcsv変換。

次に、SQL*Loaderで使うコントロールファイルの作成。以下のような感じで作ってみました。

LOAD DATA
INFILE [csvファイル名]
APPEND
INTO TABLE [テーブル名]
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
  --ここにカラム名を列挙
)

1行目は、コントロールファイルのお約束みたいなもの。
2行目は、インポートするデータが入ったcsvファイルのファイル名。
3行目は、テーブルにデータを追加するので「APPEND」。新規に作る場合は「INSERT」で、「REPLACE/TRUNCATE」はテーブルのデータを全て削除してからデータを追加。
4行目は、インポート先テーブル名。
5行目は、csvファイルのカラム区切り記号を指定。タブ区切りの場合は「TERMINATED BY X'09'」。
6行目は、csvファイルのカラムデータを囲む文字の指定。上記の場合はダブルクォーテーションで囲っています、という意味。
7行目は、csvファイルのカラムデータが空の場合、NULLに置き換えます、という指定。
8行目以降のカッコの中に、インポート先テーブルのカラムを記述する。

コントロールファイルの作成が終わったら、後はコマンドを叩くだけ。

% sqlldr [DBユーザー名]/[DBユーザーパスワード]@[DB名] control=コントロールファイル名

実行後は、カレントディレクトリにlogファイルと、場合によってbadファイルができあがるので、必要に応じて確認する。

下手にAccessでテーブルをリンクさせて・・・なんてやるより、SQL*Loaderを使ってインポートした方が楽で早いかも。

« [PS3] 頭文字D Ex. | トップページ | 5インチHDD分解 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/189342/42670986

この記事へのトラックバック一覧です: OracleにCSVファイルからインポート:

« [PS3] 頭文字D Ex. | トップページ | 5インチHDD分解 »

フォト
2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック