如何从unix shell返回sqlldr中的序列值

如何从unix shell返回sqlldr中的序列值

我有一个包含 ( ) 列的 test.txt 文件Serialnumber,value

测试.txt:

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

SEQ_IN_AMT是在 Oracle 上创建的序列名称。现在,当我通过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应使用"and 的分隔符。,
  • printf根据需要格式化输出
  • $2$4是两个字段,基于分隔符

相关内容