Como retornar o valor da seqüência no sqlldr do shell unix

0

Eu tenho um arquivo test.txt com coluna ( Serialnumber,value ).

test.txt:

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

aqui SEQ_IN_AMT é um nome de sequência criado no Oracle. Agora, quando eu carregar este arquivo através de sqlldr em unix para o Oracle db.i quero o valor desta seqüência para que eu use este valor de sequência abaixo do procedimento:

P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,value) 
    
por user3548033 04.09.2015 / 10:37

1 resposta

1

Para alterar o formato do arquivo test.txt , use awk :

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

Impressões:

P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,123123)
P_UPDATE_VALUE (SEQ_IN_AMT.NEXTVAL,123114)
  • -F define que os delmissores awk devem usar " e , neste caso.
  • printf formata a saída conforme desejado
  • $2 e $4 são os dois campos, com base nos delimitadores
por 04.09.2015 / 11:28