O que preciso é simples. O dr_gori, me ajudou muito ate agora.
A procedure proc_calculos ) abaixo,está funcionando perfeito! Agora,quero trazer os resultados desta procedure ( proc_calculos ), dentro de outra procedure que estou criando. Criei um type de entrada ( calculo_tab ), onde passo os parâmetros, e quero trazer
os retornos dos cálculos, e gravar em uma tabela. ´É somente isso. Estou tentando trazer os dados, mas vem vazio. alguém pode me ajudar?
segue o exemplo do retorno vazio:
A função retorna TOTAL ISS: 7 e TOTAL IR: 5, esta correto.
Mas quando vou chamar dentro de outra procedure, passando parâmetros, retorna TOTAL ISS: e TOTAL IR: vazios.....
TOTAL ISS: 7
TOTAL IR: 5
TOTAL ISS:
TOTAL IR:
-Procedure que fica os calculos ---
CÓDIGO: SELECIONAR TODOS
create or replace PROCEDURE proc_calculos ( calculo_tab in t_calxulo )
AS
--Retorno (Saida Funções Calculadas)
v_num1 NUMBER := 0;
v_num2 NUMBER := 0;
v_num3 NUMBER := 0;
-- type que receberá o retorno (Saida Funções Calculadas)
type tret_motor is record ( v_num1 number,
v_num2 number,
v_num3 number);
vretorno tret_motor;
-- função que retorna os valores (Saida Funções Calculadas)
function fun_ret_motor
return tret_motor
is
vret_motor tret_motor;
begin
--Retorno das funções-----------
--FUNCTION 1
v_num1 := fn_ISS( calculo_tab.p_iss , calculo_tab.p_COFINS );
--FUNCTION 2
v_num2 := fn_ir( calculo_tab.P_IR, calculo_tab.P_IMPOSTO);
--FUNCTION 3
v_num3 := fn_taxa( calculo_tab.P_TAXA, calculo_tab.P_IMPOSTO, calculo_tab.p_ISS );
--Agora alimentamos o v_row a ser retornado
vret_motor.v_num1 := v_num1;
vret_motor.v_num2 := v_num2;
vret_motor.v_num3 := v_num3;
--
return vret_motor;
end fun_ret_motor;
begin
-- Chamada da função
vretorno := fun_ret_motor;
-- Print dos dadosfun_ret_motor;
dbms_output.put_line('FUNCTION 1: '||vretorno.v_num1);
dbms_output.put_line('FUNCTION 2: '||vretorno.v_num2);
dbms_output.put_line('FUNCTION 3: '||vretorno.v_num3);
end;
obrigada