fhg
Volume 8, Number 21 -- June 4, 2008

Use Parameter Markers in SQL Persistent Stored Modules

Published: June 4, 2008

Hey Mike:

I have read your articles about SQL stored procedures with great interest. A year ago I tried to use parameter markers in dynamic SQL stored procedures but couldn't succeed. I ended up writing stored procedures in COBOL. Could you please provide an example of dynamic SQL stored procedures using parameter markers?

--Venkat


Parameter markers in SQL Persistent Stored Modules are very easy to implement. If you're using embedded SQL in COBOL to prepare dynamic SQL statements, you're probably already 99 percent there.

Below is an example of an SQL stored procedure that uses dynamic SQL to create a cursor and return a result set to the caller. The example is simple but you can extend the concept to work with all preparable SQL statements that can use parameter markers.

Create Procedure DynamicTest()
Language SQL
Result Sets 1
Set Option Commit=*None, UsrPrf=*Owner,
           DynUsrPrf=*Owner, DatFmt=*ISO
Begin

Declare @CusNum Numeric(6,0) Not Null Default 938472;
Declare @SQL    VarChar(2048) Not Null Default '';
Declare QueryCursor Cursor For PrepQuery;
Set @SQL='Select * From QIWS/QCUSTCDT Where CusNum=?';

Prepare PrepQuery From @SQL;
Open QueryCursor Using @CusNum;
End

Here is a little run down of the code. The following string variable holds a dynamic SQL query. In a dynamic SQL statement, a parameter marker is indicated with the question mark symbol.

Set @SQL='Select * From QIWS/QCUSTCDT Where CusNum=?';

A query is converted from character format into an executable form by using the Prepare statement:

Prepare PrepQuery From @SQL;

A cursor is declared based on the prepared statement:

Declare QueryCursor Cursor For PrepQuery;

Note that when writing SQL routines, the Declare Cursor statement has to be placed in the declaration section of the code block. In other words, along with the other Declare statements, it must come before the first executable line of code in the current code block. Each code block is enclosed within a BEGIN and END.

Finally, when the cursor is opened all variables for the parameter markers must be supplied in the Using clause of the Open statement:

Open QueryCursor Using @CusNum;

Prior to V5R3, the data type of the host variable needed to be compatible with the data type of the parameter marker in the prepared statement because V5R3, DB2 will attempt to convert the value to match the data type required by the statement. This means that @CusNum could be a CHAR(6) variable instead of numeric (i.e., zoned decimal) variable. As long as the variable contains data that can be converted to numeric the statement will succeed.

When the cursor is left open, the caller will be able to retrieve the query results. Optionally, when working with multiple result sets, the SET RESULT SETS statement can be used to control the order that the result sets are returned to the caller.

And that is all there is to executing a parameterized dynamic SQL statement within an SQL stored procedure. Be careful about using parameter markers with dynamic SQL, as the extra overhead of processing the parameter may not be worth the performance hit. Generally parameter markers are only beneficial in cases when the same SQL statement will be executed over again with the same execution plan being utilized by the query engine.


Michael Sansoterra is a programmer/analyst for i3 Business Solutions, an IT services firm based in Grand Rapids, Michigan. Visit the IT Jungle Contact page to email Michael Sansoterra.


RELATED STORIES

Using Parameter Markers with SQL Functions

SQL Goodies in DB2 for i5/OS V5R4, Part 2



                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
PROFOUND LOGIC SOFTWARE

Need Results Fast?
Web-enable with Genie!

                                                          · Easy Installation
                                                          · Codeless Customizations
                                                          · Instant Results

With Genie on your side, you can be
modernized in less than a day. Simply
install, customize, and deploy.

See the magic of Genie today.

Download a FREE 30-day trial at
www.profoundlogic.com


Senior Technical Editor: Ted Holt
Technical Editor: Joe Hertvik
Contributing Technical Editors: Edwin Earley, Brian Kelly, Michael Sansoterra
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

MoshiMoshi:  An Interactive Experience for the System i Community. Watch now!
COMMON:  Join us at the Focus 2008 workshop conference, October 5 - 8, in San Francisco, California
Vision Solutions:  System i Management Tips Blog - Free i5/OS Tips Each Week!


 

IT Jungle Store Top Book Picks

Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
Getting Started with PHP for i5/OS: List Price, $59.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket Developers' Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
iSeries Express Web Implementer's Guide: List Price, $59.00
Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
WebFacing Application Design and Development Guide: List Price, $55.00
Can the AS/400 Survive IBM?: List Price, $49.00
The All-Everything Machine: List Price, $29.95
Chip Wars: List Price, $29.95


 
The Four Hundred
More Power Transitions Are on the Way

U.S. Drags Down Server Sales in Q1, But Weak Dollar Helps

Server Branding 101: Big Name, Big Game?

Java Compute Appliances Upgraded by Azul Systems

Survival of the Fittest: Ensuring IT Is Providing You with an Innovative Edge

The Linux Beacon
Novell Swings to a Tiny Profit on a Tiny Revenue Bump in Q2

U.S. Drags Down Server Sales in Q1, But Weak Dollar Helps

Intel and Itanium Partners Gear Up for Quad-Core Tukwilas

Java Compute Appliances Upgraded by Azul Systems

Server Branding 101: Big Name, Big Game?

Four Hundred Stuff
Data Quality Tool from AMB Now Supports i and z/OS Platforms

Magic Targets Rich Internet Apps, SaaS with G5

DB Technology Cuts the Paper Chase for AS/400 Shops

NGS Launches SaaS Initiative to Deliver BI as a Service

IBM Updates Secure Perspective Tool

Big Iron
U.S. Drags Down Server Sales in Q1, But Weak Dollar Helps

Top Mainframe Stories From Around the Web

Chats, Webinars, Seminars, Shows, and Other Happenings

System i PTF Guide
May 31, 2008: Volume 10, Number 22

May 24, 2008: Volume 10, Number 21

May 17, 2008: Volume 10, Number 20

May 10, 2008: Volume 10, Number 19

May 3, 2008: Volume 10, Number 18

April 26, 2008: Volume 10, Number 17

The Windows Observer
Microsoft Reverses Course, Opens Office to ODF

Intel and Itanium Partners Gear Up for Quad-Core Tukwilas

Hyper-V RC1 Released as Microsoft Shares Performance Data

Paglo Aims to be the Google of IT Management

The Server Biz Enjoys the X64 Upgrade Cycle in Q1

The Unix Guardian
The Unix Competition Is Still as Heated as Ever

The Server Biz Enjoys the X64 Upgrade Cycle in Q1

Intel and Itanium Partners Gear Up for Quad-Core Tukwilas

As I See It: The Programmer as Artist

Reseller Mainline to Acquire Competitor Cornerstone

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

THIS ISSUE SPONSORED BY:

WorksRight Software
Profound Logic Software
COMMON


Printer Friendly Version


TABLE OF CONTENTS
Exploring the DB2 for i5/OS Extensions to the PHP Language

Use Parameter Markers in SQL Persistent Stored Modules

Admin Alert: Quick Audits for i5/OS Backups

Four Hundred Guru

BACK ISSUES

From the IT Jungle Forums
Capture Sort File and Copy to Database File

SNMP Traps on i5OS

Java Messages

Copying recs from a subfile to a file and keeping highlights

Imbedded SQL

CPYFRMSTMF problem





 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement