crontabでスクリプトを実行して、プロジェクトの複数のファイルからデータをロードしたいとします。スクリプトは手動で実行するとうまく実行されますが、スクリプトがcrontabルーチンによって実行されると、sqlldrは結果をコミットしませんが、次の反復に移動し、結果としてデータがロードされません。SQLLdrデータがcronjobで動作しない
sqlldr行は、ループ外で正常に動作します。
望ましい結果が得られるようにスクリプトを変更することで任意のヘルプは非常に
を理解されるであろうあなたはおそらくセットアップにsource $HOME/.bashrc
で環境変数をソースすべきコードセグメント
ORACLE_HOME=/oracle/oracle/product/10g/db_1
$ORACLE_HOME/bin/sqlldr
export ORACLE_HOME
totaltotalFileNumber=1000
count=1
while [ $count -lt $totalFileNumber ]
do
$ORACLE_HOME/bin/sqlldr $DBUser/[email protected] control=$controlFilePath direct=true parallel=true
count=`expr $count + 1`
done
-----------CTL file content------------
options(errors=20000)
LOAD DATA
INFILE '/settlement/(fileName).unl'
BADFILE '/settlement/(fileName).BAD'
DISCARDFILE '/settlement/(fileName).DIS'
append
INTO TABLE MO_SMSC
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
colA,
colB,
colC,
colD,
colE
)
:
は.SHファイルの1行目に[RHELのためにこのような何かを試してみてください? –
コード/データの前に4つの空白を付けます。 [edit-help](http://stackoverflow.com/editing-help)を見てください。 – Cyrus
制御ファイルの内容を表示 –