Sponsored Content
Top Forums Shell Programming and Scripting Unix Korn Shell script on Solaris to DB2 UDB LUW database Post 302421328 by bakunin on Friday 14th of May 2010 05:52:58 AM
Old 05-14-2010
If you ask questions it is always a good idea to provide some sample data as example for what you have and what you want to achieve. Otherwise it is difficult to suggest.

If i get you correctly you have a file (?) with five parameters stated in it (?) and your script is called, has to open the file and retrieve the parameters from it, yes?

Ok, i don't know your file format, but let's suppose its name is "/path/to/param.file" and it looks like that:

Code:
param1="some-value-1"
param2="some-value-2"
param3="some-value-3"
param4="some-value-4"
param5="some-value-5"

Further i suppose that the five parameters are fixed and you know in advance which parameters to expect (the values could differ, but the parameters names do not). Your script could look like this:

Code:
#! /bin/ksh

# .... set some environment first, whatever is needed here ....

typeset  fParam="/path/to/param.file"
typeset  chLineBuffer=""

typeset  achParm[1]=""
typeset  achParm[2]=""
typeset  achParm[3]=""
typeset  achParm[4]=""
typeset  achParm[5]=""

typeset -i iCnt=0
typeset -i lError=0

# read the file (cat), strip all empty lines and comments (sed) and feed the rest to
# the while-loop. There the "case..esac" decides which parameter it is and
# stores it to the appropriate variable. If the parameter is not known an error
# is issued and the script terminates with errorlevel 1.

cat "$fParam" |\
sed 's/^[<spc><tab>]*$//; s/#.*$//' |\
while read chLineBuffer ; do
     case "${chLineBuffer%%=*}" in
          param1)
               achParm[1]="${chLineBuffer##*=}
               ;;

          param2)
               achParm[2]="${chLineBuffer##*=}
               ;;

          param3)
               achParm[3]="${chLineBuffer##*=}
               ;;

          param4)
               achParm[4]="${chLineBuffer##*=}
               ;;

          param5)
               achParm[5]="${chLineBuffer##*=}
               ;;

          *)
               print - "ERROR: unknown parameter $chLineBuffer"
               exit 1
               ;;
     esac
done

# The following part is only necessary if you need to make sure that all five
# parameters are passed. If it is legal to have one or more ommitted you do
# not need this.

iCnt=1
lError=0
while [ $iCnt -le 5 ] ; do
     if [ -z "${achParm[$iCnt]}" ] ; then
          print - "ERROR: no Value for achParm[$iCnt]"
          lError=1
     fi
done
if [ $lError -gt 0 ] ; then
     exit 2
fi

# Put the part which works with the gotten parameters here, for example:

some-command -a "${achParm[1]}" -b "${achParm[2]}" -c "${achParm[3]}"

exit $?

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Connect to sybase database using Korn shell script

Hi, Can anyone please give me a script or let me know how to connect to a sybase database and execute a query using Korn shell scripts.Am new to Unix but i need to do this ASAP. Please help. Thanks, Gops (7 Replies)
Discussion started by: bhgopi
7 Replies

2. Shell Programming and Scripting

How to connect to database db2 through Unix Shell Script

I am trying to connect to database db2 through shell script. The process I am trying is > db2 It gives me error Access Denied. While checking for access I have the rights. Is there ant other way round..? Please help. (3 Replies)
Discussion started by: ankitgupta
3 Replies

3. Shell Programming and Scripting

Connecting and Querying DB2 database from Unix Script?

I am trying to develop a script that can connect to a DB2 database mainframe and Query the database and display the results. I've been researching, but I have yet to find a definitive solution where I can enter in the Mainframe DB2 address db2:// and query the database and return the results. If... (2 Replies)
Discussion started by: developncode
2 Replies

4. AIX

IBM DB2 UDB to SQL Server 2005 Porting

Hi All, Am porting my application from AIX to Windows. As a part of this I need to port the Database in IBM DB2 UDB to SQL Server 2005. Is there any Guide/Doc/Article available on this? How to convert the stored procedures and physical data from DB2 to SQL Server 2005? Thanks in Advance (0 Replies)
Discussion started by: mvictorvijayan
0 Replies

5. AIX

Ibm db2 udb

Am trying to export the content of Stored Procedure to a file using GET ROUTINE command. After executing the command first few lines of the file contains ASCII characters though i have original text following that. Any help is appreciated. (0 Replies)
Discussion started by: mvictorvijayan
0 Replies

6. Programming

Acceessing DB2 UDB in AIX COBOL on unix

Hi , We are migrating our database from DB2 z/os to DB2 UDB on UNIX. and cobol on mainframes to AIX cobol on UNIX. We have some cobol Db2 programs that are accessing different Databases how do we code such type of programs in AIX cobol. Do we need to Establish connection for accessing... (0 Replies)
Discussion started by: nal.satish
0 Replies

7. Shell Programming and Scripting

How to pass a variable as a parameter to DB2 database from shell script

I need to pass a variable as a parameter from shell script into a DB2 database. var=bhuk_1123_Q_11/22/09 select * from tbl1 where serial_id='$var'; I have tried executing it using db2 -tvf scriptname Somebody please help me out with this. It is throwing an error. Please tell me how... (2 Replies)
Discussion started by: ss3944
2 Replies

8. Shell Programming and Scripting

Connect status of db2 in Unix shell script

Hi I am trying to connect to db2 database from Unix shell script (k shell) I need to catch the status of connect whether it is succesful or not. ---------------------------------------------------------- # Read login credentials for db2 tput clear echo "Please enter your Userid:\c"... (3 Replies)
Discussion started by: mKarri
3 Replies

9. Shell Programming and Scripting

how do i execute nohup and background job inside the korn script for db2

load_cursor_stmt() { ls /db/admin/ddl/rmn01000/load_cursor*.sql|while read file do echo "${file}" `nohup db2 -tvf "$file" \&` done }Error: ------- /admin/ddl/rmn01000/load_cursor5.sql /db/admin/ddl/rmn01000/load_cursor6.sql + read file + echo... (3 Replies)
Discussion started by: Hangman2
3 Replies

10. UNIX and Linux Applications

[Solved] How to connect DB2 from UNIX shell script?

Hi all, I have a requirement to connect DB2 database and do some operations and generate a report through shell script. Can anyone please tell me how can i connect DB2 from unix shell script? Thanks in ADV. (2 Replies)
Discussion started by: gani_85
2 Replies
typeset(1)                                                         User Commands                                                        typeset(1)

NAME
typeset, whence - shell built-in functions to set/get attributes and values for shell variables and functions SYNOPSIS
typeset [ +- HLRZfilrtux [n]] [ name [ = value]]... whence [-pv] name... DESCRIPTION
typeset sets attributes and values for shell variables and functions. When typeset is invoked inside a function, a new instance of the variables name is created. The variables value and type are restored when the function completes. The following list of attributes may be specified: -H This flag provides UNIX to host-name file mapping on non-UNIX machines. -L Left justify and remove leading blanks from value. If n is non-zero it defines the width of the field; otherwise, it is determined by the width of the value of first assignment. When the variable is assigned to, it is filled on the right with blanks or trun- cated, if necessary, to fit into the field. Leading zeros are removed if the -Z flag is also set. The -R flag is turned off. -R Right justify and fill with leading blanks. If n is non-zero it defines the width of the field, otherwise it is determined by the width of the value of first assignment. The field is left filled with blanks or truncated from the end if the variable is reas- signed. The -L flag is turned off. -Z Right justify and fill with leading zeros if the first non-blank character is a digit and the -L flag has not been set. If n is non-zero it defines the width of the field; otherwise, it is determined by the width of the value of first assignment. -f The names refer to function names rather than variable names. No assignments can be made and the only other valid flags are -t, -u and -x. The flag -t turns on execution tracing for this function. The flag -u causes this function to be marked undefined. The FPATH variable will be searched to find the function definition when the function is referenced. The flag -x allows the func- tion definition to remain in effect across shell procedures invoked by name. -i Parameter is an integer. This makes arithmetic faster. If n is non-zero it defines the output arithmetic base; otherwise, the first assignment determines the output base. -l All upper-case characters are converted to lower-case. The upper-case flag, -u is turned off. -r The given names are marked readonly and these names cannot be changed by subsequent assignment. -t Tags the variables. Tags are user definable and have no special meaning to the shell. -u All lower-case characters are converted to upper-case characters. The lower-case flag, -l is turned off. -x The given names are marked for automatic export to the environment of subsequently-executed commands. The -i attribute can not be specified along with -R, -L, -Z, or -f. Using + rather than - causes these flags to be turned off. If no name arguments are given but flags are specified, a list of names (and optionally the values) of the variables which have these flags set is printed. (Using + rather than - keeps the values from being printed.) If no names and flags are given, the names and attributes of all variables are printed. For each name, whence indicates how it would be interpreted if used as a command name. The -v flag produces a more verbose report. The -p flag does a path search for name even if name is an alias, a function, or a reserved word. On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways: 1. Variable assignment lists preceding the command remain in effect when the command completes. 2. I/O redirections are processed after variable assignments. 3. Errors cause a script that contains them to abort. 4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari- able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not performed. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
ksh(1), set(1), sh(1), attributes(5) SunOS 5.10 1 Feb 1995 typeset(1)
All times are GMT -4. The time now is 07:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy