Read a CSV file and generate SQL output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read a CSV file and generate SQL output
# 1  
Old 05-25-2011
Read a CSV file and generate SQL output

Friends,

This is what I need:

I will pass a CSV file as an input, and I want my shell to be reading that CSV file, and based on the parameters it should generate SQLs and write those SQL in a different file in the same location.

I'm new to Shell scripting. I'm currently working on a different technology. If somebody could help me, i am grateful.

Thanks,
Math
# 2  
Old 05-25-2011
What do you mean by sql? insert statements? please post sample data file (csv) and required sql statements from them.
# 3  
Old 05-26-2011
Hi Ram
You can try this

if ur csv file is like this
Code:
$ cat input.csv
razor,cts
indu,adobe
akash,daksh

u can use this code
Code:
 awk -F',' '{ print "Select * from " $1 " where user=" $2 ";" }' input.csv > output.log

$ cat output.log
Select * from razor where user=cts;
Select * from indu where user=adobe;
Select * from akash where user=daks;

hope it will help

Last edited by Scott; 05-26-2011 at 01:38 AM.. Reason: Code tags
This User Gave Thanks to atul9806 For This Post:
# 4  
Old 05-26-2011
Thanks a lot, Atul. I think your code should help me. I will give out a try and let you know shortly.

Here is how the CSV should look like.
Code:
1000,Y,$2 ,10000,Students Plan
1001,M,$2 ,10001,Professional Plan
1002,M,$3 ,10002,Talk 199
1003,Y,$5 ,10003,Simple 30
1004,M,$3 ,10004,Flat 300

And the sqls should be inserts into tables. I think I will leverage you for many more things Smilie

Regards,
R..

---------- Post updated at 09:22 AM ---------- Previous update was at 09:21 AM ----------

Hi Anchal, I have replied to Atul's comment on the csv and the sqls. they are insert statements...

any of your advice will do a lot to me.

Last edited by Scott; 05-26-2011 at 01:39 AM.. Reason: Code tags
# 5  
Old 05-26-2011
Another way:
Code:
while IFS="," read c1 c2 c3 c4 c5
do
 echo "insert into table1 values ($c1,$c2,$c3,$c4,'$c5');"
done < csv_file

If you want to insert into specific columns, change echo statement accordingly. also take care of datatypes (quotes for varchars) accordingly.

O/P of above:
Code:
insert into table1 values (1000,Y,$2 ,10000,'Students Plan');
insert into table1 values (1001,M,$2 ,10001,'Professional Plan');
insert into table1 values (1002,M,$3 ,10002,'Talk 199');
insert into table1 values (1003,Y,$5 ,10003,'Simple 30');
insert into table1 values (1004,M,$3 ,10004,'Flat 300');

This User Gave Thanks to clx For This Post:
# 6  
Old 06-08-2011
Hi Anchal, Thanks it worked for me. But I just have a question, how to let my code go directly to the II row I column right after it does with I row I column?

for example: right after 1000, i want it to go to 1001. but i might come back again to I row V column in the later SQLs... is it possible?

please advice...

Last edited by Ram.Math; 06-08-2011 at 03:10 AM..
# 7  
Old 06-08-2011
SQL loader is efficient one to load data from file.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Not able to write SQL query output in to .csv file with shell script.

I am trying to write SQL query output into a .csv file. But in the output columns are displaying in different lines instead of coming in one line. Main Code shell script: this is my code: #!/bin/bash file="db_detail.txt" . $file rm /batch/corpplan/bin/dan.csv... (6 Replies)
Discussion started by: sandeepgoli53
6 Replies

2. Shell Programming and Scripting

ksh - Read input from file and output CSV i same row

Hello I have the following output and want the output to look: FROM: GigabitEthernet0/0 is up, line protocol is up 1 input errors, 0 CRC, 0 frame, 1 overrun, 0 ignored 275 output errors, 0 collisions, 3 interface resets GigabitEthernet0/1 is up, line protocol is up 0... (4 Replies)
Discussion started by: JayJay2018
4 Replies

3. Shell Programming and Scripting

Script to generate Excel file or to SQL output data to Excel format/tabular format

Hi , i am generating some data by firing sql query with connecting to the database by my solaris box. The below one should be the header line of my excel ,here its coming in separate row. TO_CHAR(C. CURR_EMP_NO ---------- --------------- LST_NM... (6 Replies)
Discussion started by: dani1234
6 Replies

4. Shell Programming and Scripting

Convert sql output to csv file via bash tools

hi Can anybody help me with converting such structure into csv file for windows : BAT_ID ID_num CVS_LINE A_SEG SKILL_TO A_CUSTOMER_TYPE --------- ---------- --------------------------------- ---------- ------------------ ----------- 14-MAY-11 777752 ... (4 Replies)
Discussion started by: kvok
4 Replies

5. Shell Programming and Scripting

to read a CSV file and generate SQL output

Friends, This is what I need: I will pass a CSV file as an input, and I want my shell to be reading that CSV file, and based on the parameters it should generate SQLs and write those SQL in a different file in the same location. I'm new to Shell scripting. I'm currently working on a... (1 Reply)
Discussion started by: Ram.Math
1 Replies

6. Shell Programming and Scripting

generate PDF document on UNIX (not with GUI) from SQL*Plus output

Hi I wish to generate from CSV output of SQL*Plus a PDF. I use a Solaris 10 box. Which Open Source software can do that on CLI? (4 Replies)
Discussion started by: slashdotweenie
4 Replies

7. Shell Programming and Scripting

formatting into CSV format of SQL session output

I am getting a no of fields from a SQL session (e.g. select a,b,c from table). How do I convert the output values into CSV format . The output should be like this 'a','b','c', (4 Replies)
Discussion started by: mady135
4 Replies

8. Shell Programming and Scripting

SQL Script's output to a CSV file

I need to call and execute an SQL script within a KSH script and get the output/extracted data into a CSV file. Is there any way to get the out put in a CSV file other than spooling ? I tried spooling. Problem is if there is any wrning/comment/Error they all will be spooled into the csv file. I... (4 Replies)
Discussion started by: Sriranga
4 Replies

9. Shell Programming and Scripting

How to use sql data file in unix csv file as input to an sql query from shell

Hi , I used the below script to get the sql data into csv file using unix scripting. I m getting the output into an output file but the output file is not displayed in a separe columns . #!/bin/ksh export FILE_PATH=/maav/home/xyz/abc/ rm $FILE_PATH/sample.csv sqlplus -s... (2 Replies)
Discussion started by: Nareshp
2 Replies

10. Shell Programming and Scripting

need help in Parsing a CSV file and generate a new output file

Hi Scripting Gurus, I am trying to parse a csv file and generate a new output file. The input file will be a variable length in turns of rows and columns. output file will have 8 columns. we have three columns from the header for each set. just to give little bit more clarification each row... (15 Replies)
Discussion started by: vkr
15 Replies
Login or Register to Ask a Question