Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-06-2003
Isabel Isabel is offline
Miembro
 
Registrado: jun 2003
Posts: 15
Poder: 0
Isabel Va por buen camino
Question 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
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:23:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi