Pongo el codigo...
Código:
El error me da en la select de formas de pago al procedimiento le paso el parametro 1 en forma_pago(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;
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. ;)