Oracle - como trabajar con NULL en oracle

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como trabajar con NULL en oracle

Publicado por mad (88 intervenciones) el 22/05/2007 16:05:40
Creo que lo puedes solucionar preguntado por '' en lugar de nulo.
Aunque parezca lo mismo, no lo es. Pruebalo y ya nos comentaras si funciona.

Espero te sirva
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar