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
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.
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.