Unixシェルからsqlldrのシーケンス値を返す方法

Unixシェルからsqlldrのシーケンス値を返す方法

()列を含むtest.txtファイルがありますSerialnumber,value

テスト.txt:

"SEQ_IN_AMT.NEXTVAL",123123
"SEQ_IN_AMT.NEXTVAL",123114

SEQ_IN_AMTOracleによって生成されたシーケンスの名前。sqlldrUnixを介してこのファイルをOracleにロードするときは、次のプロセスでそのシーケンス値を使用できるように、そのシーケンスの値がdb.i必要です。

P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,value) 

ベストアンサー1

ファイル形式を変更するには、test.txt次のようにしますawk

awk -F'[",]' '{printf "P_UPDATE_VALUE (%s,%s)\n",$2,$4}' test.txt

印刷:

P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,123123)
P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,123114)
  • -Fこの場合にawk使用する"区切り文字を定義します。,
  • printf必要に応じて出力フォーマットを指定
  • $2$4区切り文字に基づく2つのフィールド。

おすすめ記事