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}'