FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con package dbms_crypto_toolkit
Hola a todos!!!
Quiero insertar valores en una tabla de manera q cuando el valor de uno de los campos sea nulo insertar un valor aleatorio. El código q he implementado en PL/SQL para hacer esto es el sgte: create sequence IdCodeSeq; create or replace function GeneraCodigo return integer as code INTEGER; num INTEGER; seed BINARY_INTEGER; begin SELECT IdCodeSeq.NextVal INTO seed FROM Dual; dbms_random.initialize(seed*1000); code := dbms_random.random; SELECT Count(*) into num FROM Tabla WHERE ID=code; while num=0 LOOP code := dbms_random.random; select count(*) into num from Tabla where ID =code; end loop; dbms_random.terminate; RETURN code; end; / create or replace trigger BITabla before insert on Tabla for each row begin if :new.Id is null then :new.Id := GeneraCodigo; end if; end; / Y el mensaje de error que me aparece es el siguiente: SQL> insert into tabla values(null); insert into tabla values(null) * ERROR en línea 1: ORA-06521: PL/SQL: Error al crear la correspondencia de la función ORA-06512: en "USERP.DBMS_CRYPTO_TOOLKIT", línea 23 ORA-06512: en "USERP.DBMS_CRYPTO_TOOLKIT", línea 962 ORA-06512: en "USERP.DBMS_RANDOM", línea 15 ORA-06512: en "USERP.GENERACODIGO", línea 9 ORA-06512: en "USERP.BITABLA", línea 4 ORA-04088: error durante la ejecución del disparador 'USERP.BITABLA' donde UserP es un usuario con el rol dba asignado y propietario de la tabla en la q quiero hacer la inserción. Qué estoy haciendo mal? Muchas gracias a todos por vuestra ayuda y sugerencias. Hasta pronto, Isabel |
|
|
|