Naja, eine Prozedur, die ein externes Programm aufruft, muss auch entsprechend definiert werden.
D.h., beim CREATE PROCEDURE wird der Name des aufzurufenden Programmes sowie Übergabeparameter mitgegeben.
Der Aufruf erfordert dann nur noch den Prozedurnamen und die Parameter.
Das Gleiche gilt auch fur CREATE FUNCTION, nur dass diese einen Returnwert hat.
Beispiel eier CREATE FUNCTION:
Beispiel des zugehörigen ILERPG's:Code:CREATE FUNCTION USMOD_16/DATESERIAL (YEAR INTEGER, MONTH INTEGER, DAY INTEGER) RETURNS DATE LANGUAGE RPGLE EXTERNAL NAME 'USMOD_16/DATSER' DETERMINISTIC RETURNS NULL ON NULL INPUT NO SQL NO EXTERNAL ACTION PARAMETER STYLE SQL ALLOW PARALLEL NOT FENCED
Weiteres findest du im SQL-ReferenzhandbuchCode:hactgrp(*caller) dftactgrp(*no) datfmt(*iso) d SYear s 10I 0 d SMonth s 10I 0 d SDay s 10I 0 d SQLDate s d d SYear_Ind s 5I 0 d SMonth_Ind s 5I 0 d SDay_Ind s 5I 0 d SQLDate_Ind s 5I 0 d SQLState s 5 d FuncName s 139 varying d SpecName s 128 varying d DiagMsg s 70 varying c *entry plist c parm SYear c parm SMonth c parm SDay c parm SQLDate c parm SYear_Ind c parm SMonth_Ind c parm SDay_Ind c parm SQLDate_Ind c parm SQLState c parm FuncName c parm SpecName c parm DiagMsg c* c/free if SYear_ind <> *zero or SMonth_ind <> *zero or SDay_ind <> *zero; SQLDate_ind = -1; // Ergebnis ist NULL else; monitor; SQLDate = %date('0001-01-01') + %Years(SYear-1) + %Months(SMonth-1) + %Days(SDay-1); on-error *all; SQLDate_ind = -1; // Ergebnis ist NULL endmon; endif; /end-free c* c* c return
http://publib.boulder.ibm.com/infoce...e/launcher.htm
Suche dort nach SQL.
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks