Buenos dias, tengo la siguiente duda y no se porque me sale el error -1422 al hacer un select... into variable....
Pongo el codigo...
Código:
(CODIGO VARCHAR2,RAZON_SOCIAL VARCHAR2,TLF VARCHAR2,DIRECCION VARCHAR2,ALB_FACT VARCHAR2,COD_POS VARCHAR2, COD_IVA VARCHAR2, FORMA_PAGO VARCHAR2)
AS
NONULO EXCEPTION;
SINO EXCEPTION;
TABLA VARCHAR2(20);
FORMA FORMAS_PAGO.CODIGO%TYPE;
IVA IVAS.COD_IVA%TYPE;
CONTROL NUMBER;
BEGIN
IF CODIGO IS NULL THEN
TABLA:='CODIGO';
RAISE NONULO;
ELSIF RAZON_SOCIAL IS NULL THEN
TABLA:='RAZON SOCIAL';
RAISE NONULO;
ELSIF DIRECCION IS NULL THEN
TABLA:='DIRECCION';
RAISE NONULO;
ELSIF COD_IVA IS NULL THEN
TABLA:='IVA';
RAISE NONULO;
ELSIF ALB_FACT IS NULL THEN
TABLA:='ALBARAN FACTURA';
RAISE NONULO;
ELSIF FORMA_PAGO IS NULL THEN
TABLA:='FORMA DE PAGO';
RAISE NONULO;
END IF;
IF ALB_FACT!='S' AND ALB_FACT!='N' THEN
RAISE SINO;
END IF;
CONTROL:=0;
SELECT CODIGO INTO FORMA
FROM FORMAS_PAGO
WHERE CODIGO=FORMA_PAGO;
CONTROL:=1;
SELECT COD_IVA INTO IVA
FROM IVAS
WHERE COD_IVA=COD_IVA;
EXCEPTION
WHEN NONULO THEN
RAISE_APPLICATION_ERROR(-20001,'EL CAMPO '||TABLA||' ESTA VACIO');
WHEN SINO THEN
RAISE_APPLICATION_ERROR(-20001,'EL ALBARAN FACTURA DEBER SER S O N');
WHEN NO_DATA_FOUND THEN
IF CONTROL=0 THEN
RAISE_APPLICATION_ERROR(-20001,'LA FORMA DE PAGO NO EXISTE');
ELSE
RAISE_APPLICATION_ERROR(-20001,'EL IVA NO EXISTE');
END IF;
WHEN DUP_VAL_ON_INDEX THEN
RAISE_APPLICATION_ERROR(-20001,'EL CODIGO INTRODUCIDO YA EXISTE');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20002,SQLCODE||'--->'||SQLERRM);
END INSERTARPROVEEDOR;
El error me da en la select de formas de pago al procedimiento le paso el parametro 1 en forma_pago
ejemplo: EXECUTE INSERTARPROVEEDOR(1,'AAS',NULL,'ASADA','S',NULL,'A S',1);
me sale el error -1422 me ha dejado un poco anonadado ya que el campo codigo de formas_pago es primary key..
Un saludo y gracias de antemano. ;)