Je connais rien à la crypto mais plusieurs remarques :
1) quelle est la version de ta base Oracle?
2) DBMS_CRYPTO.ENCRYPT a 5 paramètres dans la 12, dont un seul optionnel. Toi tu n'utilises que trois paramètres... Il faut faire une gestion des EXCEPTIONs dans ton programme PL/SQL car je pense qu'il y a peut-être une erreur qui n'est pas interceptée par Oracle (même si cela serait étonnant)
Extrait de la doc :
1 2 3 4 5 6 7 8 9 10 11 12 13
| DBMS_CRYPTO.ENCRYPT(
dst IN OUT NOCOPY BLOB,
src IN BLOB,
typ IN PLS_INTEGER,
key IN RAW,
iv IN RAW DEFAULT NULL);
DBMS_CRYPTO.ENCRYPT(
dst IN OUT NOCOPY BLOB,
src IN CLOB CHARACTER SET ANY_CS,
typ IN PLS_INTEGER,
key IN RAW,
iv IN RAW DEFAULT NULL); |
3) C'est quoi 'BP7IGE8559Z43'? Tu as réussi l'exploit d'être le seul lien sous Google quand on fait une recherche sur ce mot... Idem pour 'GO8ISO8859P15'.
Le deuxième paramètre de UTL_I18N.STRING_TO_RAW est
dst_charset : "Specifies the destination character set. If dst_charset is NULL, then the database character set is used for CHAR data and the national character set is used for NCHAR data".
Je pense qu'il faut que tu revois les appels aux procédures PL/SQL, et notamment la valeur des paramètres, car ton ou tes erreurs peuvent venir de là.
Un lien en français qui pourrait t'aider : http://droe-dba.over-blog.fr/article...-42771236.html
Partager