Hi, Michael:

You are correct that the _definition_ of SQL functions and procedures resides in QSYS2/SYSROUTINE.

Run this SQL query:

select * from QSYS2/SYSROUTINE

and take a look at the contents of the column EXTERNAL_NAME. This identifies the object (*PGM or *SRVPGM) that _implements_ the function or procedure.

The actual code that implements such a function or procedure must necessarily reside in a *PGM or *SRVPGM.

DB2/400 is unique among IBM's DB2 implementations in that you do not necessarily have to define a *PGM to use it as a "stored procedure" -- any *PGM can be CALLed via the SQL CALL interface. But, if you want to define it as a FUNCTION, or define the parameter style, etc., then you need to define it via the SQL CREATE PROCEDURE or CREATE FUNCTION statement.

Hope that helps,

Mark S. Waterbury

> On 9/14/2012 9:58 AM, Michael Naughton wrote:
Is it? I thought a function was just a record in QSYS2/SYSROUTINE (?)

Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx> writes:
On the IBM i a function is an object.

Mike Naughton
Senior Programmer/Analyst
Judd Wire, Inc.
124 Turnpike Road
Turners Falls, MA 01376
Internal: x 444
NOTICE: This e-mail and any files transmitted with it are confidential and solely for the use of the intended recipient. If you are not the intended recipient or the person responsible for delivering to the intended recipient, be advised that any use is
strictly prohibited. If you have received this e-mail in error, please notify us immediately by replying to it and then delete it from your computer.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2017 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact [javascript protected email address].