Errorcito de declaracion

CREATE PROCEDURE PRODUCTOS_IBM(ACCION CHAR(1),CODIGO INTEGER, DESCRIPCION VARCHAR(40),FECHAI TIMESTAMP,USUARIO INTEGER,ESTATUS CHAR(10),OBSERVACIONES VARCHAR(100))
AS
begin
IF(ACCION = 'I') THEN INSERT INTO PRODUCTOS (PRDDESCRIPCION,PRDFECHAI,PRDUSUARIO,PRDSTATUS,PRDOBSERVACIONES) VALUES (:DESCRIPCION,:FECHAI,:USUARIO,:STATUS,:OBSERVACIONES);
ELSE IF(ACCION = 'B') THEN DELETE FROM PRODUCTOS WHERE PRDCODIGO=:CODIGO;
ELSE IF(ACCION = 'M') THEN UPDATE PRODUCTOS SET PRDCODIGO=:CODIGO,PRDDESCRIPCION=:DESCRIPCION,PRDSTATUS=:ESTATUS,PRDOBSERVACIONES=:OBSERVACIONES WHERE PRDCODIGO=:CODIGO;
END
Que tal:
¿Tengo este código y y me manda un error de "metadata update unsatifacelli" a que se debe?
Gracias

1 Respuesta

Respuesta
1
Prueba esto, lo que he hecho es quitarte los dos puntos y cerrarte el IF a parte de retocar los ELSE.
CREATE OR REPLACE PROCEDURE PRODUCTOS_IBM(ACCION CHAR(1),CODIGO INTEGER, DESCRIPCION VARCHAR(40),
FECHAI TIMESTAMP,USUARIO INTEGER,ESTATUS CHAR(10),OBSERVACIONES VARCHAR(100))
AS
BEGIN
IF(ACCION = 'I') THEN
INSERT INTO PRODUCTOS
(PRDDESCRIPCION,PRDFECHAI,PRDUSUARIO,PRDSTATUS,PRDOBSERVACIONES) VALUES
(DESCRIPCION,FECHAI,USUARIO,STATUS,OBSERVACIONES);
ELSIF(ACCION = 'B') THEN
DELETE FROM PRODUCTOS WHERE PRDCODIGO=CODIGO;
ELSIF(ACCION = 'M') THEN
UPDATE PRODUCTOS SET
PRDCODIGO=CODIGO,
PRDDESCRIPCION=DESCRIPCION,
PRDSTATUS=ESTATUS,
PRDOBSERVACIONES=OBSERVACIONES
WHERE PRDCODIGO=CODIGO;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQLCODE)||' - '||SQLERRM);
END PRODUCTOS_IBM;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas