- PR -

C#からSQL*Loaderを実行

1
投稿者投稿内容
ボブ
会議室デビュー日: 2004/01/22
投稿数: 17
投稿日時: 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.
=============================================================================
処理件数が出力されるはずだと思うのですが、出力されません…。

どなたか、お気づきの点がございましたら、
ご教授の程、宜しく願い致します。

以上

_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-06-29 11:50
 あなたの興味を呼び起こしたり、専門的な学問として教えを授けることはできませんが…

 そのメソッドを、Windowsアプリケーションからコールすると、どうなりますか?Windowsアプリケーションからなら挿入できるのであれば、頻出している問題です。オラクルのサポートページへいってください。
http://support.oracle.co.jp/
「製品FAQ検索」で、「ntfs asp net」をキーに検索して、見つかった文書、および関連する文書をすべて、よく読んで対応してください。
ボブ
会議室デビュー日: 2004/01/22
投稿数: 17
投稿日時: 2004-06-29 16:41
jittaさん、ご返答有難うございます。

Windowsアプリケーションからコールすると動作はしました。
しかし、Oracleのページで記載されていることを行ったのですが、
Webアプリからコールしても、データの挿入は出来ませんでした。

他にお気づきの点がございましたら、
ご返答の程、宜しくお願い致します。

以上
_________________
ボブ
会議室デビュー日: 2004/01/22
投稿数: 17
投稿日時: 2004-06-29 20:43
自己レスです。

解決といえるのかどうかわかりませんが、
Argumentsに以下を追加したところ、データが挿入できました。
=================================
log=c:\oracle\log.txt
=================================

意味がわかりません。
どうしてでしょうね…

以上
_________________
ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2005-11-01 13:34
もう、だいぶ前のスレッドなので投稿された方には意味ないと思いますが、
今後同じことをする人のために。

私も同じことをして、同じ状態にはまりました。

原因は、ファイルのアクセス権限にありました。

Process.StandardError.ReadToEnd
を見てみると
「SQL*Loader-522: ファイル(***)でlfiopnに失敗しました。 」
とありました。

ボブさんの場合も同じ原因だと思われます。

SQL*LOADERのメッセージが
途中までStandardOutputで出ていたので、
エラーもそこに出ると思い込んでいました。



1

スキルアップ/キャリアアップ(JOB@IT)