Hallo zusammen,

ich verschlüssel zwei Felder einer Datei mit
set encryption password = password;


Im Anschluss schreibe ich sie mit encrypt weg.
Damit ich sie immer enspannt lesen kann, ohne ständig zu casten und zu decrypten,
habe ich dafür eine View erstellt.
Soweit funktioniert es.

Jetzt habe ich ein Programm zum Setzen des Passworts erstellt.
Mit actgrp(*caller) kann ich jetzt innerhalb dieses Programmes den Befehl zum
PW setzen absetzen und im Hauptprogramm die VIEW lesen.

Das Ganze hätte ich gern auch für strsql bzw andere SQL Editoren,
also schrieb ich ne Procedure die das RPG-Programm zum setzen des Passworts
aufruft, damit der User das Passwort nicht selbst kennen muss.
Leider funktioniert es so aber nicht. Das Passwort wird gesetzt,
die "SQL-Session" registriert dies aber nicht und ich erhalte:
SQL Errorcode: -20143
Eine Verschlüsselungs- oder Entschlüsselungsfunktion ist fehlgeschlagen, da für das Verschlüsselungskennwort kein Wert festgelegt war.
Fehlerbeseitigung: Mit der Anweisung SET ENCRYPTION PASSWORD das Kennwort für die Verschlüsselungs- und Entschlüsselungsfunktionen festlegen.
Das Kennwort kann auch als Argument für die Verschlüsselungs- und Entschlüsselungsfunktionen angegeben werden.
In den RPG Programmen selbst habe ich auf *caller geachtet und auf der IBM Seite
stand, dass sql procedures immer *caller sind.

Kann mir jemand weiterhelfen?

edit:
einfacher beschrieben:

call PWDSP(current user) --> ruft RPG-Programm welches set encryption password = password;
ausführt.
select decrypt_char(meinfeld) from test ---> erkennt nicht, dass das pw gesetzt wurde

Meine SQL procedure:
create or replace procedure PWDSP
(in meininput char(10))
language rpgle
not deterministic
external name PWDSP