[Solved] Extracting information from DDL's


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Extracting information from DDL's
# 1  
Old 03-13-2014
[Solved] Extracting information from DDL's

Dear Experts,

I need your help here. I have lot of teradata DDL's as follows, i want to extract field names , field attributes and NOT NULL information from DDL.Could you please help here.

Sample DDL:
Code:
CREATE MULTISET TABLE APS_CALL_IN_PICKUP_CANCELED ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      cnfrm_nbr CHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
      crte_dt DATE FORMAT 'YYYY-MM-DD' NOT NULL,
      shpr_nbr DECIMAL(11,0) COMPRESS 0. ,
      src_sys_nm VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC,
      crte_tm TIME(0),
      delt_flg CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS ('N','Y'),
      rec_last_updt_tmstp TIMESTAMP(0),
      callr_nm VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
      callr_ph_nbr VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
      cpcs_com_desc VARCHAR(255) CHARACTER SET LATIN NOT CASESPECIFIC,
      star_com_desc VARCHAR(150) CHARACTER SET LATIN NOT CASESPECIFIC,
      batch_id_nm CHAR(8) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL)
PRIMARY INDEX ( cnfrm_nbr ,crte_dt );

Expected output:
Code:
cnfrm_nbr|CHAR(20)|NOT NULL
crte_dt|DATE|
shpr_nbr|DECIMAL(11,0)
src_sys_nm|VARCHAR(10)
crte_tm|TIME(0)
delt_flg|CHAR(1)
rec_last_updt_tmstp|TIMESTAMP(0)
callr_nm|VARCHAR(20)
callr_ph_nbr|VARCHAR(20) 
cpcs_com_desc|VARCHAR(255)
star_com_desc|VARCHAR(150)
batch_id_nm|CHAR(8)|NOT NULL

Moderator's Comments:
Mod Comment Next time, use code tags for your code AND data, thanks

Last edited by vbe; 03-13-2014 at 11:50 AM..
# 2  
Old 03-13-2014
Here is one way of doing it.

Define an array with all Teradata supported data types, match and print:
Code:
awk '
        BEGIN {
                DT["BYTEINT"]
                DT["DECIMAL"]
                DT["FLOAT"]
                DT["INTEGER"]
                DT["SMALLINT"]
                DT["BYTE"]
                DT["CHAR"]
                DT["VARCHAR"]
                DT["DATE"]
                DT["TIME"]
                DT["TIMESTAMP"]
        }
        {
                T = $2
                sub ( /\(.*/, X, T )
                sub ( /,/, X, $2 )
                if ( T in DT )
                        print $1, $2 ( $0 ~ "NOT NULL" ? "|NOT NULL": "" )
        }
' OFS=\| file.sql

This User Gave Thanks to Yoda For This Post:
# 3  
Old 03-13-2014
Thank a lot Yoda. This worked like a charm.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extracting information from XML to excel

Hi, I am trying to extract information from a XML file and write it to a excel sheet. I am not sure where to start from. Here is the content from my input XML file. <com.cloudbees.hudson.plugins.folder.properties.FolderProxyGroupContainer plugin="nectar-rbac@4.5"> <groups> ... (4 Replies)
Discussion started by: Sajjadmehdi
4 Replies

2. Shell Programming and Scripting

Extracting information using awk

I want to write a script that extracts a value from a line of text. I know it can be done using awk but I've never used awk before so I don't know how to do it. The text is: Mem: 100M Active, 2150K Cache, 500M Buf, 10G Free I want to extract the free memory value to use as a variable. In... (5 Replies)
Discussion started by: millsy5
5 Replies

3. Shell Programming and Scripting

Problems extracting some information

Hi there! Well, I'm writing a script to obtain certain information about files. Specifically, I want to get the information about those files which last access were in the last 24 hours, so I'm doing something like this: find <directory_name> -atime -1 -printf '%f %a\n' I would also... (4 Replies)
Discussion started by: Skirmish
4 Replies

4. Shell Programming and Scripting

Extracting relevant information from syslogs.

I need to analyse some syslogs and I want to print out all the lines containing SSH connections to the inside interface of the firewall and ignore lines where the originating port is 22. So basically I want to print all matches after "to inside:" that contains /22 and ignore lines where /22 occur... (2 Replies)
Discussion started by: lewk
2 Replies

5. Shell Programming and Scripting

extracting information from multiple files

Hello there, I am trying to extract (string) information ( a list words) from 4 files and then put the results into 1 file. Currently I am doing this using grep -f list.txt file1 . and repeat the process for the other 3 files. The reasons i am doing that (a) I do know how to code (b) each file... (4 Replies)
Discussion started by: houkto
4 Replies

6. Programming

extracting information from lines, put them into arrays

hi I need a little help writing this small perl script. I'm trying to extract the values from each line in a file and find the average for example cat school Highschool 100, 123, 135 Middleschool 41, 67, 54 Elementary 76, 315, 384 ./average.pl highschool: 119.3 middleschool: 54... (2 Replies)
Discussion started by: gengar
2 Replies

7. Shell Programming and Scripting

Matching two file contents and extracting associated information

Hi, I am new to shell programming and need help. I have File1 with some ID numbers and File2 with ID number and some associated information. I want to match the ID numbers from File1 to contents in File2 and output a third file which pulls out the ID numbers and the associated information with... (2 Replies)
Discussion started by: newpro
2 Replies

8. Shell Programming and Scripting

Problems with extracting information

Hi all, <select name="comp" id="comp" style="width:130px;"> <?php $sqlcomp = mysql_query("SELECT * FROM comp"); while ($redcomp = mysql_fetch_array($sqlcomp)) { extract($redcomp); echo "<option value=\"$comp_id\">comp_name</option>"; } ?> ... (0 Replies)
Discussion started by: c0mrade
0 Replies

9. UNIX for Dummies Questions & Answers

Extracting information from text fields.

Dear friends, I'm a novice Unix user and I'm trying to learn the ropes. I have a big task I have to accomplish and I'm convinced Unix can get the job done, I just haven't figured out how. I recently posted on the topic of cutting text between unique text patterns and somebody helped me a great... (24 Replies)
Discussion started by: spindoctor
24 Replies

10. Shell Programming and Scripting

Extracting information from a template

I have a template that I usually use to generate stats on an hourly basis for a number of cell sites altogether. I would like to be able to write a script that would go to the template and extract the information for any single site at any time during the day. For example, let's say that my... (4 Replies)
Discussion started by: Ernst
4 Replies
Login or Register to Ask a Question