- - PR -
VB.NETにインポート機能を付けたい
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-02 10:45
はじめまして宜しくお願いします。
VB.NETとOracle9iを使っています、 VB.NETからCSVファイルをインポートし、Oracleテーブルに追加という ことをしたいのですが、手法が分かりません。 Shell関数を使ってプロンプトで操作するようなことが書かれていたので 挑戦してみましたが追加されませんでした。 【インポート】 Call Shell("C:\oracle\ora92\bin\sqlldr userid = ID/Pass@test control=C:\oracle\table_.ctl", AppWinStyle.Hide, True) どなたか分かる方がいましたら、教えてください。 宜しくお願いします。 |
|
投稿日時: 2004-06-02 11:26
SQL*Loaderについてはご存知ですか?
プログラムからではなく、プロンプトからSQL*Loaderを実行した場合はうまく動きましたか? |
|
投稿日時: 2004-06-02 11:50
たーぞう様、お疲れ様です。
SQL*Loaderは甘いかも知れませんが、自分なりに調べ、 先にプロンプトから直接入力し、実行できるか調べてみました。 すると、OracleのテーブルにCSVファイルのデータが追加 出来たので、VB.NETで挑戦!と思ったらインポートされず 構文がいけないのかな?と困り中でした。 |
|
投稿日時: 2004-06-02 12:57
Shell関数で、SQL*Loaderは動いていますか?
何らかのエラーメッセージが出ていませんか? |
|
投稿日時: 2004-06-02 13:21
返信ありがとうございます!
今、VB.NETからプロンプトを見ようとしたのですが、 Shell("C:\oracle\ora92\bin\sqlldr.exe userid = userid/pass@test control=C:\oracle\table.ctl", AppWinStyle.NormalFocus) このAppWinStyle.以降の型をいろいろ変えてみたのですが、 実行し終了すると即効ウィンドウが閉じてしまうので 確認できないのですが、プロンプトをずっと開いたままの状態に するにはどうしたらいいのでしょうか・・・。 |
|
投稿日時: 2004-06-02 13:45
それでは、
Shell("C:\oracleora92binsqlldr.exe userid = userid/pass@test control=C:\oracletable.ctl log=log.txt > err.txt", ・・・) のように、コマンドの最後に "log=log.txt > err.txt" を追加して実行してみてください。 log.txt またはerr.txtというファイルにメッセージが出力される・・・かな?(不確実なので違っていたらごめんなさい) [ メッセージ編集済み 編集者: たーぞう 編集日時 2004-06-02 13:51 ] |
|
投稿日時: 2004-06-02 14:13
たびたび申し訳ありません。
エラーログが出来ていました。そのままコピーしてしまいます。 ---------------------Err Log----------------------------------- SQL*Loader: Release 9.2.0.1.0 - Production on 水 Jun 2 13:46:26 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 制御ファイル: C:\oracle\table.ctl データ・ファイルmove.csv 不良ファイル: C:\oracle\move.bad 廃棄ファイル: 指定なし (すべて廃棄できます) ロード数: ALL スキップ数: 0 許容エラー数: 50 バインド配列: 64行、最大256000バイト 継続文字: 指定なし 使用パス: 従来型 表MOVE、 ロード済 すべての論理レコードから この表に対する有効な挿入オプション: APPEND TRAILING NULLCOLSオプションは有効です。 Column Name Position Len Term Encl Datatype ------------------------------ ---------- ----- ---- ---- --------------------- M_ID FIRST * , O(")CHARACTER M_TITLE NEXT * , O(")CHARACTER M_KOUKAI NEXT * , O(")CHARACTER SQL*Loader-500: ファイル(move.csv)をオープンできません SQL*Loader-553: ファイルが見つかりません。 SQL*Loader-509: システム・エラー: 指定されたファイルが見つかりません。 SQL*Loader-2026: SQLローダーが続行できないため、ロードは異常終了しました。 表MOVE: 0行のロードに成功しました。 0行はデータ・エラーのためロードされませんでした。 0行はWHEN句のエラーのためロードされませんでした。 0行はすべてのフィールドがNULLのためロードされませんでした。 バインド配列に割り当てられた領域: 49536バイト(64行) 読込みバッファのバイト数: 1048576 スキップされた論理レコードの合計: 0 読み込まれた論理レコードの合計: 0 拒否された論理レコードの合計: 0 廃棄された論理レコードの合計: 0 実行開始水 Jun 02 13:46:26 2004 実行終了水 Jun 02 13:46:29 2004 実行時間: 00: 00: 02.44 CPUタイム : 00: 00: 00.09 ---------------------Err Log----------------------------------- CSVファイルがみつかりませんとありましたが、ファイルは table.ctlと同じフォルダにあります。 |
|
投稿日時: 2004-06-02 14:28
コントロールファイルの内容はどうなっていますか?
move.csvファイルにはパスの指定(C:\oracle\move.csvというように)がしてありますか? |