Do not use on any
shared computer
May 17, 2008 10:08am pdt
04.30.2008 at 07:31AM PDT, ID: 23365425 | Points: 500
[x]
Attachment Details
#1.How to Pass variables into a atomic script in db2. Something like DEFINE in oracle pl/sql block. And #2 is Is there a way to use INTO clause in select statements in and atomic sqlpl script.
Tags: db2, unix, How to pass variable from shell script into atomic sqlpl in db2.
I have a script file named abcd.pl code like this...

BEGIN ATOMIC
       DECLARE abcd VARCHAR(50);
       SELECT xxxx
           INTO abcd
           FROM <table>;
END;

This is throwing out an error saying that abcd is not a valid after INTO.
Can some one suggest an alternative ?

I have another quick question.....
How can we pass Input variables into a script like above while calling it from a Unix prompt. Like...
$db2 -td@ -f abcd.pl <PARM1> <PARM2> ...etc.
Start your free trial to view this solution
Question Stats
Zone: OS
Question Asked By: boppanak
Question Asked On: 04.30.2008
Participating Experts: 2
Points: 500
Views: 0
Translate:
Loading Advertisement...
04.30.2008 at 07:44AM PDT, ID: 21471157

Rank: Master

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.30.2008 at 08:43AM PDT, ID: 21471801

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.30.2008 at 09:03AM PDT, ID: 21472024

Rank: Master

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.05.2008 at 12:55PM PDT, ID: 21502516

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
04.30.2008 at 07:44AM PDT, ID: 21471157

Rank: Master


If memory serves, you have to put your DECLARE statements before any "functional" statements.

You posted the question in the DB2 topic area in addition to the "AS/400" and Unix topic areas.  Which flavor of DB2 are you running?  On what hardware are you running it?

-- DaveSlash
 
04.30.2008 at 08:43AM PDT, ID: 21471801
when I log into my Unix box and connect to my database ... It says
Database server        =  DB2/AIX64 9.1.3.

Can you please give me an example code. This is not a stored procedure. It has to be a inline sqlpl only.

 
04.30.2008 at 09:03AM PDT, ID: 21472024

Rank: Master


Well, I have no experience with DB2 on Unix, but I know DB2 on AS/400 doesn't allow you to define variables and atomic blocks in scripts. You'd need a stored procedure for that.

HTH,
DaveSlash
 
05.05.2008 at 12:55PM PDT, ID: 21502516

Rank: Wizard

Dave is correct here.

UDB (DB2 for Unix) will not allow you to declare variables at the script level, either.


Regarding your second question:

>I have another quick question.....
>How can we pass Input variables into a script like above while calling it from a Unix prompt. Like...
>$db2 -td@ -f abcd.pl <PARM1> <PARM2> ...etc.

the cleanest solution is to write the script as a shell script, not a SQL statement.  Then call the shell script and let the shell interpreter perform the substitutions.

Your example:

$db2 -td@ -f abcd.sql <PARM1> <PARM2> ...etc.

(Note that I've changed the name to abcd.sql as DB2/UNIX doesn't know what a PL/SQL file is.)

And let's assume that the abcd.sql file contains the query:

SELECT * FROM mytable WHERE City = <PARM1> and state = <PARM2>


The DB2/unix way to do this is a slight rewrite.  Create the file abcd.sh, containing the following:

#  abcd.sh
#  execute the former Oracle query from abcd.pl
#
# Check the first parameter.  If blank, default to "Tampa"
if [ "" = "$1" ]; then
  CITY="Tampa"
else
  CITY="$1"
fi
# Check the second parameter.  If blank, default to "FL"
if [ "" = "$2" ]; then
  STATE="FL"
else
  STATE="$2"
fi
db2 connect to database
db2 "SELECT * FROM mytable WHERE City = '$CITY' and state = upper('$STATE')"
db2 terminate


You would then execute abcd.sh from the command line, passing the desired parameters.

abcd.sh Atlanta Ga
abcd.sh Seattle Wa
etc...


If the query is more complex than you want to put on a single line, it can be written to another file, but parameter substitution may be different.  I'll gladly explain several ways to do that if necessary.


Good Luck,
Kent
 
 
20080206-EE-VQP-25 / EE_QW_2_20070628