Hallo zusammen,
ich habe mich ein wenig mit ChatGpt unterhalten und ChatGpt behauptet, dass ich eine SQL UDF schreiben kann, die ein RPGLE-Serviceprogramm benutzt, das In/Out Parameter hat. Es hat beim Codieren bisher nicht geklappt. Aber mal die Frage: Kann das gehen?
Konkret: Mein Serviceprogramm hat folgende Parameterschnittstelle:
Der letzte Parameter ist optional, den will ich in der UDF gar nicht ansprechen. Aber der vorletzte Parameter "r#httpStatusCode" ist nicht als const definiert. Kann ich das Serviceprogramm trotzdem in der UDF benutzen?Code:dcl-proc DAX99##_checkAuthorization export; dcl-pi *n varchar(10000); i#token varchar(10000) const; i#_clientId varchar(50) const; i#_role varchar(100) const; i#pgmName char(10) const; i#procName varchar(60) const; i#dl_rec packed(15) const; r#httpStatusCode int(10); r#username varchar(100) options(*nopass); end-pi;
Hier die UDF:
Code:create or replace function edpgmlib/DAX99##_checkAuthorizationUdf ( i#_token varchar(10000), i#_clientId varchar(50), i#_role varchar(100), i#_pgmName char(10), i#_procName varchar(60), i#_dl_rec dec(15), inout i#_httpStatusCode integer ) returns nvarchar(10000) specific edpgmlib/DAX99##_checkAuthorizationUdf language rpgle not deterministic modifies sql data called on null input disallow parallel EXTERNAL NAME 'EDPGMLIB/DAX99##01(DAX99##_CHECKAUTHORIZATION)' parameter style general;
Das SQL lässt sich nicht ausführen, solange ich das Schlüsselwort inout vor dem Parameter " i#_httpStatusCode" stehen habe. Wenn ich inout wegnehme, lässt es sich ausführen. Aber wohin würde das RPG-Programm denn seinen geänderten Parameter hinschreiben, wenn ich ein Literal übergebe?
LG,
Dieter
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks