Error ORA-06533: Subscript beyond count - Please help

Hi All,
Please help me on below error
I Created two Objects and two Type like below
CREATE OR REPLACE TYPE P_IN_OBJ AS OBJECT
A1 VARCHAR2(5),
A2 VARCHAR2(5),
A3 VARCHAR2(30));
CREATE OR REPLACE TYPE P_IN AS TABLE OF P_IN_OBJ;
CREATE OR REPLACE TYPE P_OUT_OBJ AS OBJECT
(B1 VARCHAR2(1),
B2 VARCHAR2(100),
B3 NUMBER,
B4 VARCHAR2(100));
CREATE OR REPLACE TYPE P_OUT AS TABLE OF P_OUT_OBJ;
CREATE OR REPLACE PACKAGE PKG_P1 AS
PROCEDURE PRC_P1(P_IN_VALUE IN P_IN ,
P_OUT_VALUE OUT P_OUT);
END PKG_P1;
CREATE OR REPLACE PACKAGE BODY PKG_SEG_QS AS
PROCEDURE PRC_SEG_QS(P_IN_VALUE IN P_IN ,
P_OUT_VALUE OUT P_OUT ) AS
P_OUT_VAL P_OUT := P_OUT();
element INTEGER := 1;
BEGIN
IF P_IN_VALUE.EXISTS(1) = TRUE THEN
FOR I IN 1..P_IN_VALUE.COUNT
LOOP
FOR ALL_QS IN
(SELECT E1, E2, E3, E4
FROM MV_SEG_QS MVSQ
WHERE MVSQ.Z1 = P_IN_VALUE.A1
AND MVSQ.Z2 = P_IN_VALUE.A2
AND MVSQ.Z3 = P_IN_VALUE.A3
LOOP
P_OUT_VAL(element).B1 := ALL_QS.E1;
P_OUT_VAL(element).B2 := ALL_QS.E2;
P_OUT_VAL(element).B3 := ALL_QS.E3;
P_OUT_VAL(element).B4 := ALL_QS.E4;
element := element+1;
END LOOP;
END LOOP;
END IF;
P_OUT_VALUE:= P_SEG_OUT;
END PRC_P1;
END PKG_P1;
When I call this Package I am getting the below Error
ORA-06533: Subscript beyond count
Please somebody help me in this issue its very urgent for me.
Thanks,
Anu.

Anu wrote:
Hi All,
Please help me on below error
I Created two Objects and two Type like below
CREATE OR REPLACE TYPE P_IN_OBJ AS OBJECT
A1 VARCHAR2(5),
A2 VARCHAR2(5),
A3 VARCHAR2(30));
CREATE OR REPLACE TYPE P_IN AS TABLE OF P_IN_OBJ;
CREATE OR REPLACE TYPE P_OUT_OBJ AS OBJECT
(B1 VARCHAR2(1),
B2 VARCHAR2(100),
B3 NUMBER,
B4 VARCHAR2(100));
CREATE OR REPLACE TYPE P_OUT AS TABLE OF P_OUT_OBJ;
CREATE OR REPLACE PACKAGE PKG_P1 AS
PROCEDURE PRC_P1(P_IN_VALUE IN P_IN ,
P_OUT_VALUE OUT P_OUT);
END PKG_P1;
CREATE OR REPLACE PACKAGE BODY PKG_SEG_QS AS
PROCEDURE PRC_SEG_QS(P_IN_VALUE IN P_IN ,
P_OUT_VALUE OUT P_OUT ) AS
P_OUT_VAL P_OUT := P_OUT();
element INTEGER := 1;
BEGIN
IF P_IN_VALUE.EXISTS(1) = TRUE THEN
FOR I IN 1..P_IN_VALUE.COUNT
LOOP
FOR ALL_QS IN
(SELECT E1, E2, E3, E4
FROM MV_SEG_QS MVSQ
WHERE MVSQ.Z1 = P_IN_VALUE.A1
AND MVSQ.Z2 = P_IN_VALUE.A2
AND MVSQ.Z3 = P_IN_VALUE.A3
LOOP
P_OUT_VAL(element).B1 := ALL_QS.E1;
P_OUT_VAL(element).B2 := ALL_QS.E2;
P_OUT_VAL(element).B3 := ALL_QS.E3;
P_OUT_VAL(element).B4 := ALL_QS.E4;
element := element+1;
END LOOP;
END LOOP;
END IF;
P_OUT_VALUE:= P_SEG_OUT;
END PRC_P1;
END PKG_P1;
When I call this Package I am getting the below Error
ORA-06533: Subscript beyond count
Please somebody help me in this issue its very urgent for me.
Thanks,
Anu.Anu,
Correct your package code, its not working.
Cheers,
Manik.

Similar Messages

  • Error: ORA-06533: Subscript beyond count

    when i run the below command;
    ERROR at line 1:
    ORA-06533: Subscript beyond count
    ORA-06512: at line 10
    sp_table will be like
    SPLITID DELIMITERLENGTH
    1 1
    2 1
    3 1
    4 1
    declare strx varchar2(4000) :='11111111111111111111111111111111111111111111111111111111111111111111111111111111';
    delarray np_type:=np_type(1,2,3,4,5);
    execstr varchar2(4000);
    cn cn_type :=cn_type();
    cxn cxn_type :=cxn_type();
    xpos number:=1;
    begin
    for i in 1..5 loop
    select Delimiterlength into cn(i) from sp_table where Splitid = delarray(i);
    select substr(strx,xpos,cn(i)) into cxn(i) from dual;
    execstr:='insert into test values(' || cxn(i) || ',';
    xpos:=length(cxn(i));
    end loop;
    execstr:=substr(execstr,1,length(execstr)-1);
    execstr:=execstr || ')';
    dbms_output.put_line(execstr);
    --execute immediate execstr;
    end;
    /

    Something like this?
    SET SERVEROUTPUT ON
    DROP TABLE sp_table;
    CREATE TABLE sp_table(splitid NUMBER,delimiterlength NUMBER);
    INSERT INTO sp_table values(1,4);
    INSERT INTO sp_table values(2,7);
    INSERT INTO sp_table values(3,9);
    INSERT INTO sp_table values(4,1);
    INSERT INTO sp_table values(5,2);
    INSERT INTO sp_table values(6,6);
    COMMIT;
    DECLARE
        TYPE varchar2_table IS TABLE OF VARCHAR2(120)
            INDEX BY BINARY_INTEGER;
        TYPE number_table IS TABLE OF NUMBER
            INDEX BY BINARY_INTEGER;
        delarray    number_table;
        cn          number_table;
        cxn         varchar2_table;
        xpos        NUMBER  :=1;
        strx        VARCHAR2(4000) :='11111111111111111111111111111111111111111111111111111111111111111111111111111111';
        execstr     VARCHAR2(4000);
    BEGIN
        delarray(1) := 1;
        delarray(2) := 2;
        delarray(3) := 3;
        delarray(4) := 4;
        delarray(5) := 5;
        execstr := 'insert into test values(';
        FOR i IN 1..delarray.COUNT LOOP
            SELECT  delimiterlength
            INTO    cn(i)
            FROM    sp_table
            WHERE   splitid = delarray(i);
            cxn(i)  := SUBSTR(strx,xpos,cn(i));
            execstr :=execstr || cxn(i) || ',';
            xpos    :=LENGTH(cxn(i));
        END LOOP;
        execstr := RTRIM(execstr,',')|| ')';
        dbms_output.put_line(execstr);
        --execute immediate execstr;
    END;
    insert into test values(1111,1111111,111111111,1,11)I used associative arrays, so I don't have to extend them.
    Edited by: Marwim on 25.10.2012 10:17

  • ORA-06533: Subscript beyond count.

    Hi ,
    I am getting an error ORA-06533: Subscript beyond count.
    I read a few post and tried extending the collections as suggested in various post but it doesnt seem to be helping.
    Can anyone suggest where i am going wrong. below is my piece of code.
      PROCEDURE validate_records ( p_retcode                 OUT VARCHAR2
                                 , p_errbuf                  OUT VARCHAR2
      IS
      g_ret_success                     CONSTANT  VARCHAR2(1)    := '0';
      g_ret_exception                   CONSTANT  VARCHAR2(1)    := '2';
      g_procedure                       VARCHAR2(30)             := g_validate_rec;
      l_batch_name                      ra_batch_sources_all.name%TYPE;
      l_supplier_payee_code             hz_cust_accounts_all.cust_account_id%TYPE;
      l_supplier_code                   hz_cust_accounts_all.cust_account_id%TYPE;
      l_term_name                       ra_terms.name%TYPE;
      l_term                            ra_terms.name%TYPE;
      l_receipt_method                  fnd_lookup_values.meaning%TYPE;
      l_func_seg                        fnd_flex_values_vl.attribute1%TYPE;
      l_tax_inc_flag                    fnd_flex_values_vl.attribute3%TYPE;
      l_set_of_books_id                 gl_ledgers.ledger_id%TYPE;
      l_cust_bill_to_add_ref            hz_cust_acct_sites.orig_system_reference%TYPE;
      l_cust_ship_to_add_ref            hz_cust_acct_sites.orig_system_reference%TYPE;
      l_costcenter                      fnd_flex_values_vl.attribute1%TYPE;
      l_company                         fnd_flex_values_vl.attribute2%TYPE;
      l_account                         fnd_flex_values_vl.attribute1%TYPE;
      l_function                        fnd_flex_values_vl.attribute2%TYPE;
      l_cust_trx_type_name              fnd_flex_values_vl.attribute4%TYPE;
      l_bill_sku                        fnd_flex_values_vl.attribute5%TYPE;
      l_ship_from                       fnd_flex_values_vl.attribute6%TYPE;
      l_inventory_id                    NUMBER;
      l_warehouse_id                    NUMBER;
      l_date                            DATE;
      l_date_term                       DATE;
      l_combination_check               VARCHAR2(10);
      l_location_ship                   VARCHAR2(10);
      l_location_bill                   VARCHAR2(10);
      l_line_type                       VARCHAR2(10);
      l_error_message                   VARCHAR2(4000);
      l_err_stage                       VARCHAR2(4000);
      l_return_status                   VARCHAR2(1);
      l_errbuf                          VARCHAR2(4000);
      l_retcode                         VARCHAR2(10);
      l_cnt                             NUMBER;
      l_update_tax                      VARCHAR2(1);
      l_error_count                     NUMBER;
      ex_dml_errors                     EXCEPTION;
      PRAGMA EXCEPTION_INIT(ex_dml_errors, -24381);
      CURSOR c_get_bill_data
          IS
      SELECT program_type
             , dc
             , CONCAT(supplier_code,'SMF') supplier_code1
             , CONCAT(substr(supplier_payee_code,0,4),'SMF')supplier_payee_code1
             , supplier_code
             , supplier_payee_code
             , line_type
             , payment_type
             , sfm_bill_number
             , due_date
             , ROUND(total_inv_recv_amt,2)  invoice_amount
             , record_status
             , ROWID
        FROM xxom_ar_sfs03_bill_info_stg
       WHERE record_status     = g_new_rec_status
         AND  conc_request_id  = fnd_global.conc_request_id;
      CURSOR c_new_rec_count
          IS
      SELECT COUNT(*)
        FROM xxom_ar_sfs03_bill_info_stg
       WHERE record_status      = g_new_rec_status
         AND conc_request_id    = fnd_global.conc_request_id;
    -- to fetch total invoice lines for an invoice
      CURSOR c_get_invoice_no(p_bill in varchar2)
          IS
      SELECT sfm_bill_number
        FROM xxom_ar_sfs03_bill_info_stg
       WHERE sfm_bill_number   = p_bill
         AND conc_request_id   = fnd_global.conc_request_id;
    -- to fetch total err lines for an invoice
      CURSOR c_get_err_line
          IS
      SELECT sfm_bill_number
        FROM xxom_ar_sfs03_bill_info_stg
       WHERE record_status    = 'E'
         AND conc_request_id  = fnd_global.conc_request_id;
      CURSOR c_batch_src_exist
          IS
      SELECT name
        FROM ra_batch_sources
       WHERE name                = g_batch_source_name
         AND batch_source_type   = 'FOREIGN'
         AND status              = 'A';
      CURSOR c_set_book_id_exist
          IS
      SELECT gl.ledger_id
        FROM gl_ledgers          gl
           , hr_operating_units  hru
       WHERE gl.ledger_id        = hru.set_of_books_id
         AND hru.organization_id = g_org_id
         AND gl.name             = g_ledger_name;
      CURSOR c_cust_num_exist( p_cust_no   IN hz_cust_accounts.orig_system_reference%TYPE
          IS
      SELECT cust_account_id 
        FROM hz_parties       HP 
           , hz_cust_accounts HCC 
       WHERE HP.party_id               = HCC.party_id 
         AND HP.status                 = 'A'
         AND HCC.status                = 'A'
         AND HCC.orig_system_reference LIKE p_cust_no;
        CURSOR c_cust_payee_exist( p_cust_no   IN hz_cust_accounts.attribute2%TYPE)
          IS
         SELECT cust_account_id 
        FROM hz_parties       HP 
           , hz_cust_accounts HCC 
       WHERE HP.party_id               = HCC.party_id 
         AND HP.status                 = 'A'
         AND HCC.status                = 'A'
         AND HCC.orig_system_reference = p_cust_no;
      CURSOR c_pgm_type_exist(p_pgm_type IN VARCHAR)
          IS
      SELECT FFVV.attribute1
           , FFVV.attribute2
           , FFVV.attribute3
           , FFVV.attribute4
           , FFVV.attribute5
           , FFVV.attribute6
       FROM fnd_flex_value_sets FFVS
          , fnd_flex_values_vl  FFVV
       WHERE flex_value_set_name    = g_pgm_valueset
         AND FFVV.flex_value_set_id = FFVS.flex_value_set_id
         AND FFVV.flex_value        = p_pgm_type
         AND enabled_flag           = 'Y'
         AND TRUNC(SYSDATE) BETWEEN NVL(start_date_active,TRUNC(SYSDATE))
                                AND NVL(end_date_active,TRUNC(SYSDATE));
      CURSOR c_validate_dc(p_dc IN fnd_flex_values_vl.flex_value%TYPE)
          IS 
      SELECT FFVV.attribute1
           , FFVV.attribute2
        FROM fnd_flex_value_sets FFVS
           , fnd_flex_values_vl  FFVV
       WHERE flex_value_set_name    = 'OM_LEGACY_DC'
         AND FFVV.flex_value_set_id = FFVS.flex_value_set_id
         AND FFVV.flex_value        = p_dc
         AND enabled_flag           = 'Y';
      CURSOR c_get_location( p_cust_id   IN hz_cust_accounts.cust_account_id%TYPE
                           , p_location_use  IN  VARCHAR2
          IS
      SELECT  HCAS.orig_system_reference
        FROM  hz_cust_acct_sites  HCAS
           ,  hz_cust_site_uses   HCSU
       WHERE  cust_account_id        = p_cust_id
         AND  HCAS.cust_acct_site_id = HCSU.cust_acct_site_id
         AND  HCAS.status            = 'A'
         AND  primary_flag           = 'Y'
         AND  HCSU.site_use_code     = p_location_use;
      CURSOR c_validate_line_type(p_line_type IN VARCHAR2)
          IS
      SELECT flv.lookup_code
        FROM fnd_lookup_values flv
       WHERE flv.lookup_type   = g_line_typ_lookup
         AND flv.lookup_code   = p_line_type
         AND flv.enabled_flag  = 'Y'
         AND TRUNC(SYSDATE) BETWEEN NVL(flv.start_date_active,TRUNC(SYSDATE))
                                AND NVL(flv.end_date_active,TRUNC(SYSDATE));
      CURSOR c_validate_receipt_type(p_receipt_method IN  VARCHAR2)
          IS
      SELECT flv.meaning
        FROM fnd_lookup_values flv
       WHERE flv.lookup_type   = g_receipt_lookup
         AND flv.lookup_code   = p_receipt_method
         AND flv.enabled_flag  = 'Y'
         AND TRUNC(SYSDATE) BETWEEN NVL(flv.start_date_active,TRUNC(SYSDATE))
                                AND NVL(flv.end_date_active,TRUNC(SYSDATE));
      CURSOR c_validate_term_name (p_term_name IN ra_terms.name%TYPE)
          IS
      SELECT name
        FROM ra_terms
       WHERE name = p_term_name
         AND TRUNC(SYSDATE) BETWEEN NVL(start_date_active,TRUNC(SYSDATE))
                                AND TRUNC(SYSDATE);
      CURSOR c_check_combination( p_attribute IN ra_customer_trx_all.attribute1%TYPE
          IS
      SELECT 1
        FROM ra_customer_trx_all
       WHERE attribute1         = p_attribute
         AND attribute_category = 'SFM';
      CURSOR c_get_inventory_item_id (p_org_code IN VARCHAR2
                                     ,p_item_description IN VARCHAR2)
        IS
      SELECT msi.inventory_item_id
           , msi.organization_id warehouse_id
        FROM mtl_system_items_b msi
           , hr_all_organization_units haou
           , org_organization_definitions ood
       WHERE  haou.organization_id  = msi.organization_id
         AND haou.organization_id   = ood.organization_id
         AND ood.disable_date IS NULL
         AND msi.enabled_flag       = 'Y'
         AND ood.organization_code  = p_org_code
         AND segment1               = p_item_description
         AND TRUNC(SYSDATE) BETWEEN NVL(msi.start_date_active,TRUNC(SYSDATE))
                                AND NVL(msi.end_date_active,TRUNC(SYSDATE));
      TYPE type_bill_dtl_update_tbl IS RECORD
        ledger_id                 gl_ledgers.ledger_id%TYPE                      
      , cust_ship_to_add_ref      hz_cust_acct_sites_all.orig_system_reference%TYPE
      , pay_term_name             ra_terms.name%TYPE
      , receipt_method            fnd_lookup_values.meaning%TYPE
      , cust_bill_to_add_ref      hz_cust_acct_sites_all.orig_system_reference%TYPE
      , company_seg               gl_code_combinations.segment1%TYPE
      , costcenter_seg            gl_code_combinations.segment2%TYPE
      , function_seg              gl_code_combinations.segment3%TYPE
      , account_seg               gl_code_combinations.segment4%TYPE
      , cust_trx_type             fnd_flex_values_vl.attribute4%TYPE
      , inventory_item_id         fnd_flex_values_vl.attribute5%TYPE
      , warehouse_id              fnd_flex_values_vl.attribute6%TYPE
      , tax_flag                  VARCHAR2(1)
      , invoice_amount            NUMBER
      , record_status             VARCHAR2(1)
      , error_message             VARCHAR2(1000)
      , row_id                    ROWID
      TYPE t_get_bill_data IS TABLE OF c_get_bill_data%ROWTYPE;
      l_get_bill_data t_get_bill_data:= t_get_bill_data() ;
      TYPE t_bill_dtl_update_tbl IS TABLE OF type_bill_dtl_update_tbl;-- INDEX BY BINARY_INTEGER;
      l_bill_dtl_update_rec t_bill_dtl_update_tbl:= t_bill_dtl_update_tbl() ;
      TYPE t_bill_no  IS TABLE OF c_get_invoice_no%ROWTYPE;
      l_bill_no t_bill_no;
      TYPE t_bill_err_lines  IS TABLE OF c_get_err_line%ROWTYPE;
      l_bill_err_lines t_bill_err_lines;
      BEGIN
      p_retcode                := g_ret_success;
      p_errbuf                 := NULL;
      g_procedure              := g_validate_rec;
      l_set_of_books_id        := NULL;
      l_cnt                    := 1;
      OPEN c_new_rec_count;
      FETCH c_new_rec_count INTO g_new_rec_count;
      CLOSE c_new_rec_count;
      OPEN c_get_bill_data;
      FETCH c_get_bill_data BULK COLLECT INTO l_get_bill_data;
      CLOSE c_get_bill_data;
      FOR i IN 1..l_get_bill_data.COUNT LOOP
       FND_FILE.PUT_LINE (FND_FILE.LOG,'count'||i);
      l_get_bill_data.EXTEND;
      l_return_status          := NULL;
      l_batch_name             := NULL;
      l_supplier_code          := NULL;
      l_supplier_payee_code    := NULL;
      l_cust_bill_to_add_ref   := NULL;
      l_cust_ship_to_add_ref   := NULL;
      l_line_type              := NULL;
      l_combination_check      := NULL;
      l_term_name              := NULL;
      l_receipt_method         := NULL;
      l_tax_inc_flag           := NULL;
      l_update_tax             := NULL;
      l_date_term              := NULL;
      l_date                   := NULL;
      l_term                   := NULL;
      l_cust_trx_type_name     := NULL;
      l_bill_sku               := NULL;
      l_ship_from              := NULL;
      l_inventory_id           := NULL;
      l_warehouse_id           := NULL;
      l_location_ship          := 'SHIP_TO';
      l_location_bill          := 'BILL_TO';
      l_err_stage              := NULL;
      l_error_message          := NULL;
      l_costcenter             := NULL;
      l_company                := NULL;
      l_account                := NULL; 
      l_function               := NULL;
      -- Validation for set_of_books and org_id
      l_err_stage := 'Validation for Set_of_books_id and org_id .' ;
      IF (g_ledger_name IS NOT NULL) AND (g_org_id IS NOT NULL) THEN
        OPEN c_set_book_id_exist;
        FETCH c_set_book_id_exist into l_set_of_books_id;
        CLOSE c_set_book_id_exist;
        IF l_set_of_books_id IS NULL THEN
          p_errbuf        := 'Please check the setup for set_of_books name'||g_ledger_name;
          p_retcode       := g_ret_exception;
          xxom_int_common.post_record_msg( p_message  => 'Please check the setup for set_of_books name :'||g_ledger_name
                                         , p_severity => xxom_int_common.c_level_error
        END IF;--set of books
      ELSE
        p_errbuf        := 'Please check the setup for set_of_books name'||g_ledger_name||'and org_id '||g_org_id||'cannot be null';
        p_retcode       := g_ret_exception;
        xxom_int_common.post_record_msg( p_message  => 'Please check the setup for set_of_books name'||g_ledger_name||'and org_id '||g_org_id||'cannot be null'
                                       , p_severity => xxom_int_common.c_level_error
      END IF;--Validation for set_of_books and org_id
      --Validation for batch name
      l_err_stage := 'Validation for batch name.' ;
      IF g_batch_source_name IS NOT NULL THEN
        OPEN c_batch_src_exist;
        FETCH c_batch_src_exist INTO l_batch_name ;
        CLOSE c_batch_src_exist;
        IF l_batch_name IS NULL THEN
          p_errbuf        := 'Please check the setup for batch_source_name'||g_batch_source_name;
          p_retcode       := g_ret_exception;
          xxom_int_common.post_record_msg( p_message  => 'Please check the setup for batch_source_name'||g_batch_source_name
                                         , p_severity => xxom_int_common.c_level_error
        END IF;
      END IF ;--l_get_bill_data(i).batch_source_name IS NOT NULL
      --Validation for supplier code
      l_err_stage := 'Validation for Supplier Code.';
      IF l_get_bill_data(i).supplier_code IS NOT NULL THEN
        OPEN c_cust_num_exist( p_cust_no => l_get_bill_data(i).supplier_code1
        FETCH c_cust_num_exist INTO l_supplier_code;
        CLOSE c_cust_num_exist;
        IF l_supplier_code IS NULL THEN
          l_error_message := l_error_message||'Supplier Code ('||l_get_bill_data(i).supplier_code||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'Supplier Code is not valid : '||l_get_bill_data(i).supplier_code||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        ELSE
          OPEN c_get_location( p_cust_id      => l_supplier_code
                             , p_location_use => l_location_ship);
          FETCH c_get_location INTO l_cust_ship_to_add_ref;
          CLOSE c_get_location;
          IF l_cust_ship_to_add_ref IS NULL THEN
            l_error_message := l_error_message||'Customer ship to location is null.';
            xxom_int_common.post_record_msg( p_message  => 'Customer ship to location is null. '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                           , p_severity => xxom_int_common.c_level_warning
          END IF;
        END IF ;
      END IF;-- l_get_bill_data(i).supplier_code IS NOT NULL
      --Validation for Supplier payee code
      l_err_stage := 'Validation for Supplier payee code.';
      IF l_get_bill_data(i).supplier_payee_code IS NOT NULL THEN
        OPEN c_cust_payee_exist ( p_cust_no => l_get_bill_data(i).supplier_payee_code1);
        FETCH c_cust_payee_exist INTO l_supplier_payee_code;
        CLOSE c_cust_payee_exist;
        IF l_supplier_payee_code IS NULL THEN
          l_error_message := l_error_message||'Supplier Payee Code ('||l_get_bill_data(i).supplier_payee_code||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'Supplier Payee Code is not valid: '||l_get_bill_data(i).supplier_payee_code||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        ELSE
          OPEN c_get_location( p_cust_id      => l_supplier_payee_code
                             , p_location_use => l_location_bill);
          FETCH c_get_location INTO l_cust_bill_to_add_ref;
          CLOSE c_get_location;
          IF l_cust_bill_to_add_ref IS NULL THEN
            l_error_message := l_error_message||'Customer bill to location is null.';
            xxom_int_common.post_record_msg( p_message  => 'Customer bill to location is null. '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                           , p_severity => xxom_int_common.c_level_warning
          END IF;
        END IF;
      ELSE
        l_error_message := l_error_message ||' Supplier Payee code is null';
        xxom_int_common.post_record_msg( p_message  => 'Supplier Payee code is null. '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF ;--supplier_payee_code IS NOT NULL
      --Validation for DC
      l_err_stage := 'Validation for DC.';
      IF l_get_bill_data(i).dc IS NOT NULL THEN
        OPEN c_validate_dc(p_dc => l_get_bill_data(i).dc);
        FETCH c_validate_dc INTO l_costcenter
                               , l_company;
        CLOSE c_validate_dc;
        IF l_costcenter IS NULL THEN
          l_error_message := l_error_message||'DC ('||l_get_bill_data(i).dc||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'DC is not valid : '||l_get_bill_data(i).dc||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        END IF;
      ELSE
        l_error_message := l_error_message||'DC is null';
        xxom_int_common.post_record_msg( p_message  => 'DC is null. '||l_get_bill_data(i).dc||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF;
      --Validation for program type
      l_err_stage := 'Validation for program type.';
      IF l_get_bill_data(i).program_type IS NOT NULL THEN
        OPEN c_pgm_type_exist(p_pgm_type => l_get_bill_data(i).program_type);
        FETCH c_pgm_type_exist INTO l_account
                                  , l_function
                                  , l_tax_inc_flag
                                  , l_cust_trx_type_name
                                  , l_bill_sku
                                  , l_ship_from;
        CLOSE c_pgm_type_exist;
      --to fetch warehouse_id and inventory_id
        OPEN c_get_inventory_item_id(p_org_code => l_ship_from
                                    ,p_item_description =>l_bill_sku  );                       
        FETCH c_get_inventory_item_id INTO l_inventory_id
                                          ,l_warehouse_id; 
        CLOSE c_get_inventory_item_id;
        IF l_tax_inc_flag IS NULL THEN
          l_error_message := l_error_message||'Program type ('||l_get_bill_data(i).program_type||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'Program type is not valid : '||l_get_bill_data(i).program_type||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        ELSIF l_tax_inc_flag ='No' THEN
          l_update_tax   := 'N';
        ELSE
          l_update_tax   := 'Y';
        END IF;
      ELSE
        l_error_message := l_error_message||'Program type is null';
        xxom_int_common.post_record_msg( p_message  => 'Program type is null. '||l_get_bill_data(i).program_type||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF; --IF l_get_bill_data.program_type IS NOT NULL
      --Validation for Line type
      l_err_stage := 'Validation for Line type.'; 
      IF l_get_bill_data(i).line_type IS NOT NULL THEN
        OPEN c_validate_line_type(p_line_type => l_get_bill_data(i).line_type);
        FETCH c_validate_line_type INTO l_line_type;
        CLOSE c_validate_line_type;
        IF l_line_type IS NULL THEN
          l_error_message := l_error_message||'Line type ('||l_get_bill_data(i).line_type||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'Line type is not valid : '||l_get_bill_data(i).line_type||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        END IF;
      ELSE
        l_error_message := l_error_message ||' Line type is null';
        xxom_int_common.post_record_msg( p_message  => 'Line type is null '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF;--l_get_bill_data(i).line_type IS NOT NULL
      --Validation for Payment Type
      l_err_stage := 'Validation for Payment Type.';
      IF l_get_bill_data(i).payment_type IS NOT NULL AND l_get_bill_data(i).payment_type IN ('D') THEN
      debug_print('Receipt'||i||l_get_bill_data(i).payment_type);
        OPEN c_validate_receipt_type(p_receipt_method => l_get_bill_data(i).payment_type);
        FETCH c_validate_receipt_type INTO l_receipt_method;
        CLOSE c_validate_receipt_type;
        IF l_receipt_method IS NULL THEN
          l_error_message := l_error_message||'Payment type ('||l_get_bill_data(i).payment_type||' ) is not valid.';
          xxom_int_common.post_record_msg( p_message  => 'Payment type is not valid : '||l_get_bill_data(i).payment_type||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                         , p_severity => xxom_int_common.c_level_warning
        END IF ;
      END IF;--l_get_bill_data(i).payment_type NOT NULL
      --Validation for term name
      IF l_get_bill_data(i).due_date IS NOT NULL THEN
        IF l_get_bill_data(i).due_date <= 0 THEN
          l_term_name:='IMMEDIATE';
        ELSIF l_get_bill_data(i).due_date BETWEEN 1 AND 30 THEN
          l_term_name:='NET30';
        ELSIF l_get_bill_data(i).due_date BETWEEN 31 AND 60 THEN
          l_term_name:='NET60';
        ELSIF l_get_bill_data(i).due_date BETWEEN 61 AND 90 THEN
          l_term_name:='NET90';
        ELSIF l_get_bill_data(i).due_date BETWEEN 91 AND 120 THEN
          l_term_name:='NET120';
        ELSIF l_get_bill_data(i).due_date BETWEEN 121 AND 150 THEN
          l_term_name:='NET150';
        ELSIF l_get_bill_data(i).due_date BETWEEN 151 AND 180 THEN
          l_term_name:='NET180';
        ELSIF l_get_bill_data(i).due_date BETWEEN 181 AND 210 THEN
          l_term_name:='NET210';
        ELSIF l_get_bill_data(i).due_date BETWEEN 211 AND 240 THEN
          l_term_name:='NET240';
        ELSE
          l_term_name:='NET365';
        END IF;  
        IF l_term_name IS NOT NULL THEN
          OPEN c_validate_term_name(p_term_name =>l_term_name);
          FETCH c_validate_term_name INTO l_term;
          CLOSE c_validate_term_name;
          IF l_term IS NULL THEN
            l_error_message := l_error_message ||'The term name is not a valid term';
            xxom_int_common.post_record_msg( p_message  => 'The term name is not a valid term '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                           , p_severity => xxom_int_common.c_level_warning
          END IF;
        END IF;--l_term_name IS NOT NULL THEN 
      ELSE
        l_error_message := l_error_message ||'The data provided for term name is null';
        xxom_int_common.post_record_msg( p_message  => 'The data provided for term name is null '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF; --l_get_bill_data(i).due_date IS NOT NULL */
      --Validation for unique interface_line_context and interface_line_attribute1 combination AND Amount
    IF l_get_bill_data(i).invoice_amount IS NOT NULL THEN
        OPEN c_check_combination( p_attribute=> l_get_bill_data(i).sfm_bill_number
        FETCH c_check_combination INTO l_combination_check;
        CLOSE c_check_combination;
        IF l_combination_check IS NOT NULL THEN
          l_error_message := l_error_message||'The interface_line_context and interface_header_attribute1 combination ('||l_get_bill_data(i).sfm_bill_number||' and '|| ' SFM' ||' ) already exist .Please provide different combination';
          xxom_int_common.post_record_msg( p_message  => 'The interface_line_context and interface_header_attribute1 combination already exist .Please provide different combination ' ||l_get_bill_data(i).sfm_bill_number ||' and '||'SFM'
                                         , p_severity => xxom_int_common.c_level_warning
        END IF;
      ELSE
        l_error_message := l_error_message||'Amount cannot be null';
        xxom_int_common.post_record_msg( p_message  => 'Amount cannot be null '||' (Sfm Bill Number : '||l_get_bill_data(i).sfm_bill_number||')'
                                       , p_severity => xxom_int_common.c_level_warning
      END IF; --l_get_bill_data(i).total_inv_recv_amt IS NOT NULL 
      /* end of validation*/
      l_bill_dtl_update_rec.EXTEND;
      l_bill_dtl_update_rec(l_cnt).ledger_id              := l_set_of_books_id;
      l_bill_dtl_update_rec(l_cnt).cust_ship_to_add_ref   := l_cust_ship_to_add_ref;
      l_bill_dtl_update_rec(l_cnt).cust_bill_to_add_ref   := l_cust_bill_to_add_ref;
      l_bill_dtl_update_rec(l_cnt).receipt_method         := l_receipt_method;
      l_bill_dtl_update_rec(l_cnt).company_seg            := l_company;
      l_bill_dtl_update_rec(l_cnt).account_seg            := l_account;
      l_bill_dtl_update_rec(l_cnt).costcenter_seg         := l_costcenter;
      l_bill_dtl_update_rec(l_cnt).function_seg           := l_function;
      l_bill_dtl_update_rec(l_cnt).tax_flag               := l_update_tax;
      l_bill_dtl_update_rec(l_cnt).pay_term_name          := l_term;       
      l_bill_dtl_update_rec(l_cnt).cust_trx_type          := l_cust_trx_type_name;
      l_bill_dtl_update_rec(l_cnt).inventory_item_id      := l_inventory_id;
      l_bill_dtl_update_rec(l_cnt).warehouse_id           := l_warehouse_id;
      l_bill_dtl_update_rec(l_cnt).invoice_amount         := l_get_bill_data(i).invoice_amount;
      l_bill_dtl_update_rec(l_cnt).row_id                 := l_get_bill_data(i).rowid;
      IF l_error_message IS NULL THEN
        l_bill_dtl_update_rec(l_cnt).record_status           := g_valid_status;
        l_bill_dtl_update_rec(l_cnt).error_message           := NULL;
      ELSE
        l_bill_dtl_update_rec(l_cnt).record_status           := g_err_status;
        l_bill_dtl_update_rec(l_cnt).error_message           := l_error_message;
      END IF;
      l_cnt := l_cnt + 1;
      END LOOP;
      FORALL i in 1..l_bill_dtl_update_rec.COUNT SAVE EXCEPTIONS
      UPDATE xxom_ar_sfs03_bill_info_stg
         SET cust_bill_to_add_ref      = l_bill_dtl_update_rec(i).cust_bill_to_add_ref
           , cust_ship_to_add_ref      = l_bill_dtl_update_rec(i).cust_ship_to_add_ref
           , term_name                 = l_bill_dtl_update_rec(i).pay_term_name
           , receipt_method            = l_bill_dtl_update_rec(i).receipt_method
           , set_of_books_id           = l_bill_dtl_update_rec(i).ledger_id
           , company_seg               = l_bill_dtl_update_rec(i).company_seg
           , account_seg               = l_bill_dtl_update_rec(i).account_seg
           , costcenter_seg            = l_bill_dtl_update_rec(i).costcenter_seg
           , function_seg              = l_bill_dtl_update_rec(i).function_seg
           , cust_trx_type             = l_bill_dtl_update_rec(i).cust_trx_type  
           , inventory_item_id         = l_bill_dtl_update_rec(i).inventory_item_id
           , warehouse_id              = l_bill_dtl_update_rec(i).warehouse_id
           , tax_flag                  = l_bill_dtl_update_rec(i).tax_flag
           , total_inv_recv_amt        = l_bill_dtl_update_rec(i).invoice_amount
           , record_status             = l_bill_dtl_update_rec(i).record_status
           , error_message             = l_bill_dtl_update_rec(i).error_message
           , conc_request_id           = fnd_global.conc_request_id
           , last_update_date          = SYSDATE
           , last_updated_by           = FND_GLOBAL.USER_ID
       WHERE ROWID = l_bill_dtl_update_rec(i).row_id;
      COMMIT;
      -- Submitting the invoice_error procedure at end of validate procedure.
      debug_print('Submitting the invoice_error procedure at end of validate_records procedure. ');
      --reject all line of an invoice with a single error line
      OPEN c_get_err_line;
      FETCH c_get_err_line BULK COLLECT INTO  l_bill_err_lines;
      CLOSE c_get_err_line;
      FOR i IN 1..l_bill_err_lines.COUNT LOOP
    OPEN c_get_invoice_no(p_bill =>l_bill_err_lines(i).sfm_bill_number );
    FETCH c_get_invoice_no BULK COLLECT INTO  l_bill_no;
    CLOSE c_get_invoice_no;
      FOR j IN 1..l_bill_no.COUNT LOOP
      UPDATE xxom_ar_sfs03_bill_info_stg
         SET error_message    = NULL
           , record_status    ='E'
           , last_update_date = SYSDATE
       WHERE record_status    = 'V'
         AND sfm_bill_number = l_bill_no(i).sfm_bill_number;
      COMMIT;
    END LOOP;
    END LOOP;
      EXCEPTION
        WHEN ex_dml_errors THEN
        l_error_count := SQL%BULK_EXCEPTIONS.count;
        FOR i IN 1 .. l_error_count LOOP
         l_error_message := l_error_message||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE);
        END LOOP;--OR i IN 1 .. l_error_count LOOP
        WHEN OTHERS THEN
          IF c_get_bill_data%ISOPEN THEN
            CLOSE c_get_bill_data;
          END IF;
        IF c_batch_src_exist%ISOPEN THEN
          CLOSE c_batch_src_exist;
        END IF;
        IF c_set_book_id_exist%ISOPEN THEN
         CLOSE c_set_book_id_exist;
        END IF;
        IF c_get_location%ISOPEN THEN
          CLOSE c_get_location;
        END IF;
        IF c_validate_line_type%ISOPEN THEN
         CLOSE c_validate_line_type;
        END IF;
        IF c_validate_receipt_type%ISOPEN THEN
         CLOSE c_validate_receipt_type;
        END IF;
        IF c_check_combination%ISOPEN THEN
         CLOSE c_check_combination;
        END IF;
        IF c_validate_receipt_type%ISOPEN THEN
         CLOSE c_validate_receipt_type;
        END IF;
        IF c_pgm_type_exist%ISOPEN THEN
         CLOSE c_pgm_type_exist;
        END IF;
        IF c_validate_term_name%ISOPEN THEN
         CLOSE c_validate_term_name;
        END IF;
        IF c_new_rec_count%ISOPEN THEN
         CLOSE c_new_rec_count;
        END IF;
        IF c_cust_payee_exist%ISOPEN THEN
         CLOSE c_cust_payee_exist;
        END IF;
        IF c_get_invoice_no%ISOPEN THEN
         CLOSE c_get_invoice_no;
        END IF;
        IF c_get_err_line%ISOPEN THEN
          CLOSE c_get_err_line;
        END IF;
      p_retcode := g_ret_exception;
      p_errbuf  := 'The Error at XXOM_SFS_03_BILL_INFO_PKG.validate_records ' || l_err_stage|| '-'|| SUBSTR ( SQLERRM ,1,240 );
      END validate_records;
    Thanks in advance.

    Another version
    SET SERVEROUTPUT ON
    DECLARE
       TYPE empno_nt IS TABLE OF VARCHAR2 (40);
       l_empno_nt   empno_nt;
    BEGIN
       l_empno_nt := empno_nt ('Suri');
       dbms_output.put_line(l_empno_nt(1));
    END;
    Enhanced version:
    DECLARE
       TYPE empno_nt IS TABLE OF VARCHAR2 (40);
       l_empno_nt   empno_nt;
    BEGIN
       l_empno_nt := empno_nt ('Suri', 'Test','Ranit');
       FOR rec IN l_empno_nt.FIRST .. l_empno_nt.LAST
       LOOP
          DBMS_OUTPUT.put_line (l_empno_nt (rec));
       END LOOP;
    END;
    Simplified version :
    select * from table( sys.odcivarchar2list('Suri','Test','Ranit') ) ;
    Cheers,
    Manik.
    Message was edited by: Manik

  • Varray ORA-06533: Subscript beyond count

    Hi all
    In my package body i've declared
    create or replace package body mng_res_pack
    is
    TYPE rest_ans_type IS VARRAY(5) OF NUMBER(1);
    rest_ans rest_ans_type:=rest_ans_type();
    PROCEDURE fetch_rest_data
    IS
    rest_rec restore_users%ROWTYPE;
    MONE NUMBER :=0;
    BEGIN
    FOR I IN 1..5
    LOOP
    DBMS_OUTPUT.PUT_LINE ('HERE'||' '||rest_ans(i));
    END LOOP;
    end fetch_rest_data;
    end mng_res_pack;when i'm running the procedure i'm getting the error
    ERROR at line 1:
    ORA-06533: Subscript beyond count
    ORA-06512: at "MNG_RES_PACK", line 46
    why ?
    the varray size is 5 , and i've also initialized it ?
    please Help
    Thanks In Advanced
    Naama

    >
    even though i didn't initialize the varray with numbers , i stil i declare it as a size of 5 .
    i still don't understand why it write that it out of limit. null is only the value , not the size of the varray.
    It should have looped 5 times and display null , no ?
    >
    No - the VARRAY itself is NULL - meaning there are no entries to access. You can't loop through the entries because there aren't any.
    The declared size of 5 is simply the maximum number of entries the VARRAY can ever have - but it does not create any entries; you have to do that.
    See Varrays in the PL/SQL language doc
    http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/composites.htm#CHDEIJHD
    >
    An uninitialized varray variable is a null collection. You must initialize it, either by making it empty or by assigning a non-NULL value to it. For details, see "Collection Constructors" and "Assigning Values to Collection Variables".

  • SDO_TUNE.EXTENT_OF returns ORA-06533: Subscript beyond count

    Hi,
    I'm trying to get the MBR of a dataset I've just loaded via an Oracle dump file from another source. I am using sdo_tune.extent_of to get the information, but the following error message is returned:
    select sdo_tune.extent_of('LR_PRM_IACS','GEOM') from dual
    ERROR at line 1:
    ORA-06533: Subscript beyond count
    ORA-06512: at "MDSYS.SDO_TUNE", line 1410
    I've looked up the meaning of the error and am none the wiser. There are just over 790000 records in the table. This shouldn't be too big to be handled, or is this possible? How else can I get the MBR for the dataset?
    Many thanks
    Sharon

    Hi Andriy
    I am Jorge Barba
    The author of the note you are following to setup the NCI demo.
    1. Regarding errors in sql*loader: Total logical records rejected: 55844
    We are aware of that and we just ignored those errors as this was done just for demo purposes.
    2. Regarding the second error
    Can you try the procedure in the tutorial, Use this link to go to the tutorial, build_patients sections:
    http://www.oracle.com/technology/obe/11gr1_db/datamgmt/nci_semantic_network/nci_semantics_les01.htm#t3
    If this still gives error, try the query alone to see if still gives the same error
    Regards!
    Jorge

  • ORA -06533 Subscript beyond control

    Hi folks,
    I got ORA -06533 Subscript beyond control .Please help me out.
    create or replace procedure p_mon_ext is
    type p_mon_type is varray(25) of varchar2(25);
    p_mon p_mon_type;
    idx number := 1;
    begin
    p_mon := p_mon_type();
         for i in 1..12
         loop
    select to_char(SYSDATE, 'MONTH') into p_mon(i) from Dual;
    p_mon.extend;
    end loop;
    forall i in 1..p_mon.count
         insert into t1 values (p_mon(i));
         commit;
    end;

    EXTEND has to precede any operations with elements:
    SQL> edit
    Wrote file afiedt.buf
      1  create or replace procedure p_mon_ext is
      2  type p_mon_type is varray(25) of varchar2(25);
      3  p_mon p_mon_type;
      4  idx number := 1;
      5  begin
      6  p_mon := p_mon_type();
      7  for i in 1..12
      8  loop
      9  select to_char(SYSDATE, 'MONTH') into p_mon(i) from Dual;
    10  p_mon.extend;
    11  end loop;
    12* end;
    SQL> /
    Procedure created.
    SQL> exec p_mon_ext
    BEGIN p_mon_ext; END;
    ERROR at line 1:
    ORA-06533: Subscript beyond count
    ORA-06512: at "SCOTT.P_MON_EXT", line 9
    ORA-06512: at line 1
    SQL> edit
    Wrote file afiedt.buf
      1  create or replace procedure p_mon_ext is
      2  type p_mon_type is varray(25) of varchar2(25);
      3  p_mon p_mon_type;
      4  idx number := 1;
      5  begin
      6  p_mon := p_mon_type();
      7  for i in 1..12
      8  loop
      9  p_mon.extend;
    10  select to_char(SYSDATE, 'MONTH') into p_mon(i) from Dual;
    11  end loop;
    12* end;
    SQL> /
    Procedure created.
    SQL> exec p_mon_ext
    PL/SQL procedure successfully completed.
    SQL> edit
    Wrote file afiedt.buf
      1  create or replace procedure p_mon_ext is
      2  type p_mon_type is varray(25) of varchar2(25);
      3  p_mon p_mon_type;
      4  idx number := 1;
      5  begin
      6  p_mon := p_mon_type();
      7  p_mon.extend(12);
      8  for i in 1..12
      9  loop
    10  select to_char(SYSDATE, 'MONTH') into p_mon(i) from Dual;
    11  end loop;
    12* end;
    SQL> /
    Procedure created.
    SQL> exec p_mon_ext
    PL/SQL procedure successfully completed.Rgds.

  • Subscript beyond count

    Hello.
    I have a problem querying cube data in BI Answer and I need urgent help.
    I use OWB 10r2 to create cube, but when I deploy cube I receive this error:
    ORA-06533:Subscript beyond count
    ORA-06512:at "OLAPSYS.DBMS_ODM"
    Please help me.

    Hi ,
    From the error message ,it seems to me that it is DB related .
    What is the Database Version you are using ?
    Try with Oracle 10.2.0.3 or more .
    Thanks,
    Sutirtha

  • Subscript beyond count problem

    java.sql.SQLException: ORA-20001: Napaka: - -6533 -ERROR- ORA-06533: Subscript beyond count
    ORA-06512: at "TESTOD.VRNI_PODATKE", line 66
    ORA-06512: at "TESTOD.VRNI_PODATKE", line 111
    ORA-06512: at "TESTOD.VRNI_PODATKE", line 111
    ORA-06512: at "TESTOD.VRNI_PODATKE", line 111
    ORA-06512: at "TESTOD.DOKUMENTACIJA", line 448
    ORA-06512: at line 1
    line: 66:
    o1 := ob(stevec , ref_tabela, pk_tabele, tab_obj);
    begin
    IF o1 IS NOT NULL THEN
    v_table(st) := o1; -- HERE IS ERROR
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    raise_application_error(-20001, 'Napaka: - ' ||SQLCODE||' -ERROR- '||SQLERRM);
    end;
    v_table is parameter of IN OUT nocopy varray_data
    varray_data is pl/sql type:
    create or replace TYPE varray_data AS VARRAY(1000) OF ob1
    ob1 is pl/sql type:
    create or replace TYPE ob1 AS OBJECT(indeks NUMBER,
    name_table VARCHAR2(200),
    name_column VARCHAR2(200),
    tabela ob)
    create or replace TYPE ob IS VARRAY(100) OF ob2
    create or replace TYPE ob2 AS OBJECT(column VARCHAR2(200),
    imp_column VARCHAR2(200),
    ref_indeks NUMBER)
    line 111:
    st_m := v_table(st).table.COUNT;
    FOR j IN 1 .. st_m LOOP
    IF v_table(st).table(j).imp_column IS NULL THEN
    uk_table := v_table(st).table(j).column;
    pk_table := poisci_pk_tabele(ref_table);
    inner_st := v_table(st).table(j).ref_indeks; -- HERE IS ERROR (line 111)
    inner_table := vrni_podatke_r(v_table, ref_table, uk_table, inneri_st, st);
    END IF;
    END LOOP;
    Thx all for help.

    Hi !
    declare
      v_t t_typ := t_typ(); -- initialization t_typ is array(10) of number
    begin
      v_t.extend;  -- extends v_t only for 1 element ;
      v_t(2) := 0;
    end;this code produces an error "subscript beyond ... " because extnde is done only for one element
    declare
      v_t t_typ := t_typ(); -- initialization t_typ is array(10) of number
    begin
      v_t.extend(2);  -- extends v_t for 2 elements ;
      v_t(2) := 0;
    end;This code is OK
    T

  • Subscript beyond count ORA-06533

    Hi,
    I am using Oracle Express with SQL Developer on platform XP.
    I am attempting to run a procedure that works error free as an anonymous PL/SQL block.
    I have come across a few problems today and would like to Thank the following,
    1. Mohana - creating a type.
    2. MScallion - Grant Write suggestion.
    3. Billy Verreynne - adjusting my VARCHAR2 to correct bytes.
    I have been able to remove other errors with the help of the Oracle Forum Search but am gezumped by this one,
    Connecting to the database MY_DATABASE.
    ORA-06533: Subscript beyond count
    ORA-06512: at "MY_DATABASE.WRITE_MY_DDL", line 24
    ORA-06512: at line 12
    Process exited.
    Disconnecting from the database MY_DATABASE.
    This is the type I have created (now with revised VARCHAR2(4000)) ...
    create or replace TYPE PTB_NUMBER IS TABLE OF VARCHAR2(4000);
    This is the procedure I am attempting to run it compiles no worries (Thats what the message log tells me),
    create or replace
    PROCEDURE WRITE_MY_DDL
    ( v_object_type OUT VARCHAR2
    , v_sqlEnd OUT VARCHAR2
    , l_clob OUT CLOB
    , n OUT NUMBER
    , v_version OUT NUMBER
    , ptb_object_type OUT ptb_number
    , v_file_open OUT UTL_FILE.FILE_TYPE
    , v_file_name OUT VARCHAR2
    ) AS
    BEGIN
    n := 14;
    ptb_object_type := ptb_number();
    SELECT max(version)
    INTO v_version
    FROM my_ddl;
    v_file_name := 'DB_SCRIPT_FOR_'||USER||'_VERSION_'||v_version||'.sql';
    v_file_open := utl_file.FOPEN('SCRIPT_DIR',v_file_name,'w');
    ptb_object_type(1) := 'SEQUENCE';
    ptb_object_type(2) := 'TABLE';
    ptb_object_type(3) := 'TRIGGER';
    ptb_object_type(4) := 'PRIMARY KEY';
    ptb_object_type(5) := 'FORIEGN KEY';
    ptb_object_type(6) := 'PROCEDURE';
    ptb_object_type(7) := 'FUNCTION';
    ptb_object_type(8) := 'VIEW';
    ptb_object_type(9) := 'SELECT';
    ptb_object_type(10) := 'INSERT';
    ptb_object_type(11) := 'UPDATE';
    ptb_object_type(12) := 'DELETE';
    ptb_object_type(13) := 'REFERENCES';
    ptb_object_type(14) := 'EXECUTE';
    FOR loop_int IN 1 .. n
    LOOP
    v_object_type := ptb_object_type(loop_int);
    utl_file.PUT_LINE(v_file_open,' ');
    utl_file.PUT_LINE(v_file_open,'PROMPT CREATE '|| v_object_type ||'S' );
    utl_file.PUT_LINE(v_file_open,' ');
    utl_file.PUT_LINE(v_file_open,' ');
    FOR c1 IN
    (SELECT ROWID
    , object_type, object_name
    FROM my_ddl
    WHERE object_type = v_object_type
    AND version = v_version
    AND status = 'CURRENT'
    LOOP
    utl_file.PUT_LINE(v_file_open,'PROMPT CREATE ' ||USER|| ' '||c1.object_type||' '||c1.object_name);
    EXECUTE IMMEDIATE 'SELECT ddl FROM my_ddl WHERE ROWID = '|| ''''|| c1.ROWID ||''''
    INTO l_clob;
    utl_file.PUT_LINE(v_file_open, l_clob);
    END LOOP;
    END LOOP;
    utl_file.FCLOSE(v_file_open);
    END WRITE_MY_DDL;
    Cheers
    Ben

    ???(Not tested)
    BEGIN
    n := 14;
    ptb_object_type := ptb_number();
    ptb_object_type.extend(14);

  • Regarding error : Subscript beyond count

    PROCEDURE up_value_set_blk(p_upload_phase IN VARCHAR2 DEFAULT NULL,      
                               p_upload_mode IN VARCHAR2,
                               p_custom_mode IN VARCHAR2 DEFAULT NULL) is
                    cursor cur_flex_load is select * from value_set_stg;
                    type fnd_flex_set_type is table of fnd_flex_value_sets%rowtype;
                    type value_set_stg_type is table of value_set_stg%rowtype;
                    value_set_t value_set_stg_type;
                    fnd_flex_t fnd_flex_set_type := fnd_flex_set_type();
    BEGIN
            open cur_flex_load;
            fetch cur_flex_load bulk collect into value_set_t;
            FOR i in value_set_t.first..value_set_t.last LOOP
                 IF (get_vst_set(p_flex_value_set_name => value_set_t(i).flex_value_set_name,
                             x_vst_set => fnd_flex_t(i))) THEN     
                                  NULL;
                 END IF; 
             END LOOP;
    END;        
    exec up_value_set_blk('BEGIN','NLS','FORCE');
    BEGIN up_value_set_blk('BEGIN','NLS','FORCE'); END;
    ERROR at line 1:
    ORA-06533: Subscript beyond count
    ORA-06512: at "APPS.FND_FLEX_LOADER_APIS_BLK"
    ORA-06512: at line 1
           The error occurs coz of this stmt
    get_vst_set(p_flex_value_set_name => value_set_t(i).flex_value_set_name, x_vst_set => fnd_flex_t(i))
    Let me know what should be done ?

    I didn't understand what was meant
    Let me be more clear
    desc fnd_flex_value_sets
    Name                                      Null?    Type
    FLEX_VALUE_SET_ID                         NOT NULL NUMBER(10)
    FLEX_VALUE_SET_NAME                       NOT NULL VARCHAR2(60)
    LAST_UPDATE_DATE                          NOT NULL DATE
    LAST_UPDATED_BY                           NOT NULL NUMBER(15)
    CREATION_DATE                             NOT NULL DATE
    CREATED_BY                                NOT NULL NUMBER(15)
    LAST_UPDATE_LOGIN                         NOT NULL NUMBER(15)
    FUNCTION get_vst_set(p_flex_value_set_name IN VARCHAR2,
                         x_vst_set OUT nocopy vst_set_type)
      RETURN BOOLEAN IS                                                            
         l_func_name VARCHAR2(80);                             
    BEGIN                              
       SELECT * INTO x_vst_set FROM fnd_flex_value_sets WHERE flex_value_set_name = p_flex_value_set_name;
       RETURN TRUE;     
    EXCEPTION
       WHEN no_data_found THEN
          RETURN FALSE;                                          
    END get_vst_set; This is what get_vst_set does ?
    Let me know how to proceed

  • Error ORA-06533:  executing dbms_odm.CreateStdFactmv

    Hi,
    I have been defined and validated a metamodel for a cube and their dimensions, using CWM2 package. I obtained the scripts for dimension materialized view with dbms_odm.CreateDimmv_gs, I run them successfully, but when I try to run dbms_odm.CreateStdFactmv to generate fact table materialized view I get:
    ORA-06533: Subscript beyond count
    ORA-06512: at "OLAPSYS.DBMS_ODM", line 4771
    ORA-06512: at line 2
    and I'm running Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
    Can someone help me???

    Hi,
    No body have answered me, but I found the solution, if somebody has the same problem, check the value of parameter dimkeymap before to execute
    cwm2_olap_table_map.map_facttbl_levelkey and cwm2_olap_table_map.map_facttbl_measure
    dimkeymap is a string enclose in single quotes like as follows
    'DIM:dim1_name/HIER:hier_name/LVL:level_name/COL:map_column;DIM:.......'
    You must to be carefull to write the lowest level name for each hierarchy.

  • Subscript beyond count error

    Hi I've tried the following code but getting the error subscript beyond count error
    create or replace procedure test(
                                       p_srrce               in   DIM_AD.DE%type,
                                       p_date         in   varchar2,
                                       p_asset_id       in   DISET.PE_ID%type,
                                      p_nt_id              in    FAT_T.DT_ID%type,
                                        chek_status                         out varchar2,
                                       logs_dat                        out varchar2
    IS
    TYPE da_list  IS  TABLE OF FAT_T.DT_ID%TYPE;
    TYPE pd_list  IS TABLE OF FAT_T.pd%TYPE;
    TYPE v_txt_list  IS TABLE OF FAT_T.v_txt%TYPE;
    TYPE ttime_list IS TABLE OF FAT_T.ttime%TYPE;
    type t_rowid IS TABLE OF rowid INDEX BY binary_INTEGER;
      v_d_srce             varchar2(222);
      v_prdat        date ;
    no_d_eep exception;
         v_da_list  da_list ;
         v_pd_list  pd_list ;
         v_v_txt_list  v_txt_list ;
         v_ttime_list  ttime_list ;
         v_rowid  t_rowid ;
    BEGIN
      v_d_srce             :=   trim(p_srrce);
      v_prdat       :=   to_date(trim(p_date),'mm/dd/yyyy');
        DBMS_OUTPUT.PUT_LINE ( 'value v_prdat '||v_prdat );   
    ------   After executing this procedure the output statemnt has come till here after the got the error subscript beyond count
      SELECT     
                     DT_ID,
                  pd,
                    v_txt,
                      ttime
                       fdp.ROWID
              bulk collect  into  v_da_list , v_pd_list ,v_v_txt_list , v_ttime_list,v_rowid            
                  FROM
                       FAT_T
                 WHERE   
                        pd = NVL(p_asset_id ,pd)
                       AND DT_ID = NVL(p_nt_id ,DT_ID)
                       AND pedt=v_prdat ;
      FOR i in    v_da_list.first .. v_da_list.last     LOOP
          DBMS_OUTPUT.PUT_LINE ( 'Values are '||v_da_list(i) );
      END LOOP ;  
         EXCEPTION
        END;
    Please help in this

    Hi,
    it's hard to reproduce without having your data at hand.
    Is it possible for you to reproduce the error with a table having few rows?
    Can you post CREATE TABLE and INSERT statement for FAT_T table?
    How many rows do you have in FAT_T table?
    The error 6533 literally has this explanation:
    The SUBSCRIPT_BEYOND_COUNT Exception (ORA-06533) occurs when a program references a nested table or varray element using an index number larger than the number of elements in the collection.
    So I can only think that it occurs if you are trying to use an index larger than your table.
    That's why I said your original code could have had a problem in the LOOP part in case the query was not returning any row.
    But actually in case the array was empty you would get another error in the loop (ORA-06502: PL/SQL: numeric or value error)
    I saw that your array type are all nested tables except t_rowid which is an associative array using BINARY_INTEGER as index.
    This index can be up to 2^32. So unless you have a very high number of rows (more than 2.15 billions) you should not get this error.
    I can suggest to check 2 things:
    How many rows does your SELECT statement returns?
    Comment the exception block to see exactly which line is throwing that error.
    Post some sample data to reproduce your problem
    Actually if I try to do something similar in my environment using EMP table I don't get any error (if my select returns rows):
    SQL*Plus: Release 11.2.0.1.0 Production on Thu Nov 7 12:22:28 2013
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL>
    SQL> DECLARE
      2     TYPE t_empno IS TABLE OF emp.empno%TYPE;
      3     TYPE t_ename IS TABLE OF emp.ename%TYPE;
      4     TYPE t_hiredate IS TABLE OF emp.hiredate%TYPE;
      5     TYPE t_sal IS TABLE OF emp.sal%TYPE;
      6     TYPE t_rowid IS TABLE OF ROWID
      7                        INDEX BY BINARY_INTEGER;
      8
      9     v_empno        t_empno;
    10     v_ename        t_ename;
    11     v_hiredate     t_hiredate;
    12     v_sal          t_sal;
    13     v_rowid        t_rowid;
    14
    15  BEGIN
    16     SELECT empno, ename, hiredate, sal
    17          , ROWID
    18       BULK COLLECT INTO v_empno, v_ename, v_hiredate, v_sal
    19          , v_rowid
    20       FROM emp;
    21
    22     FOR i IN v_empno.FIRST .. v_empno.LAST
    23     LOOP
    24        DBMS_OUTPUT.put_line ('Values are ' || v_empno (i));
    25     END LOOP;
    26  END;
    27  /
    Values are 7369
    Values are 7499
    Values are 7521
    Values are 7566
    Values are 7654
    Values are 7698
    Values are 7782
    Values are 7788
    Values are 7839
    Values are 7844
    Values are 7876
    Values are 7900
    Values are 7902
    Values are 7934
    PL/SQL procedure successfully completed.
    SQL>
    Regards.
    Alberto

  • Please Help!! I deleted the folder System en Macintosh HD and now when i on my mac it says Disk Error Press Any  Key To Restart Please HELP !!

    I deleted the folder System en Macintosh HD and now when i on my mac it says Disk Error Press Any  Key To Restart Please HELP !!

    Reinstall Mac OS X.
    (59450)

  • HT201210 My iPhone has crashed and i went to iTunes to restore it and after waiting for it to be restored it said "The iPhone could not be restored. An unknown error occurred (2006). Can anybody please help suggest what i should do now?

    My iPhone has crashed and i went to iTunes to restore it and after waiting for it to be restored it said "The iPhone could not be restored. An unknown error occurred (2006). Can anybody please help suggest what i should do now?

    This error normally appears if you attempted to downgrade or modify your iOS. See here http://support.apple.com/kb/TS3694#error1015

  • HT1414 I have iphone 4; tried to sync it said I need to update software so I clicked ok - it then said I need to restore and did above got to stage 3, clicked restore and update, but it comes up with an error saying iphone cannot be found Please help!!!

    I have iphone 4; tried to sync it said I need to update software so I clicked ok - it then said I need to restore and did above got to stage 3, clicked restore and update, but it comes up with an error saying iphone cannot be found Please help!!!

    Dear Jody..jone5
    Good for you that can't update your iphone because I did it and my iphone dosen't work for example I can't download any app like Wecaht or Twitter..
    Goodluck
    Atousa

Maybe you are looking for

  • Buying apps from different computers - how to get everything on the iphone

    Hi, I have an iphone which I sync mainly with my home mac for music, videos, photos, and apps. I also sync the iphone with my work windows PC for contacts and calendars. Both the mac and the PC are authorised on my same iTunes account. From time to t

  • Purchasing price variance report

    dear all, I have to generate the purchasing price variance report... Report to analyze and compare the following data elements from the invoice and standard cost:Period Actual average price per unit.YTD actual average price per unit o current year.YT

  • How can i pass a parameter to the query to filter the result of this lookup

    Hello, i'm developping a web application with JDeveloper 10.1.2 and JHeadStart. i realy need to know how can i filter the lookup (LOV) query result. in other word, when i click on the lookup, it show all the row that exist in may data base table. wha

  • Bank account program

    havin trouble with a bank account program i've got to write, anyone want to av a look at it

  • Share iMix via email

    How do I share an iMix that I published in iTunes? When i go to the iMix and click "Tell a friend" I get sent back to iTunes Store Home page. Nothing else happens. Mail is open and ready.