Re: Problem to execute the procedure

From: Wim Jans <wim_at_cereus.be>
Date: Tue, 28 Dec 1999 14:21:42 GMT
Message-ID: <01bf513d$401f20e0$380210ac_at_wja.kodela.iuh.an>


Hi,

You should be carefull with the following piece of your code

<CODE>
 FOR r_adressen IN c_adressen(25051)
   LOOP
    SELECT DECODE(SIGN(r_adressen.ad_prijs-400),-1,400,r_adressen.ad_prijs) into s_kostav from dual;

   END LOOP;     insert into tempadressen values(r_adressen.dos_id,

                                 r_adressen.ad_dos,
         r_adressen.rek_id,

<END CODE>,

If you're using a structure like 'r_addressen in c_addressen loop ... end loop;' , this means that r_addressen is 'redefined' as a loop variable, and therefore is only valid during the loop statement

So, the value of r_addressen which you declare in your declare block (r_addressen c_addressen%rowtype) will be empty after the loop (because this is a different r_addressen then the one you're using in the loop). I guess that there are some NOT NULL fields in your table (insert into tempaddressen) which will give an error if you put null values in it (which all of your values will be)

To make this a bit more clear:

declare

   cursor c1 is
   select 'a' value
   from dual;

   n number;
begin

  • n will be redeclared as a char for n in c1 loop dbms_output.put_line('value is '||n); -- value is a end loop; --n is a number dbms_output.put_line('value is '||to_char(n)); -- value is 0 end;

So, if you're using cursor loop variables (I forgot the exact name), you don't need to declare them in the declare section

Pay also attention to the following piece of code, I don't think this is what you want

 FOR r_adressen IN c_adressent
> LOOP
Hope this help a bit

Wim Jans

Stéphane D'Hoedt <sdhoedt_at_softhome.net> wrote in article <849vvq$na3$1_at_naxos.belnet.be>...
> Hi,
>
> I made a procedure of the following views because the views worked to
slow.
> But when I run the procedure he give me errors. and I don't know which
error
> there is in it.
> I will show you the views and the procedure that I already made:
> I have 5 views already in my procedure.
> VIEWS
> the 1st:
> CREATE OR REPLACE VIEW QADRESSEN ( DOS_ID,
> AD_DOS, REK_ID, DOS_STRAAT, DOS_HUISNR,
> DOS_POSTNR, DOS_GEMEENTE, DOS_LAND, AD_DATUM,
> AD_STRAAT, AD_HUISNR, AD_POSTNR, AD_GEMEENTE,
> AD_LAND, AD_BRON, AD_PRIJS, KOSTAV,
> R_INPUTDATUM, AD_INPUTDATUM, AD_WN, AD_ID
> ) AS SELECT DISTINCT DOSSIER.DOS_ID, ADRESSEN.AD_DOS, REKENING.REK_ID,
> DOSSIER.DOS_STRAAT, DOSSIER.DOS_HUISNR, DOSSIER.DOS_POSTNR,
> DOSSIER.DOS_GEMEENTE,
> DOSSIER.DOS_LAND, ADRESSEN.AD_DATUM, ADRESSEN.AD_STRAAT,
> ADRESSEN.AD_HUISNR,
> ADRESSEN.AD_POSTNR, ADRESSEN.AD_GEMEENTE, ADRESSEN.AD_LAND,
> ADRESSEN.AD_BRON,
> ADRESSEN.AD_PRIJS, DECODE(SIGN(AD_PRIJS-400),-1,400,AD_PRIJS) AS
> KOSTAV,
> REKENING.R_INPUTDATUM,
> ADRESSEN.AD_INPUTDATUM, ADRESSEN.AD_WN, ADRESSEN.AD_ID
> FROM SCHULDENAAR, REKENING, DOSSIER, ADRESSEN
> WHERE REKENING.R_SA_ID = SCHULDENAAR.SA_ID AND
> SCHULDENAAR.SA_DOS = DOSSIER.DOS_ID AND
> DOSSIER.DOS_ID = ADRESSEN.AD_DOS AND
> (((REKENING.R_INPUTDATUM)<=AD_INPUTDATUM))
> ORDER BY DOSSIER.DOS_ID, REKENING.REK_ID, ADRESSEN.AD_DATUM DESC
>
> the 2nd:
> CREATE OR REPLACE VIEW QADRESSENT ( DOS_ID,
> REK_ID, SOMVANKOSTAV, LAATSTEVANAD_DATUM ) AS SELECT DISTINCT
> QADRESSEN.DOS_ID, QADRESSEN.REK_ID,
> SUM(QADRESSEN.KOSTAV) AS SOMVANKOSTAV,
> MAX(QADRESSEN.AD_DATUM) AS LAATSTEVANAD_DATUM
> FROM QADRESSEN
> GROUP BY QADRESSEN.DOS_ID, QADRESSEN.REK_ID
>
> the 3rd:
> CREATE OR REPLACE VIEW QREKENING ( REK_ID,
> R_SA_ID, R_SE_ID, SE_NAAM, R_NAAMSE,
> R_VOLGNUMMERSE, R_REFKLIENT, R_FAKNUMMER, R_REDEN,
> R_DATUMSCHULD, R_BEDRAGSCHULD, R_INPUTDATUM, HSSE,
> MIR, AMR, TIR, SCHADE,
> TOTEXCL, SA_NAAM, R_WN, SE_ID,
> SA_DOS, R_REKOPGELOST, R_REKAFGEREKEND, SA_VNM_VEN,
> DOS_STRAAT, DOS_HUISNR, DOS_POSTNR, DOS_GEMEENTE,
> DOS_LAND, SE_STRAAT, SE_HUISNR, SE_POSTNR,
> SE_GEMEENTE, SE_DOS, SE_AFRHSPERC, SE_AFRHS,
> SE_AFRCOM ) AS SELECT DISTINCT REKENING.REK_ID, REKENING.R_SA_ID,
> REKENING.R_SE_ID,
> SCHULDEISER.SE_NAAM, REKENING.R_NAAMSE, REKENING.R_VOLGNUMMERSE,
> REKENING.R_REFKLIENT,
> REKENING.R_FAKNUMMER, REKENING.R_REDEN, REKENING.R_DATUMSCHULD,
> REKENING.R_BEDRAGSCHULD,
> REKENING.R_INPUTDATUM,
> (ROUND(R_BEDRAGSCHULD/SE_VERHOGINGSVPERC)+SE_VERHOGINGSV) AS HSSE,
> ROUND(R_BEDRAGSCHULD*SE_INTREST) AS MIR,
> TRUNC(MONTHS_BETWEEN( NVL(R_REKOPGELOST,SYSDATE), R_DATUMSCHULD))
AS
> AMR,
>
> OUND(R_BEDRAGSCHULD*SE_INTREST)*TRUNC(MONTHS_BETWEEN(
NVL(R_REKOPGELOST,SYSD
> ATE), R_DATUMSCHULD)) AS TIR,
> GREATEST(ROUND(R_BEDRAGSCHULD*SE_SCHADELOOSSTELLING),SE_MINIMUM)
AS
> SCHADE,
>

>
(ROUND(R_BEDRAGSCHULD/SE_VERHOGINGSVPERC)+SE_VERHOGINGSV)+ROUND(R_BEDRAGSCHU
> LD*SE_INTREST)*TRUNC(MONTHS_BETWEEN( NVL(R_REKOPGELOST,SYSDATE),
>
R_DATUMSCHULD))+GREATEST(ROUND(R_BEDRAGSCHULD*SE_SCHADELOOSSTELLING),SE_MINI
> MUM) AS TOTEXCL,
> SCHULDENAAR.SA_NAAM,
> REKENING.R_WN, SCHULDEISER.SE_ID, SCHULDENAAR.SA_DOS,
> REKENING.R_REKOPGELOST,
> REKENING.R_REKAFGEREKEND, SCHULDENAAR.SA_VNM_VEN,
DOSSIER.DOS_STRAAT,
> DOSSIER.DOS_HUISNR, DOSSIER.DOS_POSTNR, DOSSIER.DOS_GEMEENTE,
> DOSSIER.DOS_LAND,
> SCHULDEISER.SE_STRAAT, SCHULDEISER.SE_HUISNR,
SCHULDEISER.SE_POSTNR,
> SCHULDEISER.SE_GEMEENTE, SCHULDEISER.SE_DOS,
> SCHULDEISER.SE_AFRHSPERC,
> SCHULDEISER.SE_AFRHS, SCHULDEISER.SE_AFRCOM
> FROM DOSSIER,SCHULDENAAR,SCHULDEISER, REKENING
> WHERE DOSSIER.DOS_ID = SCHULDENAAR.SA_DOS AND
> SCHULDEISER.SE_ID = REKENING.R_SE_ID AND
> SCHULDENAAR.SA_ID = REKENING.R_SA_ID AND
> (((REKENING.REK_ID) IS NOT NULL))
>
> the 4th:
> CREATE OR REPLACE VIEW QREKINCL ( SA_DOS,
> R_SA_ID, REK_ID, ST_REK, R_SE_ID,
> SE_NAAM, R_NAAMSE, R_VOLGNUMMERSE, R_REFKLIENT,
> R_FAKNUMMER, R_DATUMSCHULD, R_BEDRAGSCHULD, R_INPUTDATUM,
> HSSE, MIR, AMR, TIR,
> SCHADE, TOTEXCL, LAATSTEVANAD_DATUM, SOMVANKOSTAV,
> TOTAAL1, ST_DATUM, ST_BEDRAGSH, MISH,
> AMSH, TISH, TOTSH, ST_LOT,
> ST_BETINCL, ST_AVINCL, ST_LOBINCL, LO_DATUM,
> LO_BEDRAG, LO_KOST, TOTAAL2, MI,
> AM, TI, TOTAAL, SA_NAAM,
> R_WN, SE_ID, R_REDEN, R_REKOPGELOST,
> R_REKAFGEREKEND, SA_VNM_VEN, DOS_STRAAT, DOS_HUISNR,
> DOS_POSTNR, DOS_GEMEENTE, DOS_LAND, SE_STRAAT,
> SE_HUISNR, SE_POSTNR, SE_GEMEENTE, SE_DOS,
> SE_AFRHSPERC, SE_AFRHS, SE_AFRCOM ) AS SELECT DISTINCT QREKENING.SA_DOS,
> QREKENING.R_SA_ID, QREKENING.REK_ID, STUKKEN.ST_REK, QREKENING.R_SE_ID,
> QREKENING.SE_NAAM, QREKENING.R_NAAMSE, QREKENING.R_VOLGNUMMERSE,
> QREKENING.R_REFKLIENT, QREKENING.R_FAKNUMMER,
> QREKENING.R_DATUMSCHULD, QREKENING.R_BEDRAGSCHULD,
> QREKENING.R_INPUTDATUM, QREKENING.HSSE, QREKENING.MIR,
> QREKENING.AMR, QREKENING.TIR, QREKENING.SCHADE,
QREKENING.TOTEXCL,
> QADRESSENT.LAATSTEVANAD_DATUM AS LAATSTEVANAD_DATUM,
> QADRESSENT.SOMVANKOSTAV AS SOMVANKOSTAV,
> QREKENING.TOTEXCL+NVL(QADRESSENT.SOMVANKOSTAV,0) AS TOTAAL1,
> STUKKEN.ST_DATUM, STUKKEN.ST_BEDRAGSH,
> ROUND(STUKKEN.ST_BEDRAGSH*0.01) AS MISH,
> TRUNC(MONTHS_BETWEEN(NVL(R_REKOPGELOST,SYSDATE),ST_DATUM)) AS
AMSH,
>

>
ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN(NVL(R_REKOPGELOST,SYSDA
> TE),ST_DATUM)) AS TISH,
>

>
ST_BEDRAGSH+ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN(NVL(R_REKOP
> GELOST,SYSDATE),ST_DATUM)) AS TOTSH,
> STUKKEN.ST_LOT, STUKKEN.ST_BETINCL, STUKKEN.ST_AVINCL,
> STUKKEN.ST_LOBINCL, LOONAFSTAND.LO_DATUM,
> LOONAFSTAND.LO_BEDRAG, LOONAFSTAND.LO_KOST,
>

>
(ST_BEDRAGSH+ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN(NVL(R_REKO
> PGELOST,SYSDATE),
>

>
ST_DATUM)))-NVL(ST_AVINCL,0)-NVL(ST_LOBINCL,0)+NVL(SOMVANKOSTAV,0)+NVL(LO_KO
> ST,0)+NVL(ST_BETINCL,0) AS TOTAAL2,
> NVL(ROUND(STUKKEN.ST_BEDRAGSH*0.01),QREKENING.MIR) AS MI,
> NVL(TRUNC(MONTHS_BETWEEN(NVL(R_REKOPGELOST,SYSDATE),ST_DATUM)),
> QREKENING.AMR) AS AM,
>
>
DECODE(NVL(ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN(NVL(R_REKOPG
> ELOST,SYSDATE),ST_DATUM)),0),0,QREKENING.TIR,
>

>
ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN(NVL(R_REKOPGELOST,SYSDA
> TE),ST_DATUM))+
>

>
QREKENING.TIR-(TRUNC(MONTHS_BETWEEN(NVL(R_REKOPGELOST,SYSDATE),ST_DATUM))*QR
> EKENING.MIR)) AS TI,
> NVL(
> (ST_BEDRAGSH+ ROUND(STUKKEN.ST_BEDRAGSH*0.01)*TRUNC(MONTHS_BETWEEN
> (NVL(R_REKOPGELOST,SYSDATE),ST_DATUM)))
> -NVL
>
(ST_AVINCL,0)-NVL(ST_LOBINCL,0)+NVL(SOMVANKOSTAV,0)+NVL(LO_KOST,0)+NVL(ST_BE
> TINCL,0),QREKENING.TOTEXCL
> +NVL(QADRESSENT.SOMVANKOSTAV,0)
> ) AS TOTAAL,
> QREKENING.SA_NAAM, QREKENING.R_WN, QREKENING.SE_ID, QREKENING.R_REDEN,
> QREKENING.R_REKOPGELOST,
> QREKENING.R_REKAFGEREKEND, QREKENING.SA_VNM_VEN, QREKENING.DOS_STRAAT,
> QREKENING.DOS_HUISNR,
> QREKENING.DOS_POSTNR, QREKENING.DOS_GEMEENTE, QREKENING.DOS_LAND,
> QREKENING.SE_STRAAT, QREKENING.SE_HUISNR, QREKENING.SE_POSTNR,
> QREKENING.SE_GEMEENTE,
> QREKENING.SE_DOS, QREKENING.SE_AFRHSPERC, QREKENING.SE_AFRHS,
> QREKENING.SE_AFRCOM
> FROM QADRESSENT, QREKENING, LOONAFSTAND, STUKKEN
> WHERE QREKENING.REK_ID = LOONAFSTAND.LO_REK(+) AND
> QREKENING.REK_ID = STUKKEN.ST_REK(+) AND
> QREKENING.REK_ID = QADRESSENT.REK_ID(+)
>
> the 5th:
> CREATE OR REPLACE VIEW QBETALINGT ( BT_REK,
> AANTALVANBT_ID, LAATSTEVANBT_DATUM, LAATSTEVANBT_AARD, SOMVANBT_RECTUS,
> SOMVANBT_SE, BT_TOTAAL ) AS SELECT DISTINCT BETALING.BT_REK,
> COUNT(BETALING.BT_ID) AS AANTALVANBT_ID,
> MAX(BETALING.BT_DATUM) AS LAATSTEVANBT_DATUM,
> MAX(BETALING.BT_AARD) AS LAATSTEVANBT_AARD,
> SUM(BETALING.BT_RECTUS) AS SOMVANBT_RECTUS,
> SUM(BETALING.BT_SE) AS SOMVANBT_SE,
> SUM(NVL(BT_SE,0)+NVL(BT_RECTUS,0)) AS BT_TOTAAL
> FROM BETALING
> GROUP BY BETALING.BT_REK
>
> And this is the procedure that I already made(tried):
> CREATE OR REPLACE PROCEDURE SALDO2
> IS
>
> cursor c_adressen is
> select dos_id, ad_dos, rek_id, dos_straat, dos_huisnr, dos_postnr,
> dos_gemeente, dos_land, ad_datum,
> ad_straat, ad_huisnr, ad_postnr, ad_gemeente, ad_land, ad_bron,
> ad_prijs, r_inputdatum, ad_inputdatum, ad_wn, ad_id
> from schuldenaar, rekening, dossier, adressen
> where rekening.R_SA_ID = schuldenaar.SA_ID
> and schuldenaar.SA_ID = dossier.DOS_ID
> and dossier.DOS_ID = adressen.AD_DOS
> and rekening.R_INPUTDATUM <= ad_inputdatum
> order by dossier.DOS_ID, rekening.REK_ID, adressen.AD_DATUM desc;
> --
> r_adressen c_adressen%ROWTYPE;
> --
> cursor c_adressent is
> select t_dos_id,t_rek_id,t_kostav,t_ad_datum
> from tempadressen;
> --group by tempadressen.T_DOS_ID,tempadressen.T_REK_ID;
> --
> r_adressent c_adressent%ROWTYPE;
>
> cursor c_rekening is
> select rek_id, r_sa_id, r_se_id, se_naam, r_naamse, r_volgnummerse,
> r_refklient, r_faknummer,
> r_reden, r_datumschuld, r_bedragschuld, r_inputdatum, sa_naam,
r_wn,
> se_id, sa_dos,
> r_rekopgelost, r_rekafgerekend, sa_vnm_ven, dos_straat, dos_huisnr,
> dos_postnr, dos_gemeente,
> dos_land, se_straat, se_huisnr, se_postnr, se_gemeente, se_dos,
> se_afrhsperc, se_afrhs, se_afrcom,
> se_verhogingsvperc, se_verhogingsv, se_intrest, se_schadeloosstelling,
> se_minimum
> from dossier, schuldenaar, schuldeiser, rekening
> where dossier.DOS_ID = schuldenaar.SA_DOS
> and schuldeiser.SE_ID = rekening.R_SE_ID
> and schuldenaar.SA_ID = rekening.R_SA_ID
> and rekening.REK_ID IS NOT NULL;
>
> r_rekening c_rekening%ROWTYPE;
>
> cursor c_rekeningcl is
> select
>
t_sa_dos,t_r_sa_id,tr_rek_id,st_rek,t_r_se_id,t_se_naam,t_r_naamse,t_r_volgn

> ummerse,t_r_refklient,t_r_faknummer,
>
>
t_r_datumschuld,t_r_bedragschuld,t_r_inputdatum,t_hsse,t_mir,t_amr,t_tir,t_s

> chade,t_totexcl,t_laatstevanad_datum,
>
>
t_somvankostav,st_datum,st_bedragsh,st_lot,st_betincl,st_avincl,st_lobincl,l

> o_datum,lo_bedrag,lo_kost,t_sa_naam,
>
>
t_r_wn,t_se_id,t_r_reden,t_r_rekopgelost,t_rekafgerekend,t_sa_vnm_ven,t_dos_

> straat,t_dos_huisnr,t_dos_postnr,
>
>
t_dos_gemeente,t_dos_land,t_se_straat,t_se_huisnr,t_se_postnr,t_se_gemeente,

> t_se_dos,t_se_afrhsperc,t_se_afrhs,t_se_afrcom
> from tempadressent,temprekening,loonafstand,stukken
> where temprekening.Tr_REK_ID = loonafstand.LO_REK(+)
> and temprekening.Tr_REK_ID = stukken.ST_REK(+)
> and temprekening.TR_REK_ID = tempadressent.T_REK_ID(+);
>
> r_rekeningcl c_rekeningcl%ROWTYPE;
>
> cursor c_betalingt is
> select bt_rek, bt_id, bt_datum, bt_aard, bt_rectus, bt_se
> from betaling;
> --group by betaling.bt_rek;
> --
> r_betalingt c_betalingt%ROWTYPE;
>
> s_kostav number(15);
> s_hsse number(15);
> s_mir number(15);
> s_amr number(4);
> s_tir number(15);
> s_schade number(15);
> s_totexcl number(15);
> s_eerstevansa_naam varchar2(50);
> s_eerstevanr_sa_id number(15);
> s_aantalvanrek_id number(15);
> s_somvanr_bedragschuld number(15);
> s_somvanhsse number(15);
> s_somvanti number(15);
> s_somvanschade number(15);
> s_maxvanst_tot number(15);
> s_somvantotaal number(15);
> s_somvanbt_totaal number(15);
> s_te_betalen number(15);
> s_totaal1 number(15);
> s_laatstevanad_datum date;
> s_somvankostav number(15);
> s_mish number(15);
> s_amsh number(15);
> s_tish number(15);
> s_totsh number(15);
> s_totaal2 number(15);
> s_mi number(15);
> s_am number(15);
> s_ti number(15);
> s_totaal number(15);
> s_aantalvanbt_id number(15);
> s_laatstevanbt_datum date;
> s_laatstevanbt_aard varchar2(4);
> s_somvanbt_rectus number(15);
> s_somvanbt_se number(15);
> s_bt_totaal number(15);
>
>
>
> -- VARIABLES FOR ERROR MESSAGES.
> ERRNUM NUMBER;
> ERRMSG VARCHAR2(150);
>
> BEGIN
> dbms_output.PUT_LINE('voor open');
> FOR r_adressen IN c_adressen(25051)
> LOOP
> SELECT
DECODE(SIGN(r_adressen.ad_prijs-400),-1,400,r_adressen.ad_prijs)
> into s_kostav from dual;
> END LOOP;
> insert into tempadressen values(r_adressen.dos_id,
> r_adressen.ad_dos,
> r_adressen.rek_id,
> r_adressen.dos_straat,
> r_adressen.dos_huisnr,
> r_adressen.dos_postnr,
> r_adressen.dos_gemeente,
> r_adressen.dos_land,
> r_adressen.ad_datum,
> r_adressen.ad_straat,
> r_adressen.ad_huisnr,
> r_adressen.ad_postnr,
> r_adressen.ad_gemeente,
> r_adressen.ad_land,
> r_adressen.ad_bron,
> r_adressen.ad_prijs,
> s_kostav,
> r_adressen.r_inputdatum,
> r_adressen.ad_inputdatum,
> r_adressen.ad_wn,
> r_adressen.ad_id);
>
>
> dbms_output.put_line('einde adressen');
>
> --
>
> FOR r_adressen IN c_adressent
> LOOP
> SELECT SUM(r_adressent.t_kostav) into s_somvankostav from dual;
> SELECT MAX(r_adressent.t_ad_datum) into s_laatstevanad_datum from
dual;
> END LOOP;
> insert into tempadressent values(r_adressent.t_dos_id,
> r_adressent.t_rek_id,
> s_somvankostav,
> s_laatstevanad_datum);
>
>
> dbms_output.put_line('einde adressent');
>
>
>
> -- FOR r_rekening IN c_rekening
> -- LOOP
> -- -- bepaling van kostav
> -- SELECT
>
ROUND(r_rekening.r_bedragschuld/r_rekening.se_verhogingsvperc)+r_rekening.se

> _verhogingsv into s_hsse from dual;
> -- SELECT ROUND(r_rekening.r_bedragschuld*r_rekening.se_intrest) into
> s_mir from dual;
> -- SELECT
>
TRUNC(MONTHS_BETWEEN(NVL(r_rekening.r_rekopgelost,sysdate),r_rekening.r_datu

> mschuld)) into s_amr from dual;
> -- SELECT
>
ROUND(r_rekening.r_bedragschuld*r_rekening.se_intrest)*TRUNC(MONTHS_BETWEEN(

> NVL(r_rekening.r_rekopgelost,sysdate),r_rekening.r_datumschuld)) into
s_tir
> from dual;
> -- SELECT

>
GREATEST(ROUND(r_rekening.r_bedragschuld*r_rekening.se_schadeloosstelling),r

> _rekening.se_minimum) into s_schade from dual;
> -- SELECT
>
(ROUND(r_rekening.r_bedragschuld/r_rekening.se_verhogingsvperc)+r_rekening.s

>
e_verhogingsv)+ROUND(r_rekening.r_bedragschuld*r_rekening.se_intrest)*TRUNC(

>
MONTHS_BETWEEN(NVL(r_rekening.r_rekopgelost,sysdate),r_rekening.r_datumschul

>
d))+GREATEST(ROUND(r_rekening.r_bedragschuld*r_rekening.se_schadeloosstellin

> g),r_rekening.se_minimum) into s_totexcl from dual;
> -- insert into temprekening values(r_rekening.rek_id,
> -- r_rekening.r_sa_id,
> -- r_rekening.r_se_id,
> -- r_rekening.se_naam,
> -- r_rekening.r_naamse,
> -- r_rekening.r_volgnummerse,
> -- r_rekening.r_refklient,
> -- r_rekening.r_faknummer,
> -- r_rekening.r_reden,
> -- r_rekening.r_datumschuld,
> -- r_rekening.r_bedragschuld,
> -- r_rekening.r_inputdatum,
> -- s_hsse,
> -- s_mir,
> -- s_amr,
> -- s_tir,
> -- s_schade,
> -- s_totexcl,
> -- r_rekening.sa_naam,
> -- r_rekening.r_wn,
> -- r_rekening.se_id,
> -- r_rekening.sa_dos,
> -- r_rekening.r_rekopgelost,
> -- r_rekening.r_rekafgerekend,
> -- r_rekening.sa_vnm_ven,
> -- r_rekening.dos_straat,
> -- r_rekening.dos_huisnr,
> -- r_rekening.dos_postnr,
> -- r_rekening.dos_gemeente,
> -- r_rekening.dos_land,
> -- r_rekening.se_straat,
> -- r_rekening.se_huisnr,
> -- r_rekening.se_postnr,
> -- r_rekening.se_gemeente,
> -- r_rekening.se_dos,
> -- r_rekening.se_afrhsperc,
> -- r_rekening.se_afrhs,
> -- r_rekening.se_afrcom);
> --
> -- END LOOP;
>
>
> OPEN c_betalingt;
> FETCH c_betalingt into r_betalingt;
> WHILE c_betalingt%FOUND
> LOOP
> SELECT COUNT(r_betalingt.bt_id) into s_aantalvanbt_id from dual;
> SELECT MAX(r_betalingt.bt_datum) into s_laatstevanbt_datum from dual;
> SELECT MAX(r_betalingt.bt_aard) into s_laatstevanbt_aard from dual;
> SELECT SUM(r_betalingt.bt_rectus) into s_somvanbt_rectus from dual;
> SELECT SUM(r_betalingt.bt_se) into s_somvanbt_se from dual;
> SELECT SUM(NVL(r_betalingt.bt_se,0)+NVL(r_betalingt.bt_rectus,0)) into
> s_bt_totaal from dual;
> insert into tempbetalingt
>
values(r_betalingt.bt_rek,s_aantalvanbt_id,s_laatstevanbt_datum,s_laatstevan

> bt_aard,s_somvanbt_rectus,s_somvanbt_se,s_bt_totaal);
> FETCH c_betalingt into r_betalingt;
> END LOOP;
> dbms_output.put_line('einde betalingt');
> CLOSE c_betalingt;
>
> OPEN c_rekeningcl;
> FETCH c_rekeningcl into r_rekeningcl;
> CLOSE c_rekeningcl;
>
>
>
>
>
>
>
>
> -- FOR r_rekeningcl in c_rekeningcl
> -- LOOP
> -- s_totaal1 := r_rekeningcl.t_totexcl +
> NVL(r_rekeningcl.t_somvankostav,0);
> -- END LOOP;
>
> commit;
> EXCEPTION
> WHEN OTHERS THEN
> ERRNUM := SQLCODE;
> ERRMSG := SUBSTR(SQLERRM,1,150);
> DBMS_OUTPUT.PUT_LINE( 'ERRNUM :'||ERRNUM ||' MSG :'|| ERRMSG);
> RAISE_APPLICATION_ERROR(-20099,'Andere error');
> END SALDO2;
> /
>
>
> I hope there is someone that can help me with it. I don't know anymore
what
> to do.
> I hope I tried it already good.
>
> Thanks,
> Stéphane D'Hoedt
>
>
>
Received on Tue Dec 28 1999 - 15:21:42 CET

Original text of this message