Help!

I have a stored procedure that I can't get to work.  The purpose of this
procedure is to take one file that has detail records and insert a distinct
header into one table, assign an unique_id, then insert into another table
all the detail lines associated with that header record and add a line
counter along with the unique_id from the header.  I can get the header
inserted fine but its the detail that is not processing.  Attached is the
code and now when I try and execute the code its giving me an error on my
two cursors.  Thank you in advance for any help.


PROCEDURE temp_insert_interface
IS

   l_invoice_id        NUMBER(10);
   l_invoice_line_id   NUMBER;

   CURSOR c_dri_apc_paid_history
   IS
      SELECT DISTINCT invoice_code,
                      invoice_date,
                      vendor_code,
                      invoice_amount,
                      record_type,
                      separate_handling,
                      separate_check,
                      type_code,
                      check_number ||
                      ' ' ||
                      TO_CHAR (check_date, 'MM/DD/YY') attribute2,
                      batch_code attribute3,
                      po_number attribute4,
                      coder_initials attribute5,
                      ips_number attribute6
        FROM dricus.dri_apc_paid_history;

   CURSOR c_ap_invoice_interface
   IS
        SELECT
                     distribution_amount,
                        corp_code,
                        gl_account,
                        location_code,
                        desc_Code,
                        slid_code,
                        slac_code,
                        invoice_code,
                        dricus.dri_apc_paid_history.invoice_Date,
                        vendor_code,
                        dricus.dri_apc_paid_history.invoice_amount,
                        record_type,
                        separate_handling,
                        separate_check,
                        check_number,
                        check_date,
                        batch_code,
                        dricus.dri_apc_paid_history.po_number,
                        dricus.dri_apc_paid_history.coder_initials,
                        ips_number
        from ap.ap_invoices_interface,
                dricus.dri_apc_paid_history
WHERE
                dricus.dri_apc_paid_history.invoice_code = 
ap.ap_invoices_interface.invoice_num
                AND dricus.dri_apc_paid_history.invoice_date = 
ap.ap_invoices_interface.invoice_date
                AND dricus.dri_apc_paid_history.vendor_code = 
ap.ap_invoices_interface.vendor_site_code
                AND dricus.dri_apc_paid_history.invoice_amount = 
ap.ap_invoices_interface.invoice_amount
                AND dricus.dri_apc_paid_history.record_type = 
ap.ap_invoices_interface.source
                AND dricus.dri_apc_paid_history.separate_handling 
=ap.ap_invoices_interface.pay_group_lookup_code
                AND dricus.dri_apc_paid_history.separate_check = 
ap.ap_invoices_interface.exclusive_payment_flag
                AND dricus.dri_apc_paid_history.type_code = 
ap.ap_invoices_interface.invoice_type_lookup_code
                AND dricus.dri_apc_paid_history.check_number ||' ' ||TO_CHAR 
(dricus.dri_apc_paid_history.check_date, 'MM/DD/YY') 
                 = ap.ap_invoices_interface.attribute2
                AND dricus.dri_apc_paid_history.batch_code = 
ap.ap_invoices_interface.attribute3
                AND dricus.dri_apc_paid_history.po_number = 
ap.ap_invoices_interface.attribute4
                AND dricus.dri_apc_paid_history.coder_initials = 
ap.ap_invoices_interface.attribute5
                AND dricus.dri_apc_paid_history.ips_number = 
ap.ap_invoices_interface.attribute6;

BEGIN
   FOR cc_outer IN c_dri_apc_paid_history
   LOOP
      SELECT seq_dricus.nextval
        INTO l_invoice_id
        FROM dual;
      INSERT INTO ap.ap_invoices_interface (
                     invoice_id,
                     invoice_num,
                     invoice_date,
                     vendor_site_code,
                     invoice_amount,
                     source,
                     pay_group_lookup_code,
                     exclusive_payment_flag,
                     invoice_type_lookup_code,
                     attribute2,
                     attribute3,
                     attribute4,
                     attribute5,
                     attribute6
                  )
           VALUES (
              l_invoice_id,
              cc_outer.invoice_code,
              cc_outer.invoice_date,
              cc_outer.vendor_code,
              cc_outer.invoice_amount,
              cc_outer.record_type,
              cc_outer.separate_handling,
              cc_outer.separate_check,
              cc_outer.type_code,
              cc_outer.attribute2,
              cc_outer.attribute3,
              cc_outer.attribute4,
              cc_outer.attribute5,
              cc_outer.attribute6
           );

      commit;
     l_invoice_line_id := 1;


     FOR cc_inner IN c_ap_invoice_interface
      LOOP
      INSERT INTO ap.ap_invoice_lines_interface (
                        invoice_id,
                        invoice_line_id,
                        line_number,
                        line_type_lookup_code,
                        amount,
                        dist_code_concatenated,
                        attribute1
                     )
              VALUES (
                 l_invoice_id,
                 l_invoice_line_id,
                 l_invoice_line_id,
                 'ITEM',
                 cc_inner.distribution_amount,
                 
cc_inner.corp_code||'.'||cc_inner.gl_account||'.'||cc_inner.location_code||'.000.00000',
                 cc_inner.desc_code||' '||cc_inner.slid_code||' '||cc_inner.slac_code  
               
              );
                
         l_invoice_line_id := l_invoice_line_id + 1;
         commit;
      END LOOP;
Close c_dri_apc_paid_history;
   END LOOP;
Close c_ap_invoice_interface;
--EXCEPTION
--    WHEN exception_name THEN
--       statements ;

END;   -- Procedure INSERT_INTERFACE

Reply via email to