es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de Oracle 10g: Advertencia: Desencadenador creado con errores de compilación.

He creado una base de datos donde quiero incrementar automáticamente la clave primaria. Intenté activarla, pero recibí el error anterior.
Aquí está la descripción de mi tabla:

SQL> desc users
Nombre                  No Nulo    Tipo
----------------------------------------- -------- ----------------------------
USER_ID                          NOT NULL NUMBER(8)
FIRST_NAME                       NOT NULL VARCHAR2(50)
LAST_NAME                        NOT NULL VARCHAR2(50)
CITY                                         VARCHAR2(20)
COUNTRY                                      VARCHAR2(20)
PASSWORD                         NOT NULL VARCHAR2(16)
EMAIL_ID                         NOT NULL VARCHAR2(50)

Cuando intento activarla, obtengo el siguiente error:

CREATE SEQUENCE SYSTEM.MYSEQ
2 INICIO CON 1
3 VALORMÁXIMO 99999999
4 VALORMÍNIMO 1
5 NOCICLO
6 CACHÉ 20
7 NOORDEN;

CREATE OR REPLACE TRIGGER TR_USERS BEFORE INSERT ON USERS PARA CADA FILA
2 BEGIN SELECT LPAD(LTRIM(RTRIM(TO_CHAR(MYSEQ.NEXTVAL))),10,'0') INTO :NEW.USER_ID FROM DUAL;
3 /

Por favor, ayúdame a resolver este error.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error que estás obteniendo no se menciona en tu pregunta. Sin embargo, una posible solución a tu problema podría ser modificar el código del disparador de la siguiente manera:

    CREATE OR REPLACE TRIGGER TR_USERS
    BEFORE INSERT ON USERS
    FOR EACH ROW
    BEGIN
    SELECT MYSEQ.NEXTVAL INTO :NEW.USER_ID FROM DUAL;
    END;

    Este desencadenador asignará automáticamente el siguiente valor de secuencia a la columna USER_ID cada vez que se inserte un nuevo registro en la tabla USERS. Asegúrate de que el nombre de la secuencia sea correcto y que se haya creado antes del disparador. Además, asegúrate de que el disparador se haya creado con la sintaxis y los privilegios correctos.

Comments are closed.