- - PR -
sql Loader-350エラーが出てしまう
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-30 17:29
環境は
Windows2003 server oracle9i です。 コマンドプロントから sqlldr user/pass@sidを入力して mas_loader.shというファイルを実行させようとしたのですが、 実行すると -------------------------------------------- SQL*Loader-350: 行1に構文エラーがあります。 英数字以外の無効な文字列があります #!/bin/sh -------------------------------------------- 上記のようなメッセージが表示されてしまいます。 SQL loderの使い方がいまいちよく分からず、調べても 「○○.ctlを読み込ませる」は見つかるのですが「○○.sh」を使った場合が見つかりません。 コメント行と思しき箇所を削除してみるも、350エラーが表示されてしまいます。 どのようにしたらいいか手詰まり状態で、どこを調べればいいのか分かりません 以下mas_loader.shのソースです。 ご教授よろしくお願いします。 ------------------------------------------------------------------------------- #!/bin/sh # # マスタ・登録シェル # ###################################################################### # 各種環境変数 ###################################################################### MASNAME=$1 USERID=user/pass@sidr CTRLFILE=../control/$MASNAME.ctl DATAFILE=../data/$MASNAME.csv BADFILE=../error/$MASNAME.bad DISCARDFILE=../error/$MASNAME.dis LOGFILE=../log/$MASNAME.log ##export MASNAME DATANAME USERID CTRLFILE DATAFILE BADFILE DISCARDFILE STS=0 ################################################################## # 処理開始 ################################################################## # 開始ログ echo "【$MASNAME】の反映を開始します。" # CTRLFILEファイルの存在チェック if [ ! -f $CTRLFILE ] ; then echo ">・コントロールファイル[$CTRLFILE]が存在しません。" echo ">・処理を中断しました。" exit 0 fi # DATAFILEファイルの存在チェック if [ ! -f $DATAFILE ] ; then echo ">・データファイル[$DATAFILE]が存在しません。" echo ">・処理を中断しました。" exit 0 fi # LOGファイルの削除 if [ -f $LOGFILE ] ; then \rm -f $LOGFILE fi # BADファイルの削除 if [ -f $BADFILE ] ; then \rm -f $BADFILE fi # DISCARDファイルの削除 if [ -f $DISCARDFILE ] ; then \rm -f $DISCARDFILE fi # LOGファイルの削除 if [ -f $LOGFILE ] ; then \rm -f $LOGFILE fi # LOADER実行 sqlldr userid=$USERID control=$CTRLFILE log=$LOGFILE bad=$BADFILE data=$DATAFILE discard=$DISCARDFILE > /dev/null STS=$? # 終了開始ログ echo ">・ステータス[$STS]で終了しました。" case "$STS" in 0) echo ">・すべての列が正常にロードされました。" ;; 1) echo ">・致命的エラーが発生しました。" ;; 2) echo ">・すべての行または一部の行が拒否または廃棄されました。" ;; 3) echo ">・致命的エラーが発生しました。" ;; *) echo ">・未定義のエラーコードが返却されました。" ;; esac if [ $STS != 0 ]; then echo ">・以下のファイルを参照下さい。" echo "> ログファイル:$LOGFILE" echo "> 不良レコード:$BADFILE" echo "> 廃棄レコード:$DISCARDFILE" fi echo exit 0 |
|
投稿日時: 2008-06-30 17:44
mas_loader.shはUNIXやLinuxで使うシェルスクリプトですね。
そのままではWindowsでは使えません。 無理に使う必要はないので、「Oracle Database ユーティリティ」のマニュアルを読んでわかる方法で直接コマンドを使えばいいと思いますよ。 mas_loader.shを作った人は前任者ですか?まずは何をする目的のものか聞いてみましょう。 _________________ 「ご教授」はできません |
1