- - PR -
C#からSQL*Loaderを実行
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-29 10:35
お世話になります。宜しくお願い致します。
C#のWebアプリからSQL*Loaderを実行しようと試みているのですが、 1件もデータが挿入されません。 コマンドプロンプトから実行したら挿入ができることは確認しています。 実装内容は以下の通りです。 ============================================================================= ProcessStartInfo p = new ProcessStartInfo(); p.FileName = @"c:\oracle\ora92\bin\sqlldr.exe"; p.Arguments = @"control=C:\Oracle\data.ctl DATA=C:\Oracle\\data.dat userid=アカウント/パスワード@サービス名"; p.UseShellExecute = false; p.RedirectStandardOutput = true; p.WindowStyle = ProcessWindowStyle.Hidden; p.CreateNoWindow = true; Process pro = Process.Start( p ); pro.WaitForExit(); string output = pro.StandardOutput.ReadToEnd(); System.Diagnostics.Debug.Write( output ); ============================================================================= outputの出力は、以下の通りです。 ============================================================================= SQL*Loader: Release 9.2.0.1.0 - Production on 火 Jun 29 09:44:25 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. ============================================================================= 処理件数が出力されるはずだと思うのですが、出力されません…。 どなたか、お気づきの点がございましたら、 ご教授の程、宜しく願い致します。 以上 _________________ |
|
投稿日時: 2004-06-29 11:50
あなたの興味を呼び起こしたり、専門的な学問として教えを授けることはできませんが…
そのメソッドを、Windowsアプリケーションからコールすると、どうなりますか?Windowsアプリケーションからなら挿入できるのであれば、頻出している問題です。オラクルのサポートページへいってください。 http://support.oracle.co.jp/ 「製品FAQ検索」で、「ntfs asp net」をキーに検索して、見つかった文書、および関連する文書をすべて、よく読んで対応してください。 |
|
投稿日時: 2004-06-29 16:41
jittaさん、ご返答有難うございます。
Windowsアプリケーションからコールすると動作はしました。 しかし、Oracleのページで記載されていることを行ったのですが、 Webアプリからコールしても、データの挿入は出来ませんでした。 他にお気づきの点がございましたら、 ご返答の程、宜しくお願い致します。 以上 _________________ |
|
投稿日時: 2004-06-29 20:43
自己レスです。
解決といえるのかどうかわかりませんが、 Argumentsに以下を追加したところ、データが挿入できました。 ================================= log=c:\oracle\log.txt ================================= 意味がわかりません。 どうしてでしょうね…。 以上 _________________ |
|
投稿日時: 2005-11-01 13:34
もう、だいぶ前のスレッドなので投稿された方には意味ないと思いますが、
今後同じことをする人のために。 私も同じことをして、同じ状態にはまりました。 原因は、ファイルのアクセス権限にありました。 Process.StandardError.ReadToEnd を見てみると 「SQL*Loader-522: ファイル(***)でlfiopnに失敗しました。 」 とありました。 ボブさんの場合も同じ原因だと思われます。 SQL*LOADERのメッセージが 途中までStandardOutputで出ていたので、 エラーもそこに出ると思い込んでいました。 |
1