Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

PL/SQL: ORA-00904: : invalid identifier

user8731258Oct 14 2010 — edited Oct 14 2010
begin

   CURSOR temp_rec_tap_cur
   IS
      SELECT file_id, file_name, sender_pmn, recipient_pmn, call_date,
             call_date_only, call_type, call_number, FIRST_RECORD,
             service_type, service_code, home_bid, serve_bid,
             chargeable_subs_type, imsi_min, msisdn_mdn, air_charges,
             air_charges_sdr, air_time, national_call_charges,
             national_call_charges_sdr, national_call_time,
             international_call_charges, international_call_charges_sdr,
             international_call_time, dir_assist_charges,
             dir_assist_charges_sdr, dir_assist_time, other_charges,
             other_charges_sdr, other_time, volume_charges,
             volume_charges_sdr, volume_units, tot_charges, tot_charges_sdr,
             tot_duration, state_tax, state_tax_sdr, local_tax,
             local_tax_sdr, state_and_use_tax, state_and_use_tax_sdr, va_tax,
             va_tax_sdr, other_tax, other_tax_sdr, charge_refund_indicator,
             advised_charge_currency, advised_charge, advised_charge_sdr,
             advised_charge_commission, advised_charge_commission_sdr,
             exchange_rate, mcc, mnc, process_date, chargeable_units,
             record_num, mscid
        FROM temp_records_tap;

   TYPE temp_rec_tab IS TABLE OF temp_rec_tap_cur%ROWTYPE;

   v_test_tab      temp_rec_tab;
   v_rec_num       num_tab;
   v_filename      temp_records_tap.file_name%TYPE;
   v_error_code    tap_reject.ERROR_CODE%TYPE;
   v_rej_value     tap_reject.field_rej%TYPE;
   v_count         NUMBER;
   v_error_index   NUMBER;
   v_count1 NUMBER;
   v_error_cnt NUMBER;
   l_ind number;
   
BEGIN
   SELECT file_name
     INTO v_filename
     FROM temp_records_tap
    WHERE ROWNUM < 2;

SELECT COUNT(*) into v_count1 from temp_records_tap;  


   OPEN temp_rec_tap_cur;

   LOOP
      BEGIN
         FETCH temp_rec_tap_cur
         BULK COLLECT INTO v_test_tab LIMIT v_count1;
         
        

         FORALL i IN v_test_tab.FIRST .. v_test_tab.LAST SAVE EXCEPTIONS
            INSERT INTO tapdetail_tapin
                 VALUES v_test_tab (i)
              RETURNING       record_num
            BULK COLLECT INTO v_rec_num;

      EXCEPTION
         WHEN OTHERS
         THEN

      V_ERROR_CNT:=sql%bulk_exceptions.count;

      for ind in 1..v_error_cnt
      loop
      l_ind:=sql%bulk_exceptions(ind).error_index;
      insert into record_num_session
      values
      v_test_tab(l_ind).record_num;   --------PL/SQL: ORA-00904: : invalid identifier
      end loop;
      END;

           
   EXIT WHEN temp_rec_tap_cur%NOTFOUND;    
      
   END LOOP;

   COMMIT;

   p_retval :=1;
EXCEPTION
   WHEN OTHERS
   THEN
      ROLLBACK;
      p_retval := 0;
      p3_errorlog ('TAPINDETAWARE', SQLERRM, v_filename);
END;
/
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 11 2010
Added on Oct 14 2010
3 comments
1,964 views