unix中的awk命令 - 将记录插入到oracle中

时间:2017-03-29 06:00:17

标签: unix awk

我试图在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);

有人可以告诉我,上面的代码有什么变化可以达到这个目的吗?谢谢你的时间..

1 个答案:

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