create or replace procedure P_SOMA_NOTA(P_DAT_INICIAL NOTA_FISCAL.DAT_EMISS%TYPE,
P_DAT_FINAL NOTA_FISCAL.DAT_EMISS%TYPE) is
begin
select pr.nom_proje "NOME DO PROJETO", sum(nf.val_nf) TOTAL
from proje pr, nota_fiscal nf
where pr.sig_proje = nf.sig_proje
AND dat_emiss between P_DAT_INICIAL and P_DAT_FINAL
group by pr.nom_proje;
end P_SOMA_NOTA;
O programa diz que eu tenho que inserir into
quando coloco into
ele pede from [/code]
não é bem o erro
criei um cursor e nele tem esse select
mas ele vai dar mais de uma linha
ou seja vou criar uma variavel do typo c_nome_cursor%rowtype
nele eu vo fazer o fetch do cursor
e vou jogar no dbms_output.putline dentro de um loop
para exibir todas as linhas
create or replace procedure P_SOMA_NOTA(P_DAT_INICIAL NOTA_FISCAL.DAT_EMISS%TYPE,
P_DAT_FINAL NOTA_FISCAL.DAT_EMISS%TYPE) is
CURSOR C_SOMA_NOTA IS
select pr.nom_proje "NOME DO PROJETO", sum(nf.val_nf) TOTAL
from proje pr, nota_fiscal nf
where pr.sig_proje = nf.sig_proje
AND dat_emiss between P_DAT_INICIAL and P_DAT_FINAL
group by pr.nom_proje;
W_SOMA_NOTA C_SOMA_NOTA%ROWTYPE;
begin
OPEN C_SOMA_NOTA;
LOOP
FETCH C_SOMA_NOTA
INTO W_SOMA_NOTA;
EXIT WHEN C_SOMA_NOTA%NOTFOUND;
DBMS_OUTPUT.put_line(W_SOMA_NOTA);
END LOOP;
end P_SOMA_NOTA;
Compilation errors for PROCEDURE DADOS.P_SOMA_NOTA
Error: PLS-00306: número incorreto de tipos de argumentos na chamada para 'PUT_LINE'
Line: 18
Text: DBMS_OUTPUT.put_line(W_SOMA_NOTA);
Error: PL/SQL: Statement ignored
Line: 18
Text: DBMS_OUTPUT.put_line(W_SOMA_NOTA);
create or replace procedure P_SOMA_NOTA(P_DAT_INICIAL NOTA_FISCAL.DAT_EMISS%TYPE,
P_DAT_FINAL NOTA_FISCAL.DAT_EMISS%TYPE) is
CURSOR C_SOMA_NOTA IS
select pr.nom_proje PROJETO, sum(nf.val_nf) TOTAL
from proje pr, nota_fiscal nf
where pr.sig_proje = nf.sig_proje
AND dat_emiss between P_DAT_INICIAL and P_DAT_FINAL
group by pr.nom_proje;
W_SOMA_NOTA C_SOMA_NOTA%ROWTYPE;
begin
OPEN C_SOMA_NOTA;
LOOP
FETCH C_SOMA_NOTA
INTO W_SOMA_NOTA;
EXIT WHEN C_SOMA_NOTA%NOTFOUND;
DBMS_OUTPUT.put_line('PROJETO: '|| W_SOMA_NOTA.PROJETO);
DBMS_OUTPUT.put_line('TOTAL: '||W_SOMA_NOTA.TOTAL);
DBMS_OUTPUT.PUT_LINE('-------------------------------------');
END LOOP;
end P_SOMA_NOTA;