Problems for invoking/inserting data with Procedure

Asked

Viewed 319 times

0

I created this project in Oracle, but I’m not able to insert data with the EXEC.

Way I’m declaring the EXEC:

EXECUTE SP_PRODUTO(8,'teste' 1);

erro APRESENTADO:
ORA-06550: linha 1, coluna 126:
PLS-00306: número incorreto de tipos de argumentos na chamada para 'SP_PRODUTO'
ORA-06550: linha 1, coluna 126:
PL/SQL: Statement ignored



CREATE OR REPLACE PROCEDURE SP_PRODUTO(
vIDPRODUTO  NUMBER,
vDESCRICAO VARCHAR2,
vQUANTIDADE NUMBER,
vOPR CHAR)
IS vEXCEPTION EXCEPTION;
BEGIN
    IF(vOPR = 'I')THEN --ação de inserir
        INSERT INTO PRODUTO(IDPRODUTO, DESCRICAO, QUANTIDADE) VALUES(vIDPRODUTO, vDESCRICAO, vQUANTIDADE);
    ELSE
    IF(vOPR = 'A')THEN --ação de alterar
        UPDATE PRODUTO SET DESCRICAO = vDESCRICAO, QUANTIDADE = vQUANTIDADE, IDPRODUTO = vIDPRODUTO;
    ELSE
    IF(vOPR = 'D')THEN --ação de excluir
        DELETE FROM PRODUTO WHERE IDPRODUTO =vIDPRODUTO;
    ELSE
    RAISE vEXCEPTION;
    END IF;
    END IF;
    END IF;
    EXCEPTION
        WHEN vEXCEPTION THEN
        RAISE_APPLICATION_ERROR(-20999,'ATENÇÃO! Operação diferente de I, D, A.', FALSE);
END  SP_PRODUTO;

1 answer

1

The answer is in the error message, has insufficient parameters in the call, its function has 4 parameters and you are calling it with 3, missing to pass vOPR.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.