我试图在unix shell脚本中生成insert语句并使用sqlplus命令执行它。我写了下面的代码。
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
从unix进行插入还有其他好的做法吗?
它生成输出
INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',0,0);
INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',0,0);
但是所需的输出是
INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',1,1);
INSERT INTO EMPLOYEE VALUES('TEST-FROM-UNIX',2,2);
有人可以告诉我,上面的代码有什么变化可以达到这个目的吗?谢谢你的时间..
答案 0 :(得分:0)
将$
与i
:
awk 'BEGIN { for (i = 1; i < 3; i++)
printf "INSERT INTO EMPLOYEE VALUES(%s,%d,%d);\n","\047TEST-FROM-UNIX\047",i,i}'
如果您想使用变量max value来执行此操作,则必须使用以下代码创建脚本文件:
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}'