J'ai écrit une fonction qui est utilisée pour renvoyer le BALANCE en fonction du type de produit. J'en ai plusieurs pour chaque type de produit et j'ai utilisé la rangée de tuyaux comme suit.Retour de pipelines Oracle ORA-06548: plus de lignes nécessaires, ORA-01427: sous-requête à une ligne renvoie plus de
create or replace function GETACC_BAL(pi_CUS_MDB_IID in number,
pi_EN_TYPE in varchar2,
pi_ADC_IID in number,
pi_CUS_MDB_IID in number,
pi_expiryDate in Date)
return ACC_CUS_BAL_ARR pipelined as
begin
for i in (select *
from CUST_BAL
where CUS_MDB_IID = pi_CUS_MDB_IID
and EN_TYPE = pi_EN_TYPE
and ADC_IID = pi_ADC_IID
and BALANCE <> 0) loop
pipe row(AC_CUS_BAL(I.EXPDATE,
I.ADC_IID,
I.EN_TYPE,
I.BALANCE,
'A'
));
end loop;
return;
end GETACC_BAL;
/
lorsque i exécuter la fonction ci-dessus où la boucle de produire une rangée fonctionne, mais dans le cas de rangées de multiples alors i ORA-06548; ORA-01427. J'ai essayé d'utiliser l'exception when_no_data_needed, mais pas de chance.
Quelqu'un peut-il aider à ce sujet, est-ce possible?
Merci
S'il vous plaît ajouter procédure 'AC_CUS_BAL' aussi dans votre question. –