commande awk dans unix – insertion des enregistrements dans oracle

J’essaie de générer des instructions d’insertion dans un script shell Unix et de l’exécuter à l’aide de la commande sqlplus. J’ai écrit le code ci-dessous.

awk 'BEGIN { for (i = 1; i < 3; i++) printf "INSERT INTO EMPLOYEE VALUES(%s,%d,%d);\n","\047TEST-FROM-UNIX\047",$i,$i}'| sqlplus -s username/passwrd 

Y a-t-il une autre bonne pratique pour faire l’insertion à partir d’Unix?

Il génère la sortie

 INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',0,0); INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',0,0); 

Mais la sortie requirejse est

 INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',1,1); INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',2,2); 

Quelqu’un pourrait-il s’il vous plaît dire, Quel changement dans le code ci-dessus va y parvenir? Merci pour votre temps..

Déposez le $ avec i :

  awk 'BEGIN { for (i = 1; i < 3; i++) printf "INSERT INTO EMPLOYEE VALUES(%s,%d,%d);\n","\047TEST-FROM-UNIX\047",i,i}' 

Si vous voulez le faire avec la valeur de variable max, vous devez créer un fichier de script avec ce code:

 awk -v rows=$1 'BEGIN { for (i = 1; i < rows; i++) printf "INSERT INTO EMPLOYEE VALUES(%s,%d,%d);\n","\047TEST-FROM-UNIX\047",i,i}'