como trabajar con NULL en oracle
Publicado por pepe (2 intervenciones) el 22/05/2007 15:40:27
Me he creado un disparador y una parte del código es la siguiente:
IF INSERTING THEN
--Comprobamos que el campo tarjeta no es nulo
IF :new.TARJETA IS NOT NULL THEN
insertar4 := 'INSERT INTO COMPRAS_BKP VALUES('||:new.NFAC||','||chr(39)||:new.FECHA||chr(39)||','||:new.IMPORTE_T||','||:new.CLIENTE||','||chr(39)||:new.TIENDA||chr(39)||','||:new.TARJETA||','||chr(39)||'INSER'||chr(39)||',seq_backup.nextval)';
ELSE
insertar4 := 'INSERT INTO COMPRAS_BKP VALUES('||:new.NFAC||','||chr(39)||:new.FECHA||chr(39)||','||:new.IMPORTE_T||','||:new.CLIENTE||','||chr(39)||:new.TIENDA||chr(39)||','||chr(39)||'NULL'||chr(39)||','||chr(39)||'INSER'||chr(39)||',seq_backup.nextval)';
END IF;
EXECUTE IMMEDIATE insertar4;
Mi problema viene cuando intento hago una inserccion en la tabla a la cual he asiciado el disparador y pongo en su campo TARJETA el valor NULL da un error de número no valido, sin embargo si meto cualquie numero si funciona.
Para intentar solucionar esto, me he creado un IF preguntandome si el valor de la tarjeta es nulo(como se puede ver en el codigo), pero sigue sin funcionarme.
Me gustaria alguna informacion de como me puedo preguntar si el campo es nulo.
Muchas gracias
IF INSERTING THEN
--Comprobamos que el campo tarjeta no es nulo
IF :new.TARJETA IS NOT NULL THEN
insertar4 := 'INSERT INTO COMPRAS_BKP VALUES('||:new.NFAC||','||chr(39)||:new.FECHA||chr(39)||','||:new.IMPORTE_T||','||:new.CLIENTE||','||chr(39)||:new.TIENDA||chr(39)||','||:new.TARJETA||','||chr(39)||'INSER'||chr(39)||',seq_backup.nextval)';
ELSE
insertar4 := 'INSERT INTO COMPRAS_BKP VALUES('||:new.NFAC||','||chr(39)||:new.FECHA||chr(39)||','||:new.IMPORTE_T||','||:new.CLIENTE||','||chr(39)||:new.TIENDA||chr(39)||','||chr(39)||'NULL'||chr(39)||','||chr(39)||'INSER'||chr(39)||',seq_backup.nextval)';
END IF;
EXECUTE IMMEDIATE insertar4;
Mi problema viene cuando intento hago una inserccion en la tabla a la cual he asiciado el disparador y pongo en su campo TARJETA el valor NULL da un error de número no valido, sin embargo si meto cualquie numero si funciona.
Para intentar solucionar esto, me he creado un IF preguntandome si el valor de la tarjeta es nulo(como se puede ver en el codigo), pero sigue sin funcionarme.
Me gustaria alguna informacion de como me puedo preguntar si el campo es nulo.
Muchas gracias
Valora esta pregunta


0