Help required in this script.


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Help required in this script.
# 1  
Old 05-19-2009
Error Help required in this script.

Hi Everyone,

Please find below the script, I needed to understand step by stepSmilie. Please If someone can help me out i will be very greatfulSmilie.

Please Guide me in a way which can help me out in figuring what this script doing on my server.


========================================================
#!/bin/sh
time=`date +%Y%m%d-%H%M%S`
echo $time":: process of modification started..."
while read abcd
do
dbaccess xyzdb << EOF >> db$abcd.log 2>&1
alter table $abcd add ( encrypt char(11) ) ;
create index idx_neuker on $abcd(insys_serial) ;
update statistics high for table $abcd(insys_serial);
create procedure p$abcd()
returning char(40);
DEFINE acc_num char(20);
DEFINE i integer;
DEFINE sum integer;
set debug file to 'pev_rech_yyyymmnn.log';
trace 'begin update';
let i = 0;
let sum=0;
begin work;
foreach up_cur with hold for
select insys_serial into acc_num from $abcd
update $abcd set encrypt=msisdn where insys_serial=acc_num;
let i=i+1;
let sum=sum+1;
if i=10000 then
trace 'record processed '||sum;
commit work;
let i=0;
begin work;
end if
end foreach
commit work;
trace 'procedure ok! total processed records are '||sum;
return "procedure complete!";
end procedure;
execute procedure p$abcd();
drop procedure p$abcd ;
drop index idx_neuker;
EOF
time=`date +%Y%m%d-%H%M%S`
echo $time":: "$abcd" table is modified."
done < ab_done_yyyymm_tablenames.unl
=========================================================
# 2  
Old 05-20-2009
first you are taking the start time then you have tables name inside the file ab_done_yyyymm_tablenames.unl
you are reading it line by line using while loop so that table name is stored in a variable called abcd
then you are connecting to database further is the normal DB procedure..
# 3  
Old 05-20-2009
Power

Thakz vidyadhar85,

Well actually i want to know the complete script, it would be really helpful if you or someone guide me step by step.Smilie

Like certain clauses
======================================================
1) alter table $abcd add ( encrypt char(11) ) ;
create index idx_neuker on $abcd(insys_serial) ;
======================================================
2) create procedure p$abcd()
returning char(40); ----------------------> what does this 40 means?
DEFINE acc_num char(20);
DEFINE i integer;
DEFINE sum integer;
set debug file to 'pev_rech_yyyymmnn.log';
trace 'begin update';
let i = 0;
let sum=0;
begin work;
foreach up_cur with hold for
========================================================

3) let i=i+1;
let sum=sum+1;
if i=10000 then
trace 'record processed '||sum;
commit work;
let i=0;
begin work;
end if
end foreach
commit work;
trace 'procedure ok! total processed records are '||sum;
return "procedure complete!";
end procedure;
execute procedure p$abcd();
drop procedure p$abcd ;
drop index idx_neuker;
========================================================

Please advice me step by step.Smilie

Thankz in advance.....Smilie
# 4  
Old 05-20-2009
HOPE THIS WILL SLOVE SOME OF YOUR DOUBTSmilie
Code:
dbaccess xyzdb << EOF >> db$abcd.log 2>&1          ------------------- connecting to database
alter table $abcd add ( encrypt char(11) ) ;       ------------------- altering the table to add a new column called encrypt with a datatype char of length 11 
create index idx_neuker on $abcd(insys_serial) ;    ------------------ creating a index named idx_neuker on table on column insys_serial
update statistics high for table $abcd(insys_serial);
create procedure p$abcd() ------- procedure started
returning char(40); 
DEFINE acc_num char(20); ---- defining the different variable with datatypes like char an dinteger with different length as mentioned within ()
DEFINE i integer;
DEFINE sum integer; 
set debug file to 'pev_rech_yyyymmnn.log'; ------ creating the debugg file with a name pev_rech_yyyymmnn.log
trace 'begin update';
let i = 0; ------ initializing the variable to 0
let sum=0;
begin work;  ------ begin here
foreach up_cur with hold for ----- in this loop they are selecting the insys_serial into a variable called acc_num and updating the field encrypt=msisdn
select insys_serial into acc_num from $abcd
update $abcd set encrypt=msisdn where insys_serial=acc_num;
let i=i+1;                   --------------- this is done till it process for 10000 records the commit is done and it will loop back
let sum=sum+1;
if i=10000 then 
trace 'record processed '||sum;
commit work;
let i=0;
begin work;               
end if
end foreach               ------- ending the if and for loop
commit work;
trace 'procedure ok! total processed records are '||sum;
return "procedure complete!";
end procedure;
execute procedure p$abcd();
drop procedure p$abcd ;  -- deleteing the index and procedure here
drop index idx_neuker;
EOF

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Not able to get the required o/p from my script

Hi Experts, I have a script as below : # cat a.sh var=`mysql -usupport -p'testing' -e "select count(1) from db_test.sampletable;"` echo $var the output of this script is : count(1) 145039 Now i want to remove header from my o/p and modify somewhat like 145039 I have... (9 Replies)
Discussion started by: mukulverma2408
9 Replies

2. UNIX for Dummies Questions & Answers

Perl Script:how to find how many parameters are required to run the script

How to find how many parameters are required to run a Perl script? (1 Reply)
Discussion started by: Lakshman_Gupta
1 Replies

3. Shell Programming and Scripting

Script required

Hey All, I am seeking for the script which will do as follows, 1) Login on one Unix server "Server1" 2) Want to access other Unix server "Server2", and want to get the information as, on one go. df -k /tmp df -k / df -k "any file system" 3) Re-direct the output to "space.txt" on... (12 Replies)
Discussion started by: ravinderkodan88
12 Replies

4. Shell Programming and Scripting

script required

This is the input file contents "data",9999,"data",999 "ddd"y"dat","dat","dart" 9999,999,999,"dat" 99,78,"duhu"yes"duhu" I need the output file contents "data",9999,"data",999 "dddydat","dat","dart" 9999,999,999,"dat" 99,78,"duhuyesduhu" Please use code tags when posting data and... (5 Replies)
Discussion started by: polineni
5 Replies

5. Shell Programming and Scripting

Help required to get a script

Hi Experts, I am very beginner in Bash Shell Scripting. Can anyone please guide me to create a script which should show the most busy file systems in sort basis as there are a lot of file systems on the server. I was told this task to be done by my IT lead and I must have to do this in... (3 Replies)
Discussion started by: naw_deepak
3 Replies

6. Shell Programming and Scripting

Getting required fields from a test file in required fromat in unix

My data is something like shown below. date1 date2 aaa bbbb ccccc date3 date4 dddd eeeeeee ffffffffff ggggg hh I want the output like this date1date2 aaa eeeeee I serached in the forum but didn't find the exact matching solution. Please help. (7 Replies)
Discussion started by: rdhanek
7 Replies

7. Shell Programming and Scripting

Script Required

Hello guys, Need a help.I have a flat file. QWER 2:35 7044 00001 ROUT 1188 EA SS ASD 2:36 7044 00010 ROUT BSD 2:37 7044 00011 ROUT END QWER 3:35 7044 00011 ROUT 1088 EA SS ASD 3:36 7044 00010 ROUT BSD 3:37 7044 00011 ROUT END QWER 2:35 7044 00001 ROUT 1188 EA SS ASD ... (1 Reply)
Discussion started by: Satadru
1 Replies

8. Shell Programming and Scripting

Script required

Hi All, I have file nodes.txt that contains node names one by one. I'm running the following command. /opt/OV/bin/ovet_topodump.ovpl -nodeif <nodename> -detail Field <nodename> should take (replace) the node names from the nodes.txt one by one till last node. Pls. give me script for... (1 Reply)
Discussion started by: ntgobinath
1 Replies

9. Shell Programming and Scripting

script required

The line is like this +abc+def+mgh+ddsdsd+sa i.e. words seperated by +. There is a plus in the beginning. i want to conver this line to abc, def, mgh, ddsdsd, sa please provide the logic in the form of a shell script Thanks in advance (13 Replies)
Discussion started by: skyineyes
13 Replies

10. Shell Programming and Scripting

Script help required!

Hi there, i am trying to create a script that checks for the existence of users on the system, if they exist then their details should print on the screen with a message that the id is in use. I am having a bit of trouble with it. Any ideas? Cheers Kev! (8 Replies)
Discussion started by: kev112
8 Replies
Login or Register to Ask a Question