Es scheint tatsächlich zu gehen, wenn man in der stored Procedure die Parameter als clob deklariert und im RPG-Programm einen varchar-Parameter mit passender Länge deklariert.
Ich habe etwas getestet und keine Probleme festgestellt.
Hier mein funktionierendes Beispiel:
-- Stored Procedure:
Code:
create or replace procedure scr/prcA (
in text1 clob(1M),
out text2 clob(1M) )
Language RPGLE
Not Deterministic
modifies sql data
called on null input
Parameter Style general
external name 'SCR/A';
-- SQL Funktion:
Code:
create or replace function scr/fktA(
text1 clob(1M)
)
returns clob(1M)
language sql
modifies sql data
not deterministic
begin
declare text2 clob(1M);
set text2 = '';
CALL scr.prcA(text1, text2);
return text2;
end;
//RPG:
Code:
**free
//==================================================================================
//Main:
//==================================================================================
dcl-pi *n;
clob1 varchar(1000000) const;
clob2 varchar(1000000);
end-pi;
clob2 = 'hallo ' + clob1 + ' ende';
*inlr = *on;
return;
Beispielaufruf:
select scr.fktA('Test') from sysdummy1;
=> Ergebnis: hallo Test ende
Bookmarks