Hi,

pemanggilnya harusnya seperti ini

   
report_ap_0043a.ap_0043a(to_date('01/11/2008','dd/mm/yyyy'),to_date('05/11/2008','dd/mm/yyyy'),'POF',cur);


Cheers,
Wadi Achmed


Agustinus Vindy wrote:
> Dear all,
>
> saya buat package dan prosedure pemanggilnya seperti ini..
>
> =======package head===========
>
> create or replace package report_ap_0043a is
>
>   -- Author  : ADMINISTRATOR
>   -- Created : 25/03/2004 10:09:05 AM
>   -- Purpose : 
>   
>   -- Public type declarations
>   type CursorDummy is REF CURSOR;
>   
>   Procedure ap_0043a(TglAwal IN DATE,TglAkhir IN DATE,NamaSchema IN 
> Varchar2,CurOut OUT CursorDummy);
>   
> end report_ap_0043a;
>
>
>
>
> ======package body===========
>
> create or replace package body report_ap_0043a is
>
> Procedure ap_0043a(TglAwal IN DATE,TglAkhir IN DATE,NamaSchema IN 
> Varchar2,CurOut OUT CursorDummy)
> Is
> Begin
> Open CurOut For
>       'select 
>            a.mata_uang,
>            a.tanggal_lpb tgl_lpb,
>            a.nomor_lpb no_lpb,
>            b.nomor_spp no_spp,
>            (select g.nama from finance.relasi g where g.kode = 
> a.kode_supplier) supplier,
>            e.nama_barang spesifikasi_barang,
>            c.kode_rekening,
>            b.qty jumlah_barang,
>            e.satuan,
>            c.harga harga_satuan,
>            --c.potongan diskon,
>            0 diskon,
>            decode(a.mata_uang,''IDR'',0,c.harga * b.qty) jumlah_valas,
>            decode(a.mata_uang,''IDR'',c.harga * b.qty,c.harga * b.qty * 
> decode((select kurs_mkeu from finance.kurs where kurs.kode_mata_uang = 
> a.mata_uang and kurs.tanggal = a.tanggal_kurs),null,0,(select kurs_mkeu from 
> finance.kurs where kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs))) jumlah_rupiah,
>            (select max(f.tanggal_kirim) from 
> '||NamaSchema||'.spp_rencana_kirim f where f.nomor_spp = b.nomor_spp and 
> f.nomor_sip = b.nomor_sip and f.item_sip = b.item_sip) tanggal_kiriman,
>            a.jenis_ppn ppn,
>            decode(a.jenis_ppn,''I'',
>                   (decode(a.mata_uang,''IDR'',0,c.harga * b.qty) - 
> (decode(a.mata_uang,''IDR'',0,c.harga * b.qty) * 0.1)),
>                   --decode(a.mata_uang,''IDR'',0,c.harga * c.qty) + 
> (decode(a.mata_uang,''IDR'',0,c.harga * c.qty)/11)
>                       decode(a.mata_uang,''IDR'',0,c.harga * b.qty )
>                   ) total_valas,
>              decode(a.jenis_ppn,''I'',
>                      decode(
>                                a.mata_uang,
>                                ''IDR'',
>                                ((c.harga * b.qty) -  ((c.harga * b.qty) * 
> 0.1)),
>                          ( ((c.harga * b.qty) * ((decode((select kurs_mkeu 
> from finance.kurs where kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs),null,0,(select kurs_mkeu from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = a.tanggal_kurs))))) - 
> (((c.harga * b.qty) * ((decode((select kurs_mkeu from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs),null,0,(select kurs_mkeu from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = a.tanggal_kurs))))) * 
> 0.1) ) ),
>                                --(c.harga * b.qty * decode((select 
> kurs_tengah_bi from finance.kurs where kurs.kode_mata_uang = a.mata_uang and 
> kurs.tanggal = a.tanggal_kurs),null,0,(select kurs_tengah_bi from 
> finance.kurs where kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs)))) + 
>                          --(decode(a.mata_uang,''IDR'',c.harga * 
> b.qty,c.harga * b.qty * decode((select kurs_tengah_bi from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs),null,0,(select kurs_tengah_bi from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = a.tanggal_kurs))) * 0.1),
>                      decode(
>                                a.mata_uang,
>                                ''IDR'',
>                                c.harga * b.qty,
>                                c.harga * b.qty * decode((select kurs_mkeu 
> from finance.kurs where kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = 
> a.tanggal_kurs),null,0,(select kurs_mkeu from finance.kurs where 
> kurs.kode_mata_uang = a.mata_uang and kurs.tanggal = a.tanggal_kurs)))        
>                        ) total_rupiah
>
>       from '||NamaSchema||'.lpb_head a
>            join '||NamaSchema||'.lpb_item b on (a.nomor_lpb = b.nomor_lpb)
>            left join '||NamaSchema||'.spp_item c on (b.nomor_spp = 
> c.nomor_spp and b.nomor_sip = c.nomor_sip and b.item_sip = c.item_sip)
>            left join '||NamaSchema||'.sip_item e on (b.nomor_sip = 
> e.nomor_sip and b.item_sip = e.item_sip)
>       where a.barang_jasa = ''B'' and a.tanggal_lpb >= '''||TglAwal||''' and 
> a.tanggal_lpb <= '''||TglAkhir||'''';
>            
> End ap_0043a;
>
> end report_ap_0043a;
>
>
>
>
> -> aku bikin prosedure pemanggil dari package itu seperti ini 
> =====================================================================
> create or replace procedure pemanggil_package_AP is
>      
>     type curOut is REF CURSOR;
>     cur curOut;
>     table_ap TEMP_AP_0043A%rowtype; 
>    --TEMP_AP_0043A = table temporary yang field nya sama dengan hasil kursor
>     
> begin
>
>     report_ap_0043a.ap_0043a('01/11/2008','05/11/2008','POF',cur);
>      
>     
>     loop
>     fetch cur into table_ap;
>     dbms_output.put_line(cur%rowcount);
>     dbms_output.put_line(table_ap.no_lpb);
>     exit when cur%notfound;
>     end loop;
>     
> end pemanggil_package_AP;
> =====================================================================
>
> tapi pas aku jalankan lewat muncul error  seperti ini ...
>
> exec pemanggil_package_AP;
>
> begin pemanggil_package_AP; end;
>
> ORA-06502: PL/SQL: numeric or value error
> ORA-06512: at "FINANCE.PEMANGGIL_PACKAGE_AP", line 13
> ORA-06512: at line 1
>
>
> kira2 apa ya?
> mohon bantuannya..
>
>
> Makasih..:)
>
>
>  
>   

Kirim email ke