Soit:
Oracle 10.2g est la base de données
J'ai une table appelée emp.
emp a une colonne VARCHAR2 appelée SECRET. SECRET peut contenir une chaîne en clair, ou il peut contenir une chaîne cryptée, mais je peux distinguer l'un de l'autre
Une fonction appelée DECRYPT existe déjà qui, étant donné la chaîne cryptée, retournera une chaîne non cryptée.Modification d'un curseur Oracle Ref
Comment écrire une fonction qui retournera un ref_cursor qui contient toujours une chaîne non cryptée dans la colonne SECRET?
Ce que je cherche en est pseudocode:
use a cursor to get all the rows of emp
for each row in emp
see if SECRET is encrypted
if yes, decrypt and store the unencrypted value back into SECRET
if no, leave the row untouched
return the cursor as a ref_cursor
Essentiellement ce que je veux faire est de modifier un refcursor avant qu'il ne soit retourné. Cependant, je ne pense pas que ce soit possible.
Ma première pensée a été de construire un tableau associatif de curseur% ROWTYPE. C'est très bien. Je peux le faire. Cependant, je ne peux pas trouver un moyen de retourner un tableau associatif en tant que refcursor.
Des idées sur une stratégie?
Si la colonne 'SECRET' peut contenir du texte en clair ou des données cryptées, pourquoi la fonction DECRYPT ne contient-elle pas la logique de ne pas tenter le décryptage si la valeur fournie n'est pas cryptée? –