Java メソッドから SQL Loader を実行しようとしていますが、問題に直面しています。
SQLLDR コマンドを実行するランタイム プロセスを作成していますが、データ ファイル内のすべての行がロードされていません。代わりに、データ ファイル内の合計行数に関係なく、同じ行数 (5184 行) で停止します。
ただし、まったく同じコマンドをコピーしてコマンド プロンプトから直接実行すると、完全に機能し、すべての行が読み込まれます。
この問題の原因は何ですか?私が変更する必要があるのは、Javaのある種のバッファサイズですか?
ありがとう!
// Run SQL Loader after creating the control file
Runtime rt = Runtime.getRuntime();
String sqlLoaderPath = "C:\\app\\product\\11.1.0\\client_1\\BIN\\";
String cmd = sqlLoaderPath + "SQLLDR.EXE userid=***************************"
+ "data=c:\\sqlldr\\sqlldr_data.dat "
+ "control=c:\\sqlldr\\sqlldr_control.ctl "
+ "log=c:\\sqlldr\\sqlldr_log.log "
+ "discard=c:\\sqlldr\\sqlldr_discard.disc "
+ "bad=c:\\sqlldr\\sqlldr_bad.bad ";
Process proc = rt.exec(cmd);
int exitVal = proc.waitFor();
proc.destroy();