Doubt in create index.

Hello
I tried to create indexes on the same column in the same table as below, and I could see the difference also as below.
When I gave 'BR_CODE', in dba_ind_columns, it appears as SYS_NC00082$. Why is it so? Can you get it someone please let me know the difference?

create index IDX_BRCODE on BCT (BR_CODE, BANK_CODE);

The index is created.

SQL > select index_name, column_name from dba_ind_columns where table_name = "BCT";

INDEX_NAME COLUMN_NAM
------------------------------ ----------
IDX_BRCODE BR_CODE
IDX_BRCODE BANK_CODE

create index IDX_BRCODE1 on BCT ('BR_CODE', BANK_CODE);

The index is created.

SQL > select index_name, column_name from dba_ind_columns where table_name = "BCT";

INDEX_NAME COLUMN_NAM
------------------------------ ----------
IDX_BRCODE BR_CODE
IDX_BRCODE BANK_CODE
IDX_BRCODE1 SYS_NC00082$

IDX_BRCODE1 BANK_CODE

user10698496 wrote:
Once again great explanation in a way more easy to understand for beginners like me.

Another question. If BANK_CODE is a nullable column, how will be the index with the constant "BR_CODE" (I want to say index ("BR_CODE", BANK_CODE)) help in select queries with BANK_ID in where clause?

For example:-select col1 from bct where bank_id = 'x' and br_code = 'y '? -In this query will be how this constant index thanks to 'BR_CODE '? How does this index for this query?

CBO will not use index (in normal case) when the indexed column is null. But you can create INDEXES of DATABASE FUNCTION and can for the use of this. In the structure of your query and index are different. Use of the index when the query predicate is match your index (without other intervention) structure. So for your query, it will not work.

Tags: Database

Similar Questions

  • Creating indexes for the table

    can someone help me how to create indexes in the table. I m creating own table... I need to select a particular field in the table. So I need to calculate the index position. I use my code like this,

    This will returnthe number of columns in the table.

    Class array

    {

    private int Table_Index()
    {
    for (int x = 0; x)<>
    {
    table_index = x;
    }
    Return table_index;
    }

    }

    MainClass can I get this length of Index

    Table T1;

    int t1 is T1. Table_Index();

    This property returns my length (4) of table column

    Using this index (t1) I HAV to see what position I'm at table now...

    someone help me...

    You can use a listfield, he supports methods to get the selected row and its contents.

  • CREATE INDEXES online is waiting for the TX = 4 mode

    Hello

    I have a strange blocking problem where an INDEX CREATE LINE is waiting for a transaction that did only inserted a line in the parent table.

    Wait is mode TX = 4 (not TM locks) and I currently have it reproduced only on 11.2.0.3 and 11.2.0.4

    Easy to replicate the schema SCOTT:

    Session 1:

    SQL > set time on

    14:54:58 SQL > insert into SCOTT. Dept (DEPTNO, dname) values (50, 'test');

    1 line of creation.

    Session 2;

    14:55:24 SQL > create index test on SCOTT. EMP (ename) online;

    It's waiting ' enq: TX - line lock conflict ":"

    SQL > select sid, chain_signature from v$ wait_chains where blocker_is_valid = 'TRUE '.

    SID CHAIN_SIGNATURE

    ---------- ----------------------------------------------------------------------

    603 ' SQL * Net client message' < ='enq: TX - line lock conflict '

    While waiting to acquire the lock of transaction in mode 4:

    SQL > select * lock gv$ where sid = 603

    INST_ID SELECT ADDR KADDR SID TYPE ID1 ID2 LMODE CTIME BLOCK REQUEST

    ---------- ---------------- ---------------- ---------- ---- ---------- ---------- ---------- ---------- ---------- ----------

    1 00000006CDA05EB8 00000006CDA05F10 603 352577 0 4 0 348 2 AE

    1 00000006CDA06078 00000006CDA060D0 603 DL 779505 0 3 0 308 2

    1 00000006CD9FABE0 00000006CD9FAC38 603 DL 779505 0 3 0 308 2

    1 00007F28001F5028 00007F28001F5088 603 779505 0 2 0 308 2 TM

    1 00007F28001F5028 00007F28001F5088 603 779510 0 4 0 308 2 TM

    1 00000006CD9FA240 00000006CD9FA298 603 779505 0 4 0 308 2 OD

    1 00000006B4F26790 00000006B4F26808 589847 711499 6 0 308 2 TX 603

    1 00000006CDA0ED68 00000006CDA0EDC0 655377 996169 0 4 308 TX 603 0

    I've traced 10046 and 10704:

    broadcast message = obj 29231196672 #= 779514 tim = 1447251053634045

    ksqgtl * mode TX-000f001e-000ad97c = 4 flags = 0 x 10001 timeout = 21474836 *.

    ksqgtl: xcb = 0x6bb322528, ktcdix = 2147483647, topxcb = 0x6bb322528

    ktcipt (topxcb) = 0 x 0

    ksucti: init logon has of txn DID:

    ksqgtl:

    ksqlkdid: 0001-003F-0000AFC4

    ksudidTrace: ksqgtl

    ktcmydid(): 0001-003F-0000AFC4

    ksusesdi: 0001-003F-0000AFC3

    ksusetxn: 0001-003F-0000AFC4

    ksqcmi: TX, f001e, ad97c mode = 4 timeout = 21474836

    2015-11-11 15:11:36.566

    WAITING #140700792578680: nam ='enq: TX - line lock conflict ' ela 42932082 name = | mode = 1415053316 usn < < 16 | location = sequence 983070 = obj 711036 #= 779514 tim = 1447251096566283

    And there is nothing in V$ SESSION leader/block/line current. class obj # is EMP. current sql_id is the CREATE INDEX.

    If anyone has an idea on:

    -Why creating an index in line must wait for transactions that modified only parent table

    -How to continue the investigation

    -can or cannot reproduce in other versions

    Thanks in advance,

    Franck.

    I guess you have a constraint foreign key between emp and Dept.

    It's expected behaviours: since 11.1 any DML at one end of a referential integrity constraint translates into a mode lock 3 taken at the other end, and your phenomenon resembles a side effect of this.

    When you try to create the index online that your session must assume that the other session (holding mode 3 on the emp and dept) may have changed the emp and dept, so it must wait for the session to the commit or rollback.

    (I guess that in principle, he could walk the cancellation of the transaction see if EMP had in fact been changed - but maybe who was considered too complicated to be worth the risk to implement)

    Concerning

    Jonathan Lewis

    Updated - I just did a quick check to reproduce the effect on 11.1.0.7

    For reference - here are a few notes on modes of locking and how the application has changed over time: https://jonathanlewis.wordpress.com/2010/06/21/locks/

  • Why I can't create indexes on the table of RDF data

    When I tried to create indexes on the table of RDF data, it always say the table or view does not exist. I created the RDF model using java codes:

    Oracle Oracle = new Oracle ("jdbc:oracle:thin:@localhost:1521:orcl", "system", "123");

    Chart GraphOracleSem = new GraphOracleSem (oracle, "test2");


    And used the following commands in sqlplus to create indexes:

    SQL >

    SELECT THE SEPARATE OWNER, OBJECT_NAME

    FROM DBA_OBJECTS

    WHERE TYPE_OBJET = 'TABLE '.

    4. AND OBJECT_NAME like ' % TEST2;

    OWNER

    --------------------------------------------------------------------------------

    OBJECT_NAME

    --------------------------------------------------------------------------------

    SYSTEM

    TEST2_NS

    SYSTEM

    RDFB_TEST2

    SYSTEM

    TEST2_TPL

    OWNER

    --------------------------------------------------------------------------------

    OBJECT_NAME

    --------------------------------------------------------------------------------

    SYSTEM

    RDFC_TEST2


    SQL > connect as sysdba

    Enter the password:

    Connected.

    SQL >

    SQL >

    SQL > select * from TEST2_TPL;

    Select * from TEST2_TPL

    *

    ERROR on line 1:

    ORA-00942: table or view does not exist

    SQL > CREATE INDEX test2_sub_idx ON TEST2_TPL (triple. GET_SUBJECT());

    CREATE INDEX test2_sub_idx ON TEST2_TPL (triple. GET_SUBJECT())

    *

    ERROR on line 1:

    ORA-00942: table or view does not exist

    Hi Shifu,

    It is not recommended to use the SYS or SYSTEM to store/manage schema graph RDF data.

    Can you please try the following in a SQL * more terminal?

    SQL > conn system/eu1

    Connected.

    SQL >

    SQL >

    SQL > create user graphuser identified by graphuser;

    Created by the user.

    SQL > grant connect, resources, unlimited tablespace to graphuser;

    Grant succeeded.

    SQL > conn graphuser/graphuser

    Connected.

    SQL > create table graph_tpl (triple sdo_rdf_triple_s) compress;

    Table created.

    SQL > sem_apis.create_sem_model exec ('graphic', 'graph_tpl', 'three');

    PL/SQL procedure successfully completed.

    SQL > insert into graph_tpl values (sdo_rdf_triple_s ('graph', '', '', ''));

    1 line of creation.

    SQL > select count (1) in the mdsys.rdfm_graph;

    1

    You see the same result?

    Thank you

    Zhe Wu

  • create indexes on the upper part of the column - reminders function is not deterministic

    Hi all

    I'm having a problem on a database. When you create an index on an existing table on the upper part of a column, Oracle triggers an ORA-30553. I've done this 40 index other databases, with the same and different versions, without problem. When you create the index on a copy of the table, it is created with success...

    Here is the code:

    SQL > select * from v version $;

    BANNER

    --------------------------------------------------------------------------------

    Oracle Database 11 g Release 11.2.0.3.0 - 64 bit Production

    PL/SQL Release 11.2.0.3.0 - Production

    CORE Production 11.2.0.3.0

    AMT for 64-bit Windows: Version 11.2.0.3.0 - Production

    NLSRTL Version 11.2.0.3.0 - Production

    SQL > CREATE INDEX IDX_SRE_E_MAIL_UPPER on fsynrelatie (upper (sre_e_mail)) tablespace idx;

    CREATE the INDEX IDX_SRE_E_MAIL_UPPER on idx tablespace fsynrelatie (upper (sre_e_mail))

    *

    ERROR on line 1:

    ORA-30553: the function is not deterministic

    SQL > create table fsynrelatie2 in select * from fsynrelatie;

    Table created.

    SQL > CREATE INDEX IDX_SRE_E_MAIL_UPPER on fsynrelatie2 (upper (sre_e_mail)) tablespace idx;

    The index is created.

    SQL > drop table fsynrelatie2;

    Deleted table.

    SQL > show parameter query_rewrite_enabled

    VALUE OF TYPE NAME

    ------------------------------------ ----------- ------------------------------

    query_rewrite_enabled string TRUE

    Hi all

    Thank you for the answers. I found the problem:

    On the table, there are 54 index:

    Select index_type, uniqueness, count (*) from user_indexes where table_name = 'FSYNRELATIE '.

    Index_type group, uniqueness

    INDEX_TYPE SINGLE CHARACTER COUNT (*)
    FIELD ARE NOT UNIQUE 1
    BASED ON A NORMAL FUNCTION ARE NOT UNIQUE 4
    NORMAL UNIQUE 3
    NORMAL ARE NOT UNIQUE 46

    3 unique indexes are the primary key and 2 another witch number field contains unique identifiers for rows in other systems. The domain index is an index of Oracle text on a couple of fields. There are 3 indices of function based on a high on a field and 1 on an individual function. This last clue has caused the problem. Apparently, on the creation, this function is deterministic, but when rolling a new version of the software. It became a non-deterministic function. When I delete the index, my original index on upper (sre_e_mail) has been created successfully! Now, I did the deterministic function again and could recreate the function without problem.

    Thanks for your comments!

  • How to create indexes of service according to

    Hi all

    I already post a thread associated with this thread, but there is little difference in the two threads.

    I had a query as below:

    Select concept_Un, raw_concept_a, relation_name, concept_b, discovered_relations raw_concept_b, where lower (concept_a) like '% of consumers' and lower (concept_a) like '% confidence % ';


    This query taking too long to run and its high rating.

    cost and execution time: 1155K and 03:51:11

    I changed above query using the Forum gurus, below query is changed:


    Select concept_Un, raw_concept_a, relation_name, concept_b, raw_concept_b

    of discovered_relations

    where regexp_instr (concept_Un, ' (consumer.*confidence) |) ((confidence.*Consumer))', 1, 1, 1, 'i') > 0;

    I created indexes for query modified as well:
    creating index SIDEV. IDX_reg_instr on SIDEV. DISCOVERED_RELATIONS (REGEXP_INSTR ("CONCEPT_A",'(consumer.*confidence) |)) (confidence.*Consumer))', 1, 1, 1, 'i'));

    After that the cost and time to get request reduces to:
    After optimization: 40001 and 08:01

    Now the question is whenever my request will vary as a condition, this means that search string can be vary to any value.

    So I need a basic index as function above is the index which can work for any string in the like operator, now my created index only works very well for the fixed string...

    Thank you

    Abbas85 wrote:

    Hi Chris,

    Thank you very much its working well, now, to reduce the cost and duration of execution, I used below queries as you suggest:

    create index idx_fulltext on discovered_relations (concept_a) indextype is ctxsys.context;

    Select * from discovered_relations

    where contains (concept_a, 'Confidence') > 0 and contains (concept_a, 'Consumer') > 0;

    Hello

    No, you didn't.

    The query I used was

    Select str

    of test_idx

    where

    contains (str, '% of the CONSUMPTION and CONFIDENCE %') > 0

    If you read carefully, you'll notice that I used already found lowercase uppercase searchwords.

    This works because the oracle text case insensitiv default you can read documentation:

    "By default, all text tokens are converted to uppercase and then indexed. This

    results in case-insensitive queries. For example, separate queries for each of

    the three words, CAT cat,

    "and Cat all return the same documents.

    Indexing with Oracle Text

    If you have more to use tiny but need to start to read the oracle text docs ;-)

  • Y at - it a similar index in MySQL: CREATE INDEX part_of_customer customer WE (name (10));

    Hello!

    There is a column of type long varchar (3000 characters) in our user table to store the e-mail address of the user or a list of email addresses.

    Most of the lines contain only a single address.

    I want to add an index on this column, because there are many research in this column with a certain email address.

    Y at - it a similar syntax that would allow me to create an index using only the part of the column as the index key as it is in MySQL?

    This is the syntax of MySQL guides, I found:

    Customer of CREATE INDEX part_of_name ON (name (10));

    so in our table, it would be

    CREATE INDEX in_partial_email on dtuser (email (150));

    This works well in MySQL.

    In Oracle if I try to index the entire column I'll end with

    ORA-01450: exceeded maximum key length

    I would be happy for any information on this topic!

    BR saturation

    Please see the example:

    create table ttt (col1 varchar2 (2000));

    create index ttt_idx on ttt (substr (col1, 1, 20));

    going to index on the first 20 characters of col1.

  • How to create indexes on columns all - the flames begin

    Yes read you it correctly.

    Is it possible to create a procedure that will create an index on each column in a table without specifying the column names?

    index_all_cols exec ('xxx', 'parallel');

    You ask why? There is no reason that I can give you that will quench the flames coming my way. But, finally, it's because (1) I am tired of using excel to generate create statements of the index and (2) I want the speed at the expense of everything else, (3) I do not use a mouse... I know, I would hate first.

    Jason

    Oracle 10g

    ... at least I didn't to index every column in every table in my diagram!

    Had, it works!

    CREATE OR REPLACE PROCEDURE index_all_cols (pTABLENAME IN varchar2)

    IS

    CURSOR c1 IS SELECT distinct COLUMN_NAME FROM USER_TAB_COLS WHERE TABLE_NAME = pTABLENAME;

    BEGIN

    FOR c IN c1 LOOP

    BEGIN EXECUTE IMMEDIATE 'create index X_ "| c.COLUMN_NAME |' WE ' | pTABLENAME | ' ('| c.COLUMN_NAME |') parallel logging ";

    -EXCEPTION WHILE some other THEN NULL;

    END;

    END LOOP;

    COMMIT;

    END index_all_cols;

    /

    ... and not even a flame

  • How to create indexes on the ordered collection of XMLTYPE table?

    I use Oracle 11.2.0.2.

    Basically, my XML documents have a 3-level hierarchy:

    event

    + - action [1: n]

    + - param [1: n]

    I try to create indexes on the tables of the orderly collection, but cannot get the right syntax...

    I created a table with an XMLType object-relational column:

    CREATE TABLE T_C_RMP_MNTRNG_XML_FULL_IL4 (
      MESSAGE_ID NUMBER(22,0) NOT NULL ENABLE,
      XML_EVAL_ID NUMBER(22,0),
      VIN7 VARCHAR2(7 BYTE),
      FLEET_ID VARCHAR2(50 BYTE),
      CSC_SW_VERSION VARCHAR2(100 BYTE),
      RECEIVED DATE,
      XML_CONTENT SYS.XMLTYPE ,
      DWH_LM_TS_UTC DATE NOT NULL ENABLE,
      CONSTRAINT PK_C_RMP_MNTRNG_XML_FULL_IL4 PRIMARY KEY (MESSAGE_ID)
    ) NOLOGGING TABLESPACE CATALOG
    VARRAY "XML_CONTENT"."XMLDATA"."action" STORE AS TABLE "T_OR_MON_ACTION" (
      NOLOGGING TABLESPACE "CATALOG"
      VARRAY "param" STORE AS TABLE "T_OR_MON_ACTION_PARAM" (
      NOLOGGING TABLESPACE "CATALOG"
      ) RETURN AS LOCATOR
    ) RETURN AS LOCATOR
    XMLTYPE XML_CONTENT STORE AS OBJECT RELATIONAL XMLSCHEMA "http://mydomain.com/cs.xsd" ELEMENT "monitoring";
    
    
    
    
    

    I execute the SELECT statement:

    SELECT EVENT_ID, ACTION_SUB_ID, MESSAGE_ID, ACTION_TYPE, UNIXTS_TO_DATE(ACTION_TIMESTAMP) ACTION_TIMESTAMP
    FROM T_C_RMP_MNTRNG_XML_FULL_IL4, 
    XMLTABLE( 
      'for $i1 in /monitoring , 
      $i2 in $i1/action            
      return element r {              
      $i1/eventId,              
      $i2            
      }' 
      PASSING XML_CONTENT COLUMNS 
      EVENT_ID VARCHAR(40) PATH 'eventId', 
      ACTION_SUB_ID INTEGER PATH 'action/actionSubId', 
      ACTION_TYPE VARCHAR2(100) PATH 'action/type', 
      ACTION_TIMESTAMP NUMBER(13,0) PATH 'action/time' 
    ) T2 
    WHERE ( 
      EVENT_ID IS NOT NULL AND ACTION_SUB_ID IS NOT NULL 
    )
    
    
    
    
    

    The plan of the explain command looks like this (sorry, don't know how to get it formatted any 'eye-team'):

    ----------------------------------------------------------------------------------------------------------

    | ID | Operation | Name                        | Lines | Bytes | TempSpc | Cost (% CPU). Time |

    ----------------------------------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |                             |  1609K |  6316M |       |  6110K (1) | 20:22:11 |

    |*  1 |  HASH JOIN |                             |  1609K |  6316M |   111 M |  6110K (1) | 20:22:11 |

    |   2.   TABLE ACCESS FULL | T_C_RMP_MNTRNG_XML_FULL_IL4 |   582K |   104 M |       |  5241 (1) | 00:01:03 |

    |*  3 |   TABLE ACCESS FULL | T_OR_MON_ACTION |    32 M |   117G |       |   105K (2) | 00:21:08 |

    ----------------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):

    ---------------------------------------------------

    1 - access ("NESTED_TABLE_ID"= "T_C_RMP_MNTRNG_XML_FULL_IL4"." ("SYS_NC0001300014$")

    filter (CAST (SYS_XQ_UPKXML2SQL (SYS_XQEXVAL (SYS_XQEXTRACT ((SYS_XMLGEN ("T_C_RMP_MNTRN XMLCONCAT

    G_XML_FULL_IL4 ". "" $ SYS_NC00017 ", NULL, SYS_XMLCONV ("T_C_RMP_MNTRNG_XML_FULL_IL4". "SYS_NC00012$", 0.32,

    (('EC1EEF23FD023A27E04032A06D930A8D', 3, 3783, 1)), SYS_MAKEXML ('EC1EEF23FD023A27E04032A06D930A8D', 3780,

    'T_C_RMP_MNTRNG_XML_FULL_IL4 '. "' SYS_NC00008$ ', 'SYS_ALIAS_0 '. ((("' SYS_NC_ROWINFO$ ')),'/ ID ', NULL), 0,.

    0,20971520,0), 50.1, 2) AS VARCHAR (40)) IS NOT NULL)

    3 filter (CAST (TO_NUMBER (TO_CHAR ("SYS_ALIAS_0". "actionSubId")) AS INTEGER) IS NOT NULL) "

    Note

    -----

    -dynamic sample used for this survey (level = 2)

    -Construction detected no optimized XML (activate XMLOptimizationCheck for more information)

    The XML schema looks like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:storeVarrayAsTable="true" oraxdb:flags="2105639" oraxdb:schemaURL="http://mydomain.com/cs.xsd" oraxdb:schemaOwner="MYUSER" oraxdb:numProps="23">
      <xs:element name="monitoring" oraxdb:propNumber="3785" oraxdb:global="true" oraxdb:SQLName="monitoring" oraxdb:SQLType="monitoring755_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="monitoring757_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="monitoring755_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="action" oraxdb:propNumber="3780" oraxdb:global="false" oraxdb:SQLName="action" oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false" oraxdb:SQLCollType="action756_COLL" oraxdb:SQLCollSchema="MYUSER"/>
            <xs:element ref="reservationType" oraxdb:propNumber="3781" oraxdb:global="false" oraxdb:SQLName="reservationType" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="softwareVersion" oraxdb:propNumber="3782" oraxdb:global="false" oraxdb:SQLName="softwareVersion" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="eventId" oraxdb:propNumber="3783" oraxdb:global="false" oraxdb:SQLName="eventId" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="vin" oraxdb:propNumber="3784" oraxdb:global="false" oraxdb:SQLName="vin" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="action" oraxdb:propNumber="3790" oraxdb:global="true" oraxdb:SQLName="action" oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="action754_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element ref="type" oraxdb:propNumber="3786" oraxdb:global="false" oraxdb:SQLName="type" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element maxOccurs="unbounded" ref="param" oraxdb:propNumber="3787" oraxdb:global="false" oraxdb:SQLName="param" oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false" oraxdb:SQLCollType="param753_COLL" oraxdb:SQLCollSchema="MYUSER"/>
            <xs:element ref="actionSubId" oraxdb:propNumber="3788" oraxdb:global="false" oraxdb:SQLName="actionSubId" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="time" oraxdb:propNumber="3789" oraxdb:global="false" oraxdb:SQLName="time" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="type" type="xs:string" oraxdb:propNumber="3791" oraxdb:global="true" oraxdb:SQLName="type" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="type751_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="param" oraxdb:propNumber="3794" oraxdb:global="true" oraxdb:SQLName="param" oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="param750_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element minOccurs="0" ref="value" oraxdb:propNumber="3792" oraxdb:global="false" oraxdb:SQLName="value" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="key" oraxdb:propNumber="3793" oraxdb:global="false" oraxdb:SQLName="key" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="value" type="xs:string" oraxdb:propNumber="3795" oraxdb:global="true" oraxdb:SQLName="value" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="value748_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="key" type="xs:string" oraxdb:propNumber="3796" oraxdb:global="true" oraxdb:SQLName="key" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="key747_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="actionSubId" type="xs:integer" oraxdb:propNumber="3797" oraxdb:global="true" oraxdb:SQLName="actionSubId" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:defaultTable="actionSubId746_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="time" type="xs:integer" oraxdb:propNumber="3798" oraxdb:global="true" oraxdb:SQLName="time" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:defaultTable="time745_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="reservationType" type="xs:string" oraxdb:propNumber="3799" oraxdb:global="true" oraxdb:SQLName="reservationType" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="reservationType744_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="softwareVersion" type="xs:string" oraxdb:propNumber="3800" oraxdb:global="true" oraxdb:SQLName="softwareVersion" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="softwareVersion743_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="eventId" type="xs:string" oraxdb:propNumber="3801" oraxdb:global="true" oraxdb:SQLName="eventId" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="eventId742_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="vin" type="xs:string" oraxdb:propNumber="3802" oraxdb:global="true" oraxdb:SQLName="vin" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="vin741_TAB" oraxdb:defaultTableSchema="MYUSER"/>
    </xs:schema>
    
    
    
    
    

    How can I create an index on these tables of the ordered collection to improve performance?

    I found the example at http://docs.Oracle.com/CD/E11882_01/AppDev.112/e23094/xdb_rewrite.htm#ADXDB5859 but am not able to apply to this particular case...

    Thank you in advance...

    If the schema is not annotated and XS: Integer and XS: String are mapped to types of data NUMBER and VARCHAR2 (4000), so you must use in your query to avoid typecasting unnecessary operations.

    You must also use XMLTABLEs chained when accessing a parent/child instead of a FLWOR expression relationship, otherwise the CBO cannot rewrite the XQuery query correctly (maybe it's fixed in the latest version).

    If you make these changes, the plan should show the cleaner predicates:

    SQL > SELECT EVENT_ID, MESSAGE_ID, ACTION_TYPE, ACTION_SUB_ID, ACTION_TIMESTAMP

    2 FROM test_table

    3 XMLTABLE ('/ monitoring ')

    4 COLUMNS XML_CONTENT OF PASSAGE

    5 WAY of VARCHAR2 (4000) EVENT_ID "ID."

    6 actions for XMLTYPE PATH 'action '.

    (7) T1,

    8 XMLTABLE ('/ action')

    Shares of PASSAGE 9 COLUMNS

    NUMBER of ACTION_SUB_ID 10 PATH "actionSubId."

    11 PATH of VARCHAR2 (4000) ACTION_TYPE "type."

    12 WAY of NUMBER ACTION_TIMESTAMP 'time '.

    (13) T2

    14 WHERE EVENT_ID IS NOT NULL

    15 AND ACTION_SUB_ID IS NOT NULL

    16;

    Execution plan

    ----------------------------------------------------------

    Hash value of plan: 1763884463

    ------------------------------------------------------------------------------------------------

    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |

    ------------------------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |                 |   109.   220K |     6 (17). 00:00:01 |

    |   1.  THE MERGE JOIN.                 |   109.   220K |     6 (17). 00:00:01 |

    |*  2 |   TABLE ACCESS BY INDEX ROWID | TEST_TABLE |    11.   352.     2 (0) | 00:00:01 |

    |   3.    INDEX SCAN FULL | SYS_C007567 |    11.       |     1 (0) | 00:00:01 |

    |*  4 |   JOIN TYPE.                 |   109.   216K |     4 (25) | 00:00:01 |

    |*  5 |    TABLE ACCESS FULL | T_OR_MON_ACTION |   106 S 216K |     3 (0) | 00:00:01 |

    ------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):

    ---------------------------------------------------

    2 - filter("TEST_TABLE".") (' SYS_NC00012$ ' IS NOT NULL)

    4 - access("SYS_ALIAS_0".") NESTED_TABLE_ID "=" TABLE_TEST. " ("' SYS_NC0000800009$ ')

    filter ("SYS_ALIAS_0". "NESTED_TABLE_ID"="TABLE_TEST" "." " ("SYS_NC0000800009$")

    5 - filter("SYS_ALIAS_0"." actionSubId» IS NOT NULL)

    Note

    -----

    -dynamic sample used for this survey (level = 2)

    Now, if it is still necessary, everything boils down to choosing a technique for index NULL values:

    -composite index with a column not zero or constant

    -FBI

    -bitmap image

    Choose the one that best fits your data, the selectivity and activity on the tables.

  • Cannot create indexes on the flow table

    Hello

    I'm new to ODI.

    The problem is that during the execution of an interface, I get the error of the "IKM Oracle Dimension to slow variation"

    The command in step "Create unique index on the flow table:

    creating index < % = odiRef.getTable ("L", "INT_NAME", "A") % > idx

    on < % = odiRef.getTable ("L", "INT_NAME", "A") % > (< % = odiRef.getColList ("", "[column]", ",", "", "SCD_NK") % >)

    < % = odiRef.getUserExit ("FLOW_TABLE_OPTIONS") % >

    generate the following statement which lacks the name of the column between the (_)

    Create index I$ _MYTABLE_idx

    I have $_MYTABLE)

    NOLOGGING

    The result is that the interface fails with the error 936: 42000: java.sql.SQLException: ORA-00936: lack of expression caused by the previous command wrong.

    Please, can you help me?

    Thank you very much

    Angelo

    Hello

    I'm really really sorry! I just realized that you are working on the SCD. Basically, you are looking for all the column mapped as SCD_NK (key to slowly change natural Dimensions) insofar as shown here

    Substitution QAnywhere

    IF you need to read this

    SCD Type 2 - ODIExperts.com

    Let me know.

  • doubt about the Index Skip Scan

    Hi all

    I read the setting of Oracle performance guide (Version 11.2 Chapter 11). I just want to see index skip scan with an example. I created a table called t and inserted the test data. When I asked the table optimizer did not use the index skip scan path.

    Can you please let me know what mistake I am doing here.

    Thanks a lot for your help in advance.

    SQL > create table t (empno number
    2, ename varchar2 (2000)
    3, varchar2 (1) sex
    4, email_id varchar2 (2000));

    Table created

    SQL >
    SQL >-test data
    SQL > insert into t
    2 level, select "suri" | (level), ','suri.king' | level | ' @gmail.com'
    3 double
    4. connect by level < = 20000
    5.

    20000 lines inserted

    SQL >
    SQL > insert into t
    2 Select level + 20000, 'surya ' | (level + 20000), 'F', 'surya.princess'. (level + 20000) : ' @gmail.com '
    3 double
    4. connect by level < = 20000
    5.

    20000 lines inserted

    SQL > create index t_gender_email_idx on t (gender, email_id);

    Index created

    SQL > explain the plan for
    2 Select
    3 t
    4 where email_id = "[email protected]";

    He explained.

    SQL > select *.
    table 2 (dbms_xplan.display);

    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------------------
    Hash value of plan: 1601196873

    --------------------------------------------------------------------------
    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
    --------------------------------------------------------------------------


    |   0 | SELECT STATEMENT |      |     4.  8076 |   103 (1) | 00:00:02 |
    |*  1 |  TABLE ACCESS FULL | T    |     4.  8076 |   103 (1) | 00:00:02 |
    --------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    1 - Filter ("EMAIL_ID"= "[email protected]")

    Note
    -----
    -dynamic sample used for this survey (level = 2)

    17 selected lines.

    See you soon,.

    Suri

    You have just demonstrated how your execution plan gets screwed up if you do not have your statistics

    SQL > create table t
    () 2
    3 empno number
    4, ename varchar2 (2000)
    5, varchar2 (1) sex
    6, email_id varchar2 (2000)
    7  );

    Table created.

    SQL > insert into t
    2 Select level, "suri" | (level), ', 'suri.king'| level | ' @gmail.com'
    3 double
    4. connect by level<=>
    5.

    20000 rows created.

    SQL > insert into t
    2 Select level + 20000, 'surya ' | (level + 20000), 'F', 'surya.princess'. (level + 20000) : ' @gmail.com'
    3 double
    4. connect by level<=>
    5.

    20000 rows created.

    SQL > create index t_gender_email_idx on t (gender, email_id);

    The index is created.

    SQL > set autotrace traceonly explain
    SQL >
    SQL > select *.
    2 t
    3 where email_id = "[email protected]";

    Execution plan
    ----------------------------------------------------------
    Hash value of plan: 2153619298

    --------------------------------------------------------------------------
    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
    --------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |      |     3.  6057.    79 (4) | 00:00:01 |
    |*  1 |  TABLE ACCESS FULL | T    |     3.  6057.    79 (4) | 00:00:01 |
    --------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    1 - Filter ("EMAIL_ID"= "[email protected]")

    Note
    -----
    -dynamic sampling used for this statement

    SQL > exec dbms_stats.gather_table_stats (user, 't', cascade-online true)

    PL/SQL procedure successfully completed.

    SQL > select *.
    2 t
    3 where email_id = "[email protected]";

    Execution plan
    ----------------------------------------------------------
    Hash value of plan: 2655860347

    --------------------------------------------------------------------------------------------------
    | ID | Operation | Name               | Lines | Bytes | Cost (% CPU). Time |
    --------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                    |     1.    44.     1 (0) | 00:00:01 |
    |   1.  TABLE ACCESS BY INDEX ROWID | T                  |     1.    44.     1 (0) | 00:00:01 |
    |*  2 |   INDEX SKIP SCAN | T_GENDER_EMAIL_IDX |     1.       |     1 (0) | 00:00:01 |
    --------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    2 - access ("EMAIL_ID"= '[email protected]')
    filter ("EMAIL_ID"= "[email protected]")

    SQL >

  • Creating INDEX on a BLOB column in a separate tablespace

    Hello


    Our database contains 2 storage spaces :

    -Tablespace DATA : is reserved to hold the data.

    -Tablespace INDX: is reserved to hold the index.


    For some reason, that we must create the indexes on columns of type blob and the pending order are:

    SQL > CREATE INDEX my_index ON DOC_CONTENTS (doc_content) INDEXTYPE IS CTXSYS. CONTEXT;  / / doc_content a blob type.

    SQL> index created

    Now, all indexes are created in the tablespace for DATA that is not good, they should be created in the tablespace INDX (now is empty)

    For this reason, and after a search, I specified the tablespace INDX , which will contain the index, and the used command is:

    SQL > CREATE INDEX my_index ON DOC_CONTENTS (doc_content) INDEXTYPE IS CTXSYS. CONTEXT TABLESPACE INDX;

    *

    ERROR on line 1:

    ORA-29850: invalid option for creating domain index

    NB: also, when I try to use the same command with varchar column, it works.

    SQL > CREATE INDEX my_index ON DOC_CONTENTS (doc_name) TABLESPACE INDX;  / / doc_content a type VARCHAR2.

    SQL> index created


    Do you have an idea on how to create indexes on a blob column in a different tablespace?

    This question has nothing to do with the Oracle objects, but is related to Oracle Text, then perhaps that some moderator moves text objects.

    To specify a storage space for a ctxsys.context Oracle Text index domain index tables, you must create a storage preference, specify storage spaces in attributes of this preference, then use this preference in settings of creating index.  Please see the example below which shows first create domain index tables in the default users tablespace, then the creation of the field tables to be indexed in the example tablespace.

    Scott@orcl_11gR2 >-test environment:

    Scott@orcl_11gR2 > doc_contents CREATE TABLE

    2 (doc_content BLOB)

    3.

    Table created.

    Scott@orcl_11gR2 > INSERT INTO doc_contents VALUES

    2 (UTL_RAW. CAST_TO_RAW ("test data"))

    3.

    1 line of creation.

    Scott@orcl_11gR2 >-create domain index tables in default users tablespace:

    Scott@orcl_11gR2 > my_index CREATE INDEX

    2 doc_contents (doc_content)

    3 INDEXTYPE IS CTXSYS. FRAMEWORK

    4.

    The index is created.

    Scott@orcl_11gR2 > SELECT index_name, nom_tablespace

    2 FROM user_indexes

    3. WHERE index-name LIKE '% MY_INDEX % '.

    4.

    INDEX_NAME TABLESPACE_NAME

    ------------------------------ ------------------------------

    MY_INDEX

    DR.$ MY_INDEX$ X USERS

    2 selected lines.

    Scott@orcl_11gR2 > SELECT table_name, nom_tablespace

    2 FROM user_tables

    3 WHERE table_name LIKE '% MY_INDEX % '.

    4.

    TABLE_NAME, TABLESPACE_NAME

    ------------------------------ ------------------------------

    DR. MY_INDEX$ I HAVE USERS

    USERS R DR$ MY_INDEX$

    DR.$ MY_INDEX$ N

    DR.$ MY_INDEX$ K

    4 selected lines.

    Scott@orcl_11gR2 >-creating the tables index field in example of tablespace:

    Scott@orcl_11gR2 > my_index DROP INDEX

    2.

    The index is deleted.

    Scott@orcl_11gR2 > start

    2 ctx_ddl.create_preference ("mystore', 'BASIC_STORAGE'");

    3 ctx_ddl.set_attribute ("mystore', 'I_TABLE_CLAUSE',")

    4 "tablespace storage example (original 1 K) ');

    5 ctx_ddl.set_attribute ("mystore', 'K_TABLE_CLAUSE',")

    6 "tablespace storage example (original 1 K) ');

    7 ctx_ddl.set_attribute ("mystore', 'R_TABLE_CLAUSE',")

    8 ' lob tablespace storage example (original 1 K)

    9 (data) store as (storage off in row cache)');

    10 ctx_ddl.set_attribute ("mystore', 'N_TABLE_CLAUSE',")

    11 "tablespace storage example (original 1 K) ');

    12 ctx_ddl.set_attribute ("mystore', 'I_INDEX_CLAUSE',")

    13 ' example of tablespace storage (initial 1 K) compress 2 ');

    14 ctx_ddl.set_attribute ("mystore', 'P_TABLE_CLAUSE',")

    15 "tablespace storage example (original 1 K) ');

    16 ctx_ddl.set_attribute ("mystore', 'S_TABLE_CLAUSE',")

    17 "tablespace storage example (original 1 K) ');

    18 end;

    19.

    PL/SQL procedure successfully completed.

    Scott@orcl_11gR2 > my_index CREATE INDEX

    2 doc_contents (doc_content)

    3 INDEXTYPE IS CTXSYS. FRAMEWORK

    4 PARAMETERS ('STORAGE mystore')

    5.

    The index is created.

    Scott@orcl_11gR2 > SELECT index_name, nom_tablespace

    2 FROM user_indexes

    3. WHERE index-name LIKE '% MY_INDEX % '.

    4.

    INDEX_NAME TABLESPACE_NAME

    ------------------------------ ------------------------------

    MY_INDEX

    DR.$ MY_INDEX$ X FOR EXAMPLE

    2 selected lines.

    Scott@orcl_11gR2 > SELECT table_name, nom_tablespace

    2 FROM user_tables

    3 WHERE table_name LIKE '% MY_INDEX % '.

    4.

    TABLE_NAME, TABLESPACE_NAME

    ------------------------------ ------------------------------

    DR. MY_INDEX$ I EXAMPLE

    DR.$ MY_INDEX$ R EXAMPLE

    DR.$ MY_INDEX$ N

    DR.$ MY_INDEX$ K

    4 selected lines.

    Post edited by: BarbaraBoehmer (corrected for error due to the already existing preference)

  • Get the error when creating indexes in RAC environment in 11 g

    Hi all

    I'm new concept CARS when creating index get below error

    Error: AX_DISABLE_HIST - a SQL error. Position of the error: 0
    Return: 12801 - ORA-12801: error reported in the P146, proceeding parallel query server
    ORA-12853: insufficient memory for buffers PX: run 425904K,.
    Max needed 11105280 K ORA-04031: unable to allocate 32792 bytes of memory ('', 'unknow shared pool
    UNIQUE INDEX CREATE PS_AX_DISABLE_HIST WE PS_AX_DISABLE_HIST (EMPLID) TABLESPACE PSINDEX STORAGE
    (MAXEXTENTS THEN 65536 40000 INITIAL UNLIMITED PCTINCREASE 0) PCTFREE 10 NOLOGGING PARALLEL

    am not able to understand, it's this problem is related to the index or sga memory. can any time help me on that.

    Thanks in advance
    Prabhakar

    Published by: 889571 on May 16, 2013 07:41

    You probably need SGA more because you have a lot of Parallels/slave servers in your instance. I see that you have at least 146. How many processors do you have? Do you need so many parallel servers?

    Lordane Iotzov

  • Oracle Text, create index (indextype is ctxsys.context)

    Dear Sirs,

    I am a new user of text Oracle (Oracle 11 g release 11.2) and I'm unable to create an index of type ctxsys.context). Any suggestions? :

    Code:
    drop table mytable;
    drop index myindex force;
    create table mytable (id number primary key, docs clob);

    insert into mytable values (111555, "this text will be indexed '");
    insert into mytable values (111556, "it is an example of default data store");
    commit;

    create index myindex on mytable (docs)
    indexType is ctxsys.context
    parameters ("DATASTORE CTXSYS. DEFAULT_DATASTORE');
    +++++++
    error messages:
    create index myindex on mytable (docs)
    *
    ERROR on line 1:
    ORA-29855: an error has occurred in the execution of routine ODCIINDEXCREATE
    ORA-20000: Oracle text error:
    ORA-06508: PL/SQL: called program unit is not found
    ORA-06512: at "CTXSYS. DRUE", line 160
    ORA-06512: at "CTXSYS. TEXTINDEXMETHODS', line 366

    Please check for invalid objects. Connect as sys or system and run:

    Select object owner, object_name, object_type where status = 'INVALID ';

    View the results here and we will advise the next step.
    If all the objects owned by CTXSYS are not valid, you will need to recompile the schema CTXSYS.

  • Creating Index Spatial problems (Beginner)

    I get the below error:

    CREATE INDEXES HHLT. BUILDING_SPATIAL_IDX
    *
    ERROR on line 1:
    ORA-29855: an error has occurred in the execution of routine ODCIINDEXCREATE
    ORA-13203: cannot read the notice USER_SDO_GEOM_METADATA
    ORA-13203: cannot read the notice USER_SDO_GEOM_METADATA
    ORA-06512: at the 'MDSYS. SDO_INDEX_METHOD_10I', line 10


    When I select run the following, I get:
    Select * from mdsys.sdo_geom_metadata_table;

    SDO_OWNER SDO_TABLE_NAME
    -------------------------------- --------------------------------
    SDO_COLUMN_NAME
    --------------------------------------------------------------------------------

    SDO_DIMINFO (SDO_LB, SDO_UB, SDO_DIMNAME, SDO_TOLERANCE)
    --------------------------------------------------------------------------------

    SDO_SRID
    ----------
    BUILDING SYS
    BUILDING_POLYGON
    SDO_DIM_ARRAY (SDO_DIM_ELEMENT ('X', 0,.005, 820), SDO_DIM_ELEMENT ('Y', 0, 580,.)

    005))



    This is my script:
    =========================
    create user HHLT identified by HHLT;
    grant all privileges on HHLT;

    ALTER session set current_schema = HHLT;

    CREATE THE TABLE HHLT. BUILDING
    (
    BUILDING_ID VARCHAR2 (3),
    BUILDING_NAME VARCHAR2 (50).
    VERTICES_COUNT INT,
    MDSYS BUILDING_POLYGON. SDO_GEOMETRY,
    CONSTRAINT BUILDING_PK PRIMARY KEY (BUILDING_ID)
    );

    INSERT IN USER_SDO_GEOM_METADATA
    VALUES ('CONSTRUCTION', 'BUILDING_POLYGON',
    SDO_DIM_ARRAY (SDO_DIM_ELEMENT ('X', 0, 820, 0.005),
    SDO_DIM_ELEMENT ('Y', 0, 580, 0.005)), NULL);

    COMMIT;

    CREATE INDEXES ELKORDY. BUILDING_SPATIAL_IDX
    ON ELKORDY. BUILDING (BUILDING_POLYGON)
    INDEXTYPE IS MDSYS. SPATIAL_INDEX;
    ==================================

    What Miss me? Windows 7 installation work.

    Dear nobody without a name...

    It looks like the cross-schema issues for me.

    You do all your work in the HHLT schema and then, at the end of your script, you do this:

    CREATE INDEX ELKORDY.BUILDING_SPATIAL_IDX
     ON ELKORDY.BUILDING(BUILDING_POLYGON)
     INDEXTYPE IS MDSYS.SPATIAL_INDEX;
    

    You are still in your message:

    CREATE INDEXES HHLT. BUILDING_SPATIAL_IDX

    Sorry, who is?

    In addition, when you select in the metadata table it tells you that the table of the BUILDING is in the SYS schema (SYS is the owner), but not in HHLT or ELKORDY!

    I think that:

    ALTER session set current_schema = HHLT;

    Do not connect you expect - you are still the user SYS - so that when you did:

    INSERT INTO USER_SDO_GEOM_METADATA
     VALUES ('BUILDING', 'BUILDING_POLYGON',
     SDO_DIM_ARRAY( SDO_DIM_ELEMENT('X', 0, 820, 0.005),
     SDO_DIM_ELEMENT('Y', 0, 580, 0.005)), NULL);
    

    It combined the metadata with the SYS owner and not the owner of HHLT where the error during the creation of the index.

    I would recommend you.

    1. connect as the SYS schema.
    2. remove metadata objects.
    3. plug into a new session on the schema HHLT as user HHLT.
    5. create a new metadata entry in user_sdo_geom_metadata when in the HHLT schema.
    6 create the index (drop all existing broken index first).

    concerning
    SImon

Maybe you are looking for

  • problems with Apple ID and ID cloud

    OK, I'm really frustrated.  I tried to find an IPHONE is missing today and even though I had turned on the "Find my phone" feature, I was unable to use it.  Long story short, I found the phone in my apartment without function, and now I want to make

  • Question about the installation of Windows XP Home edition on two laptops Satellite A200

    Hello everyone, I have 2 laptops (Toshiba Satellite A200) but in different modelA200-1z3 and A200-1ubI need to install XP on them and they have VISTA OS I have the drivers but I've heard that I need to install the driver SATA HD I heard about a progr

  • HP jet pro 8600 desktop

    you just bought the jet office pro 8600.  I want to go to eprint request my code but I can't.  a help Becky

  • My brand-new U410 has a key on the keyboard has no

    When I am very happy with my new laptop, I just realize that the "s" key had a problem. It is hard to type and seems to be looser than the rest of the keys. I like to shoot to wound again but don't know how to do. In any case, is it a good idea to ta

  • Volume taken exit z3

    Is it possible to increase the volume on the plug? The sound is so much lower than on my samsung s3 phone.