- - PR -
CSVファイルからオラクルへのデータ取り込み方法
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-15 13:51
初歩的な質問で申し訳ないのですが、
csvファイルからオラクルにデータと取り込みたいのですが、 どのようにするのが、一般的なのでしょうか? データ取り込み時には、その情報が更新すべき情報なのか、 もしくは、新規追加の情報なのかという簡単な判断が必要です。 [ メッセージ編集済み 編集者: チロ 編集日時 2004-11-15 13:55 ] | ||||||||||||
|
投稿日時: 2004-11-15 14:03
ここまでだったら迷わずSQL*Loaderなのですが、
となると、プログラム組むしか無いのかなと思います。 全件削除した上でCSVデータを取り込むというのは無理でしょうか? | ||||||||||||
|
投稿日時: 2004-11-15 14:28
素早い返信有難う御座います。
そんなに複雑な判断ではないので、何か方法があるのかと思ったのですが、 やはりプログラムを組まないといけないですか。。 全件削除してから取込むことも考えたのですが、 その処理に時間がかかるので、採用しませんでした。
| ||||||||||||
|
投稿日時: 2004-11-16 13:11
CSVフォーマットと同様のテーブル(仮にTEMPTABLE)を一時的に作成して、
SQL*LoaderでTEMPTABLEにデータを取り込み、 そのTEMPTABLEのデータをストアドで 指定のテーブルに挿入するなり更新するなりするのが 手っ取り早くて確実だしいいと思います。 | ||||||||||||
|
投稿日時: 2004-11-16 13:30
ども、もしもしと申します。
CSV のデータに置き換えてもよいのなら、SQL*Loader の 制御ファイルに truncate を指定すれば、まず対象表を truncate してからロードしますが、 > 全件削除してから取込むことも考えたのですが、 > その処理に時間がかかるので、採用しませんでした。 表の truncate でも時間がかかりましたか? (delete from ではないですよ) | ||||||||||||
|
投稿日時: 2004-11-16 13:42
返信有難う御座います。
全然思いつかなかったです。検討してみます。 | ||||||||||||
|
投稿日時: 2004-11-26 12:01
たけさんの方法の変形として、oracle 9i以降という制約がありますが、外部表機能を使ってCSVファイルを参照するという方法もあります。
その方法はドキュメント「Oracle9i SQLリファレンス リリース2(9.2)」および「Oracle9i データベース・ユーティリティ リリース2(9.2)」を参照… …してもあまりにドキュメントの内容が多すぎてどこを見ればいいのか迷ってしまいます。 #どういう風にやるのかいったん分かってしまえば役に立つんですけどね では具体的にどういう風にやるのかというと、そのものずばりの内容がCode Tipsに登録されています。タイトルは テキストファイルの内容をテーブルとして直接参照 です。 なお、文中に登場したドキュメント・Code TipsはOTN Japanより入手可能です(OTN Japanへのメンバー登録が必要)。 …って、もう問題解決しちゃいましたか?>チロさん [ メッセージ編集済み 編集者: ひとむら 編集日時 2004-11-26 13:07 ] |
1