4 Ответы Последний ответ: 23.07.2009 21:10, автор: 32455

    ORA-06533: Subscript beyond count while working on tutorial

    _AZ_
      Hello,
      I'm trying to get through the tutorial (http://www.oracle.com/technology/obe/11gr1_db/datamgmt/nci_semantic_network/nci_Semantics_les01.htm)
      i have 11.1.6 on Linux + patch 7032734.
      The bulk load ( step 3 ):
      Record 464839: Rejected - Error on table STABLE.
      ORA-00604: error occurred at recursive SQL level 1
      ORA-13199: Element Parse Error: Invalid Object (value: )
      ORA-06512: at "MDSYS.MD", line 1723
      ORA-06512: at "MDSYS.MDERR", line 17
      ORA-06512: at "MDSYS.SDO_RDF", line 9
      ORA-06512: at line 1


      Table STABLE:
      408997 Rows successfully loaded.
      55844 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.

      Bind array size not used in direct path.
      Column array rows : 5000
      Stream buffer bytes: 256000
      Read buffer bytes: 1048576

      Total logical records skipped: 0
      Total logical records read: 464841
      Total logical records rejected: 55844
      Total logical records discarded: 0

      but is'nt it a little bit tooo many bad records ? Anyway.
      step where i need to execute build_patients -is the step that didn't work at all .Below is the error and your advise will be highly appreciated:
      SQL> drop table patients_data;

      Table dropped

      SQL> exec mdsys.build_patients(100000, 1, 'PATIENTS_DATA');

      Testing 0
      Testing 1
      Testing 2
      ont_stmt: select count(distinct x) from table (sdo_rdf_match ('(?x

      )',
      sdo_rdf_models('nci'), sdo_rdf_rulebases('OWLPRIME'), null, null))
      err msg is ORA-29532: Java call terminated by uncaught Java exception: oracle.spatial.rdf.server.ParseException: Encountered ")" at line 3, column 6.
      Was expecting one of:
      <URI> ...
      <QNAME> ...
      <VAR> ...

      rand_idx: 1 idx: 1

      PL/SQL procedure successfully completed

      SQL> select count(*) from nciuser.patients_data;

      COUNT(*)
      ----------
      0

      HELP

      Research :

      Basically it's not the proc, but rather the query:
      select distinct x from 
      table (sdo_rdf_match ('(?x)',
                            sdo_rdf_models('nci'), 
                            sdo_rdf_rulebases('OWLPRIME'), 
                      null, null
                     )
             )
                      
      that through this error

      Research
      After looking around i came across Note:472909.1
      it has DIFFERENT version of the same procedure. But it throws :
      SQL> exec mdsys.build_patients(100000, 1, 'PATIENTS_DATA');
       
      Testing 0
      Testing 1
      Testing 2
      ont_stmt: select count(distinct x) from table (sdo_rdf_match ('(?x
      <http://www.w3.org/2000/01/rdf-schema#subClassOf>
      <http://www.mindswap.org/2003/nciOncology.owl#Diseases_and_Disorders>)',
      sdo_rdf_models('nci'), sdo_rdf_rulebases('OWLPRIME'), null, null))
      found [0] subclasses
      found [0] subclasses
      ins_stmt: insert into PATIENTS_DATA values
      (:1, 'FRED', :2, :3, 4)
      err msg is ORA-06533: Subscript beyond count
      rand_idx: .5 idx: 1
       
      PL/SQL procedure successfully completed
      Research:

      SELECT * FROM MDSYS.SEM_MODEL$;

      SELECT * FROM MDSYS.SEM_RULEBASE_INFO;

      SELECT * FROM MDSYS.SEM_RULES_INDEX_DATASETS ORDER BY index_name, data_type;

      SELECT owner, index_name, index_view_name, status, model_count mc, rulebase_count rc
      FROM MDSYS.SEM_RULES_INDEX_INFO;

      // as sysdba
      SELECT owner, index_name, ityp_name
      FROM dba_indexes
      WHERE ityp_name='SEM_INDEXTYPE';

      all return "valid"

      Message was edited by:
      andrey