The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
Googleのunix.com



シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
(削除するsed )の解析は、複数行のINSERT文の列を渡る jjordan シェルプログラミングとスクリプティング 3 2007年10月9日 01:23午前
同じ文を実行する必要があります Legend986 シェルプログラミングとスクリプティング 8 2007年10月1日 05:59午後
else文の場合はどうすれば実行する laknar シェルプログラミングとスクリプティング 1 2007年6月8日 03:54午前
タブを挿入するエコーの声明 sunils27 シェルプログラミングとスクリプティング 5 2005年8月26日 04:36午前
INSERTステートメントのAwkのコマンド nattynatty シェルプログラミングとスクリプティング 4 2002年5月10日 03:11午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2006年8月24日
Amruta Pitkar Amruta Pitkar is offline
登録ユーザー
  
 

参加日: 2006年8月
投稿: 54
スクリプトを挿入ステートメントを実行していません

やあ

私は、テキストファイルが、内容は
行1 :フィールド、フィールド、 field3 、 field4 、 field5 、 field6 ....... field20
行:フィールド、フィールド、 field3 、 field4 、 field5 、 field6 ....... field20
行:フィールド、フィールド、 field3 、 field4 、 field5 、 field6 ....... field20
....のように...

私はこのファイルを読む際に、テーブルにデータを挿入します。

どのように行うことができます...誰ですか?
私は、それぞれの行がテキストファイルの読み込みを、試したのフィールド切ると、データベースへの接続をすると、 INSERTステートメントを実行して....
しかし、私はこれは、 INSERTステートメントを実行していません。
誰も私ガイドどうすればいいかを達成することはできますか?

コード:
#####Connecting sqlplus to check the connectivity
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}

cat /$FILEPATH/$FILENAME | while read LINE
do
    echo ${LINE}
    acctno=`echo $LINE | cut -f1 -d','`
    echo $acctno
    salutation=`echo $LINE | cut -f2 -d','`
    name=`echo $LINE | cut -f3 -d','`
    billdate=`echo $LINE | cut -f4 -d','`
    totaldue=`echo $LINE | cut -f5 -d','`
    billdeductiondate=`echo $LINE | cut -f6 -d','`
    billduedate=`echo $LINE | cut -f7 -d','`
    templatecode=`echo $LINE | cut -f8 -d','`
    billid=`echo $LINE | cut -f9 -d','`
    emailid=`echo $LINE | cut -f10 -d','`
    brnno=`echo $LINE | cut -f11 -d','`
    billsummaryid=`echo $LINE | cut -f12 -d','`
    batchno=`echo $LINE | cut -f13 -d','`
    emailfile=`echo $LINE | cut -f16 -d','`
    echo "Insert into table"

    spool ${SYS_TEMP_DIR}/${JOB_ID}_db_sql.log
    INSERT INTO SendMailDetails (acctno) values ('${acctno}');
    echo "Table Appended"
    commit;
    spool off;
    exit;
    EOF
done
私も試みた:

コード:
MYCOMMAND=`awk '$1' ${FILEPATH}${FILENAME}`
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}

spool my.log
Insert into SendMailDetails(acctno) values($MYCOMMAND);
spool off
commit;
exit
EOF;
しかし、助けてください.....失敗午前
  #2固定リンク)  
Old 2006年8月24日
mukundranjan mukundranjan is offline
登録ユーザー
  
 

参加日: 2006年7月
投稿: 20
私はあなたの目的のためにかなりのSQLローダーを使用するように簡単と思う。
  #3固定リンク)  
Old 2006年8月24日
Amruta Pitkar Amruta Pitkar is offline
登録ユーザー
  
 

参加日: 2006年8月
投稿: 54
おかげMukund

少なくとも私は方向性が...

ありがとう
Amruta
  #4固定リンク)  
Old 2006年8月24日
blowtorch's Avatar
ジェット機 blowtorch is offline Forum Advisor  
サポーター
  
 

参加日: 2004年12月
場所:シンガポール
投稿数: 2,350
Amrutaは、非常に簡単にこれを行うには、シェルを使用するでした:
コード:
#####Connecting sqlplus to check the connectivity
sqlplus -s /nolog <<EOF>/dev/null
connect ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME}
oldIFS=$IFS
IFS=,
while read acctno salutation name billdate totaldue billdeductiondate billduedate templatecode billid emailid brnno billsummaryid batchno field14 field15 emailfile rest_of_the_fields; do
    echo "Insert into table"
# insert into whatever table, whichever values that you want
# after you are done, go ahead
    echo "Table Appended"
    commit;
    spool off;
    exit;
    EOF
done
field14 、 field15 : 14と15の分野、 rest_of_the_fields :ホールドラインの最後に17日からのフィールドを保持します。それ以外は、適切な名前の変数に入る。
  #5固定リンク)  
Old 2006年8月25日
Amruta Pitkar Amruta Pitkar is offline
登録ユーザー
  
 

参加日: 2006年8月
投稿: 54
Thumbs up のSQLローダデータを追加する

こんにちは
私Mukundの提案にsqlloaderを使用するように...それが正常に働いている。
これは、メインシェルスクリプトです
LoadMain.sh

コード:
#!/usr/bin/ksh

DB_LOGIN=SOMESYSTEM
DB_PASSWORD=SOMEPASSWD
DB_NAME=SOMENAME
FILENAME="$1"

sqlldr ${DB_LOGIN}/${DB_PASSWORD}@${DB_NAME} control=tryloader log=mlist2.log data=mlist2.txt

echo "I am done"
-------------
データ\u003d mlist.txtは、区切り文字でデータが含まれている入力テキストファイルです。
コントロール\u003d tryloader.ctlどのようにデータをテーブルに追加されるの情報が含まれているコントロールファイルです...
マイtryloader.ctl含まれています:
コード:
LOAD DATA
APPEND INTO TABLE SendMailDetails
(
  AcctNo CHAR TERMINATED BY ",",
  Salutation CHAR TERMINATED BY ",",
  Name CHAR TERMINATED BY ",",
  BillDate CHAR TERMINATED BY ",",
  TotalDue DECIMAL EXTERNAL TERMINATED BY ",",

 ...and other fields
)
みんな感謝してから、もう一度.. ....

Amruta Pitkar
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 06:03午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0