Hello,
I have 1000 of sql queries and i need to push column value in query. e.g.
SET INSERT_ID=1
INSERT INTO test (id,name) VALUES ('a');
SET INSERT_ID=2
INSERT INTO test (id,name) VALUES ('b');
SET INSERT_ID=3
INSERT INTO test (id,name) VALUES ('c');
SET INSERT_ID=4
INSERT INTO test (id,name) VALUES ('d');
I need to put id column value for those sql queries. Resultant queries should be
INSERT INTO test (id,name) VALUES (1,'a');
INSERT INTO test (id,name) VALUES (2,'b');
INSERT INTO test (id,name) VALUES (3,'c');
INSERT INTO test (id,name) VALUES (4,'d');
I wrote shell script for that
# !/bin/bassh
ID=`cat test.sql | grep INSERT_ID | awk -F"=" '{print $2}' | sed 's/\(.*\)....../\1/'`
VALUES=`cat test.sql | grep "INSERT INTO test"
for ff in $VALUES
do
for f in $ID
do
sed "s/VALUES (/VALUES ($f,/" $ff > finalfile.sql
done
done
Where ID variable contains values 1,2,3,4... and so on
and VALUES variable contains SQL queries are
INSERT INTO test (id,name) VALUES ('a');
INSERT INTO test (id,name) VALUES ('b'); and so on
I applied nested loop and finally trying to push id column values. but it errors "filename too long". Following is the command
sed "s/VALUES (/VALUES ($f,/" "$ff" > finalfile.sql
command after value substituion
sed "s/VALUES (/VALUES (1,/" "INSERT INTO test (id,name) VALUES ('a');"
"Filename too long" error occus on %ff variable value i.e. on sql qurey.
Can someone please help how to accomplish it ?
Thank you.