Ah - yes - BASE64_DECODE returns a blob without CCSID (or better with *HEX).

I solved this lately with a DS:

dcl-ds decoded qualified;
blob varchar(1000);
utf8 varchar(1000) ccsid(*utf8) samepos(blob);
end-ds;

exec sql set :decoded.blob = QSYS2.BASE64_DECODE(:encoded);
return decoded.utf8;

I think this works quite OK - you could of course do this also with some pointer-arithmetic.

HTH
Daniel


Am 01.04.2026 um 19:53 schrieb Justin Taylor <jtaylor.0ab@xxxxxxxxx>:

If I specify the CCSID on retDecoded, I get SQLSTATE 42806 "Variable
RETDECODED not compatible or value too long.".


Example:
Dcl-s retDecoded varChar(1000) ccsid(*UTF8) ;



On Wed, Apr 1, 2026 at 12:32 PM cesco via RPG400-L <
rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:

You need to know what encoding the encoded in base64 was originally in.
then try to declare retDecoded with that CCSID





--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2026 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 on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.