I created this procedure in Oracle, but I am not able to insert data with EXEC
.
How I'm Declaring 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;