Sponsored Content
Full Discussion: create sql query
Top Forums Shell Programming and Scripting create sql query Post 302534880 by aigles on Wednesday 29th of June 2011 04:26:11 AM
Old 06-29-2011
Try and adapt the following AWK script :
Code:
nawk -F'|' -v Q="'" '
{
    req       = $1;
    table     = $3;
    column    = $4;
    attribute = $5;
    nbTbl     = ++Requests[req];     # Tables count
    Tables[req, nbTbl]     = table;
    Columns[req, nbTbl]    = column;
    Attributes[req, nbTbl] = attribute;
}
END {
    tblIds = "abcdefghijklmnopqrstuvwxyz";
    for (req in Requests) {
        nbTbl  = Requests[req]
        select = "";
        where  = "";
        from   = "";
        sep    = "";
        for (i=1; i<=nbTbl; i++) {
            id        = substr(tblIds,i,1);
            select    = select sep id "." Columns[req, i];
            from      = from   sep Tables[req, i] " " id;     
            attribute = Attributes[req, i];
            if (attribute ~ /[*%]/) {
                not = "";
                if (substr(attribute,1,1) == "!") {
                    not = "NOT ";
                    attribute = substr(attribute,2);
                }
                where = where (sep ? " and " : "") id "." Columns[req, i] " " not "LIKE " Q attribute Q;
            } else {
                where = where (sep ? " and " : "") id "." Columns[req, i] "=" Q attribute Q;
            }
            sep = ",";
            }
        print "\nselect",select,"\nfrom  ",from,"\nwhere ",where,";";
    }
}
' inputfile

Inputfile:
Code:
R1|Array/Network Resistor - VIP|V_RES_CLASS|V_MOUNT_FEATURE|SURFACE MOUNT|AND|8533.10.00.20|8533.10.00.20|
R1|Array/Network Resistor - VIP|V_RES_NW_CLASS|V_TECHNOLOGY|CARBON*||8533.10.00.20|8533.10.00.20|
R4|Array/Network Resistor - VIP|V_RES_CLASS|V_MOUNT_FEATURE|THROUGH HOLE MOUNT|AND|8533.10.00.57|8533.10.00.57|
R4|Array/Network Resistor - VIP|V_RES_NW_CLASS|V_TECHNOLOGY|CARBON*||8533.10.00.57|8533.10.00.57|
R7|Array/Network Resistor - VIP|V_RES_CLASS|V_MOUNT_FEATURE|SURFACE MOUNT|AND|8533.21.00.10|8533.21.00.25|
R7|Array/Network Resistor - VIP|V_RES_NW_CLASS|V_TECHNOLOGY|!CARBON*|AND|8533.21.00.10|8533.21.00.25|
R7|Array/Network Resistor - VIP|V_PRT_CLASS|V_MFR_PKG_DESC|DIP*||8533.21.00.10|8533.21.00.25|

Output:
Code:
select a.V_MOUNT_FEATURE,b.V_TECHNOLOGY
from   V_RES_CLASS a,V_RES_NW_CLASS b
where  a.V_MOUNT_FEATURE='SURFACE MOUNT' and b.V_TECHNOLOGY LIKE 'CARBON*' ;

select a.V_MOUNT_FEATURE,b.V_TECHNOLOGY
from   V_RES_CLASS a,V_RES_NW_CLASS b
where  a.V_MOUNT_FEATURE='THROUGH HOLE MOUNT' and b.V_TECHNOLOGY LIKE 'CARBON*' ;

select a.V_MOUNT_FEATURE,b.V_TECHNOLOGY,c.V_MFR_PKG_DESC
from   V_RES_CLASS a,V_RES_NW_CLASS b,V_PRT_CLASS c
where  a.V_MOUNT_FEATURE='SURFACE MOUNT' and b.V_TECHNOLOGY NOT LIKE 'CARBON*' and c.V_MFR_PKG_DESC LIKE 'DIP*' ;

Jean-Pierre.
This User Gave Thanks to aigles For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

& in SQL query

I have a script that looks for all jobs that contain a particular calendar. Some of the calendars have '&' in them and sql freaks out when it encounters that.. is there a way around this? I have tried: select job_name from job where run_calendar='1&15dom' select job_name from job... (3 Replies)
Discussion started by: Lindarella
3 Replies

2. Shell Programming and Scripting

rsh and sql query

Hi ... I am doing a switch user and then rsh and then running a sql query . I am successfull in rsh and logging into the database , but my query doesnt run .. Here's the command : su - linus -c "rsh -l linus psmf ORACLE_SID=SMP;export ORACLE_SID;sqlplus... (1 Reply)
Discussion started by: sars
1 Replies

3. UNIX and Linux Applications

SQL Lite query

Hello Everyone, I am looking to write a script that will run on many machines in a network at the same time. They need to write a result to a common location. I plan to use a SQLlite database as this common writing point. But the concern I have is how SQLlite will react to multiple writes that... (1 Reply)
Discussion started by: garric
1 Replies

4. Shell Programming and Scripting

sql query problem

Hi, I am passing an argument for the script and that argument values should exist in database. bill_period_input="'""$1""'" bill_period=`sqlplus uname/pwd@dbname <<eof! set verify off set heading off set feedback off select bill_period from bill_period_ref where... (4 Replies)
Discussion started by: ss_ss
4 Replies

5. 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

6. Shell Programming and Scripting

problem in SQL query

I used the following code code select * from tablename where columnname Instead of printing the expected output it prints all the files in the present directory since there is a "*" in the code. Is there any way to overcome the problem? Thanks Ananth (2 Replies)
Discussion started by: Ananthdoss
2 Replies

7. Shell Programming and Scripting

Run SQL thru shell script: how to get a new line when run sql query?

Hi, this's Pom. I'm quite a new one for shell script but I have to do sql on shell script to query some information from database. I found a concern to get a new line...When I run my script, it retrieves all data as wondering but it's shown in one line :( What should I do? I'm not sure that... (2 Replies)
Discussion started by: Kapom
2 Replies

8. Programming

Getting error in sql query

Hi All , I have tried many times am getting syntax error on 'UNION' can anybody tell me ... INSERT INTO table1 ( Type , num_items , num_letters , total_value ) (select type='1', num_items, num_letters=count(*), total_value=sum(letter_value) from table2 where num_items = 1 (1 Reply)
Discussion started by: Venkatesh1
1 Replies

9. Programming

Help writing SQL query

Hello All, I hope I'm posting this in the right section. I have zero sql query writing skill, in fact, I've never done it before, but for some reason, a request came across my desk to get information from one of our databases. I have about 200 ticket numbers that have no information attached,... (8 Replies)
Discussion started by: bbbngowc
8 Replies

10. Solaris

SQL QUERY to Table Output

Hi I am trying to run sql query from solaris in csh script and send the output to email. Below is my sql query select p.spid,se.program seprogram, se.machine, se.username, sq.sql_text,sq.retrows from v$process p inner join v$session se on p.addr = se.paddr inner join ( select... (2 Replies)
Discussion started by: tharmendran
2 Replies
All times are GMT -4. The time now is 05:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy