Criando a procedure calcula_imposto()
create or replace procedure calculo_imposto (
p_ID IN PRODUTO_VENDA_EXERCICIO.ID%type,
p_RESULTADO_IMPOSTO OUT FLOAT
)
IS
v_PRECO PRODUTO_VENDA_EXERCICIO.PRECO%type;
v_QUANTIDADE PRODUTO_VENDA_EXERCICIO.QUANTIDADE%type;
v_IMPOSTO_PERC PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%type;
begin
SELECT preco, quantidade, percentual_imposto
INTO v_PRECO, v_QUANTIDADE, v_IMPOSTO_PERC
FROM produto_venda_exercicio
WHERE ID = p_ID;
p_RESULTADO_IMPOSTO := (v_PRECO * v_QUANTIDADE) * (v_IMPOSTO_PERC / 100);
end;
/
Bloco anônimo para testar a procedure calcula_imposto()
set serveroutput on;
declare
v_ID PRODUTO_VENDA_EXERCICIO.ID%type := 2;
v_SAIDA float;
begin
CALCULO_IMPOSTO(v_ID, v_SAIDA);
DBMS_OUTPUT.PUT_LINE('O cálculo do imposto do produto de identificador:' || v_ID || ' é ' || v_SAIDA);
end;
/