Creating Index on another table in schema stored in my table

Hello
I want to create indexes on a table column that is in another schema of my schema and index will be stored in my diagram.

ex: the current user 'hr '.
SQL > create index idx1 on scott.emp (eno);

Does the above query?

Thank you
Sri
SQL> conn
Enter user-name: hr@****
Enter password:
Connected.
SQL> create index ndx on scott.emp(sal);

Index created.

SQL> show user
USER is "HR"

SQL> select index_name from user_indexes where index_name = 'NDX';

INDEX_NAME
------------------------------
NDX

Tags: Database

Similar Questions

  • 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

  • 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.

  • Function Index to another Table

    Hello developers,

    Here is sample to exist when the clause, reason why I'll give you a quick explanation... the company wants.

    Select blah blah blah
    view bla
    where blah_date decode the interval ((«Aujourd'hui», «Aujourd'hui», (select a.date from update_table, dont le processus = 'remplir'), to_date (< < entered_date > >, ' dd/mm/yyyy')))

    My question is, that it will be possible (recommended) to create indexes of function that refers to another table? I tried, but it is not created successfully, put: 1 where I reference the subselect.

    As many of you know, the query runs much faster and does not full table scan or scan limited complete index if the decoding function is removed from the equation. However, as mentioned at the beginning, the company asked it, so we try to answer. ' Executing the query * horrible "with the decode function, so any help/advice you can give would be much appreciated.

    Thank you
    Mike

    * After all of my research and testing (at least two weeks now), the F.B.I path is probably the only solution available that will increase performance.

    I'm not, in general. a big fan of views on views, including such that it appears, based on the names of your sample, that there is an environment of DW. It seems to me that you try to answer view2 a qquestion isn't really designed to answer.

    I am tempted to re - write the thing using base tables instead of views which would give you a better chance of using the index on the date column. It would also probably you can eliminate a lot of unnecessary things, lines or columns or both that could affect the choice of paths optimizer.

    John

  • creating indexes on partitioned tables...

    Hi all
    I use 11g. creates a table with partition on transaction_dt. Now I have to create index based on the combination of the column below.
    can anyone suggest the best method to create the partioned indexes based on the underside of the columns?

    enjoyed the great suggestions...
    CREATE INDEX TB_PRCHS_SALE_TRANS_BASE_IDX1 ON TB_PRCHS_SALE_TRANS_BASE
    (TRANSACTION_DT, VENDOR_ACCT_NBR, VENDOR_SECURITY_NBR);
    
    
    CREATE INDEX TB_PRCHS_SALE_TRANS_BASE_IDX2 ON TB_PRCHS_SALE_TRANS_BASE
    (TRANSACTION_DT, ING_ACCT_NBR, ING_SECURITY_NBR);
    
    
    CREATE INDEX TB_PRCHS_SALE_TRANS_BASE_IDX3 ON TB_PRCHS_SALE_TRANS_BASE
    (TRADE_DT, SETTLEMENT_DT, VENDOR_ACCT_NBR, VENDOR_SECURITY_NBR);
    
    
    CREATE UNIQUE INDEX TB_PRCHS_SALE_TRANS_BASE_PK ON TB_PRCHS_SALE_TRANS_BASE
    (TRANS_CONTROL_ID);
    
    
    CREATE INDEX TB_PRCHS_SALE_TRANS_INDX3 ON TB_PRCHS_SALE_TRANS_BASE
    (OLD_TRANSACTION_ID);
    
    
    ALTER TABLE TB_PRCHS_SALE_TRANS_BASE ADD (
      CONSTRAINT TB_PRCHS_SALE_TRANS_BASE_PK
     PRIMARY KEY
     (TRANS_CONTROL_ID));
    
    
    Table
    ====================
    
    CREATE TABLE TB_PRCHS_SALE_TRANS_BASE
    (
      TRANSACTION_DT              DATE              NOT NULL,
      TRANS_CONTROL_ID            NUMBER            NOT NULL,
      VENDOR_CD                   CHAR(3 BYTE)      NOT NULL,
      ING_ACCT_NBR                NUMBER(10)        NOT NULL,
      ING_ACCT_TYPE_CD            CHAR(1 BYTE)      NOT NULL,
      ING_SECURITY_NBR            NUMBER(10)        NOT NULL,
      VENDOR_ACCT_NBR             VARCHAR2(10 BYTE) NOT NULL,
      VENDOR_ACCT_TYPE_CD         CHAR(1 BYTE)      NOT NULL,
      VENDOR_ACCT_CHCK_CD         CHAR(1 BYTE)      NOT NULL,
      VENDOR_SECURITY_NBR         VARCHAR2(10 BYTE),
      BUY_SELL_CD                 CHAR(1 BYTE)      NOT NULL,
      TRADE_DT                    DATE,
      SETTLEMENT_DT               DATE,
      CREATE_USER                 VARCHAR2(50 BYTE),
      UPDATE_TS                   DATE,
      UPDATE_USER                 VARCHAR2(50 BYTE),
      OLD_TRANSACTION_ID          NUMBER(10)
    partition by range (TRANSACTION_DT)
    interval (numtoyminterval(1,'YEAR'))
    (
       partition p001 values less than (date '2002-01-01'),
       partition p002 values less than (date '2003-01-01'),
       partition p003 values less than (date '2004-01-01'),
       partition p004 values less than (date '2005-01-01'),
       partition p005 values less than (date '2006-01-01'),
       partition p006 values less than (date '2007-01-01'),
       partition p007 values less than (date '2008-01-01'),
       partition p008 values less than (date '2009-01-01'),
       partition p009 values less than (date '2010-01-01'),
       partition p010 values less than (date '2011-01-01'),
      );
     
    CREATE INDEX TB_PRCHS_SALE_TRANS_INDX3 ON TB_PRCHS_SALE_TRANS_BASE
    (OLD_TRANSACTION_ID)
    LOCAL
    (
    partition p001,
    partition p002,
    partition p003,
    partition p004,
    partition p005,
    partition p006,
    partition p007,
    partition p008,
    partition p009,
    partition p010
    )
    /
    -- Since PK column set does not include partitioning colums
    -- you can't create LOCAL partitioned index.
    ALTER TABLE TB_PRCHS_SALE_TRANS_BASE ADD
     CONSTRAINT TB_PRCHS_SALE_TRANS_BASE_PK
    PRIMARY KEY
    (TRANS_CONTROL_ID)
    USING INDEX
    GLOBAL
    (
    partition p001,
    partition p002,
    partition p003,
    partition p004,
    partition p005,
    partition p006,
    partition p007,
    partition p008,
    partition p009,
    partition p010
    )
    /
    

    SY.

  • 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.

  • Index on I$ Table

    Hi professionals,.

    I have the following indexes on the target table.

    CREATE INDEXES M23123MGR. SALE_IDX ON M23123MGR. DW_SALES_DIM
    (NVL("PKG_SALE_CODE",'-1'))
    LOGGING
    TABLESPACE WDSTAGE0T01
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE)
    INITIAL 1 M
    ACCORDING TO 1 M
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    DEFAULT USER_TABLES
    )
    NOPARALLEL;


    CREATE INDEXES M23123MGR. SALE__ID ON M23123MGR. DW_SALES_DIM
    (PROJECT_SALE_CODE, CONTENT_ID)
    NOLOGGING
    TABLESPACE WDSTAGE0T01
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE)
    INITIAL 1 M
    ACCORDING TO 1 M
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    DEFAULT USER_TABLES
    )
    NOPARALLEL;



    During execution of the ODI in interface the following M23123MGR. I have$ _DW_SALES_DIM is filled with the next index.

    CREATE
    INDEX M23123MGR. I HAVE$ _DW_SALES_DIM_ID ON M23123MGR. I _DW_SALES_DIM $
    (
    CONTENT_ID, PROJECT_SALE_CODE, PKG_SALE_CODE)
    NOLOGGING
    TABLESPACE WDSTAGE0T01
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE
    (
    INITIAL 1 M
    ACCORDING TO 1 M
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    DEFAULT USER_TABLES
    )
    NOPARALLEL;



    The problem I encounter is that UPDATE the table takes too long. I need suggestions on how to call the same indexes in the table M23123MGR. DW_SALES_DIM in the M23123MGR table. I HAVE _DW_SALES_DIM$.

    There are at least 2 possible options to create indexes:

    (1) you can customize your KM to match your needs. You could look at the existing step 'create index' at km and change or add your own step "create index" in the same way.
    (2) also you might disable I drop $ objects optins in KM and manually create indexes on I$ table.

    But citing the index depends mainly on the OBC Oracle not ODI, ODI cause is E - LT technology.

  • Create a new table from another table which are ussing a stored procedure

    Hello

    I want to know if it is posibble to create a new table from another table which are ussing a stored procedure. This new table is created from another table that exists in the DB.
    (in the following code the table tbl1 exist in the schema of the DB, but temp_tbl1 does not exist, it must be created by the procedure)

    create or replace procedute temp is
    temp_tbl1 tbl1% TYPE; the temp_tbl1 will have the same type of tbl1
    Start
    create the table temp_tbl1 as (select * from tbl1);
    time of the end;
    \


    Thank you very much

    Yes, it is possible to create a table using a procedure.
    Do everything that use dynamic SQL is

    Try this:

    ==================================================
    create or replace PROCEDURE Create Table as
    BEGIN
    EXECUTE IMMEDIATE ' CREATE TABLE testtable in select * from testingtable';
    END createtable;
    ==================================================

    Kind regards
    Ankur

  • How to call user B to drop/create an indexes on a table owned by the user has?

    Hello!
    We have the following situation:
    = > user B has a table that has an index
    = > user connects to the database and must have sufficient privileges or the ability to drop/create an index for a table owned by the user B.
    Since there are several different schemas in the database, it is not possible to grant the privilege "to create any index' or 'delete any index '.
    for the user.
    = > to do even more complicated: the necessary procedure must not belong to user B

    I tried to solve this problem with a stored procedure (which belongs to user C). Why do we use user C? C the user has several packages,
    procedures and functions that get used by other users (for example for purposes of logging, refresh materialized views,...)

    So the logic is:
    = > user A calls user procedure C. In this procedure the call "run immediately" ALTER SESSION SET CURRENT_SCHEMA = B' "»
    is executed successfully. The next step, the < drop index B.i1 > statement would get executed. But this statement fails with the
    exception ' ORA-01031: insufficient privileges ".

    If this procedure is created in the schema of the user B then everything works fine - but because of our current design of the database, this procedure
    must belong to the user C.

    Does anyone know a solution to this problem?

    Any help will be appreciated

    Rgds
    JH

    I think you need the privilege DROP_ANY_INDEX directly to user C.

  • How to insert data into the table of plain text stored as a CLOB in another table

    Hi people,

    Maybe it's an easy question for someone who is more frequently used files and CLOB.

    I have a table that stores text files in the CLOB column. Files text includes some basic data that I want to load in the other - a text line = a new insert for me. Is there a "trick" how to do it effectively?

    Here is my model:

    Table OS_IMPORT_DOCS, stores the complete files as CLOB
    SQL> desc OS_IMPORT_DOCS
    Name          Type           Nullable Default Comments 
    ------------- -------------- -------- ------- -------- 
    OBJECT_ID     NUMBER                                   
    DATUM_ZMENY   DATE                    sysdate          
    FILE_PATH     VARCHAR2(4000) Y                         
    FILE_NAME     VARCHAR2(4000) Y                         
    FILE_SIZE     NUMBER         Y                         
    LAST_MODIFIED DATE           Y                         
    DOCUMENT      CLOB           Y                         
    STATUS        VARCHAR2(15)   Y        'NEW'  
    Sample data from OS_IMPORT_DOCS
    SQL> select *
      2    from os_import_docs d
      3  order by d.last_modified desc
      4  ;
     
     OBJECT_ID DATUM_ZMENY FILE_PATH                      FILE_NAME       FILE_SIZE  LAST_MODIFIED DOCUMENT    STATUS
    ---------- ----------- ------------------------------ --------------- ---------- ------------- ----------- ---------------
       1815043 13.8.2012 1 d:\data\C120813.DAT            C120813.DAT          16800 13.8.2012 16: <<CLOB>>    NEW
       1815042 13.8.2012 1 d:\data\C120812.DAT            C120812.DAT           3600 12.8.2012 22: <<CLOB>>    NEW
       1815041 13.8.2012 1 d:\data\C120811.DAT            C120811.DAT           1800 11.8.2012 13: <<CLOB>>    NEW
    Example of file CLOB - stored text data (select d.document from os_import_docs d where d.object_id = 1815042 ;)
    061053120820120000AGT000002Osoby                   0000000042301000000017210632
    062322120820120000AGT000002Osoby                   0000000012301000000017197566
    063526120820120001AGT000002Osoby                   0000000012301000000017197566
    064234120820120001AGT000002Osoby                   0000000103301000000162218777
    Above the example text includes "columns" in plain text:
    timestamp - 1-14, SSMIHH24DDMMYYYY position format
    flag - post 15-18
    company code - position 19-27
    etc...

    How can I query data stored within the OS_IMPORT_DOCS. The DOCUMENT column, divide it into columns and insert into another table?
    I have to read this method of 'online' file?


    Thank you very much
    Tomas

    For the first three columns:

    SQL> create type TRecord is object (
      2    ts           timestamp
      3  , flag         varchar2(4)
      4  , company_code varchar2(9)
      5  );
      6  /
    
    Type created
    
    SQL>
    SQL> create type TRecordTable is table of TRecord;
      2  /
    
    Type created
    
    SQL>
    SQL> create or replace function parse_clob (p_doc in clob)
      2  return TRecordTable pipelined
      3  is
      4    lf      number;
      5    eol     varchar2(2) := chr(10);
      6    eollen  number := length(eol);
      7    line    varchar2(32767);
      8    offs    number := 1;
      9  begin
     10    loop
     11      lf := dbms_lob.instr(p_doc, eol, offs);
     12      if lf != 0 then
     13        line := dbms_lob.substr(p_doc, lf - offs + 1 - eollen, offs);
     14        offs := lf + eollen;
     15      else
     16        line := dbms_lob.substr(p_doc, dbms_lob.getlength(p_doc) - offs + 1, offs);
     17      end if;
     18      pipe row (
     19        TRecord(
     20          to_timestamp(substr(line, 1, 14), 'HH24MISSDDMMYYYY')
     21        , substr(line, 15, 4)
     22        , substr(line, 19, 9)
     23        )
     24      );
     25      exit when lf = 0;
     26    end loop;
     27  end;
     28  /
    
    Function created
    
    SQL>
    SQL> select t.*
      2  from os_import_docs d
      3     , table(parse_clob(d.document)) t
      4  where d.object_id = 1815042;
    
    TS                                     FLAG COMPANY_CODE
    -------------------------------------- ---- ------------
    12/08/12 06:10:53,000000               0000 AGT000002
    12/08/12 06:23:22,000000               0000 AGT000002
    12/08/12 06:35:26,000000               0001 AGT000002
    12/08/12 06:42:34,000000               0001 AGT000002
     
    
  • Table exists but still error: ORA-00942, isn't able to create indexes: Help

    It's my script... the table FLASH_SALES_BY_STORE_AND_HOUR exist in my database, so why I get the error message.
    ERROR on line 1:
    ORA-00942: table or view does not exist



    Here is my script.

    ASK for IDX_SALES_STORE_DEL

    CREATE INDEX IDX_SALES_STORE_DEL ON FLASH_SALES_BY_STORE_AND_HOUR (STORE_ID, TRUNC (LOCAL_DATE))
    TABLESPACE 'FLASH '.
    STORAGE
    (
    DEFAULT USER_TABLES
    )
    /

    QUICK creation IDX_SALES_STORE_VIEWexit


    CREATE INDEX IDX_SALES_STORE_VIEW ON FLASH_SALES_BY_STORE_AND_HOUR (STORE_ID, TRUNC (LOCAL_DATE), DEPARTMENT)
    TABLESPACE 'FLASH '.
    STORAGE
    (
    DEFAULT USER_TABLES
    )
    /

    Please, re - run the script as the user who owns the table...

    Otherwise, add the schema name before the name of the index (if not index will be created under SYS) and table name (since you missed the creation of synonym).

    HTH,
    Thierry

  • Implementation error on step "Create Unique Index on flow table.

    Hello

    I'm getting following error on execution of the interface. It simple interface with text file as source and oracle table as the target. Primary key has been set on the Empno column in the target. I tried to use all the CKM but error remains the same. I disabled the journaling option as well. Here is the statement that it generates for unique indexes

    create a unique index ABC. "I have _Emp$ 'idx '.
    on ABC. "" I have$ _Emp ' ('Empno')


    I did not understand why she strives to create a unique index on the flow table, even when I turn off the option in CKM for does not create index. Even more later, I tried with the evolution of the seam, but error remains same. Initially, I tried with Oracle CKM (Create Index for the I$ Table), then turned off the option to create indexes, then tried out with CKM SQL and Oracle CKM, but result is the same.


    Any help is appreciated.

    Thank you
    -CHikk


    911: 42000: java.sql.SQLException: ORA-00911: invalid character

    java.sql.SQLException: ORA-00911: invalid character


    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)

    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)

    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)

    at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)

    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)

    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)

    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)

    at com.sunopsis.sql.SnpsQuery.executeUpdate (SnpsQuery.java)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders (SnpSessTaskSql.java)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt (SnpSessTaskSql.java)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSqlI.treatTaskTrt (SnpSessTaskSqlI.java)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask (SnpSessTaskSql.java)

    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep (SnpSessStep.java)

    at com.sunopsis.dwg.dbobj.SnpSession.treatSession (SnpSession.java)

    at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand (DwgCommandSession.java)

    at com.sunopsis.dwg.cmd.DwgCommandBase.execute (DwgCommandBase.java)

    at com.sunopsis.dwg.cmd.e.i (e.java)

    at com.sunopsis.dwg.cmd.g.y (g.java)

    at com.sunopsis.dwg.cmd.e.run (e.java)

    at java.lang.Thread.run (unknown Source)

    Hello

    Just go to the topology, the physical Architecture, right-click on Oracle technology and another tab change the delimiter 'object' for nothing...

    That will fix it.

  • I'm trying to create another table and insert data to practice... How can I insert multiple values?

    I created another table for practice on two tables queries now.

    That's what I have:

    Insert in the test

    (address, age, status, DriverID)

    values ("131 Shore Drive", "Edison, NJ, 08011 ', ' 55', m ', '2').

    ("' 62 central avenue", "Middletown, NJ 08011', ' 43 ', am ', ' 1'");

    ('98 main street', ' Bristol, PA 19116 ', ' 67', the of ', '3' ").

    ('15 wrong Way', ' Long Island, NY 10111 ', ' 60', 'W', '4' '),

    ("' Kevin 9 Place", "New York, NY 10111 ', ' 25', the of ', '5'");

    It says command SQL is not properly terminated.

    Like this:

    Insert into test (address, age, status, DriverID)

    values ("131 Shore Drive", "Edison, NJ, 08011 ', ' 55', m ', '2');

    Insert into test (address, age, status, DriverID)

    values ("62 Middle Avenue", "Middletown, NJ 08011', ' 43 ', am ', ' 1'");

    ...

  • How to create faster index in the table of 500 GB

    Dear Experts,

    I have to create 20 index on table data-ware house. This table is of size 500 GB.

    freshen up this weekly chart using the external table.

    creating 20 indexes on this table consumes a lot of time.

    I have 40 GB of ram on 2012 box windows with 8 processors.

    I installed 11 GR 2.

    I have 4 drives C D E F

    for AN index, it takes 4 hours


    I added enough space to the tablespace

    I put the tablespace in a drive D:\


    I'm under control to create indexes below

    create index  X_3_INVEN_ITEM_ID_IDX  on   X_3_PV_TD_2 (INVENTORY_ITEM_ID)  parallel 32 nologging;
    
    

    output long ops

    SID, SERIAL # CONTEXT SOFAR TOTALWORK LESS TARGET % _COMPLETE TIME_REMAINING

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

    108 10 0 3758 140973 Rowid Scan AD range. X_3_PV_TD_2                                    2.67            256

    173 23 0 5279 141470 Rowid Scan AD range. X_3_PV_TD_2                                    3.73            258

    114 6 0 10092 141786 Rowid Scan AD range. X_3_PV_TD_2                                    7.12            261

    99         59          0      46283     325908 Sort Output                                                                                                                     14.2          15207

    68        214          0      46763     323623 Sort Output                                                                                                                    14.45          14973

    35         93          0      47531     318364 Sort Output                                                                                                                    14.93          14570

    164         70          0      45058     288506 Sort Output                                                                                                                    15.62          12886

    227         31          0      44130     282285 Sort Output                                                                                                                    15.63          13011

    13          3          0      51890     309515 Sort Output                                                                                                                    16.76          12874

    222 67 0 28837 141380 Rowid Scan AD range. X_3_PV_TD_2                                    20.4            343

    73 37 0 32472 141488 Rowid Scan AD range. X_3_PV_TD_2 22.95 212

    47 8 0 34332 141154 Rowid Scan AD range. X_3_PV_TD_2 24,32 202

    176 20 0 35197 141161 Rowid Scan AD range. X_3_PV_TD_2 24.93 205

    19 7 0 35239 141325 Rowid Scan AD range. X_3_PV_TD_2 24.93 205

    80 4 0 40399 141611 Rowid Scan AD range. X_3_PV_TD_2 28,53 193

    144 20 0 44960 141481 Rowid Scan AD range. X_3_PV_TD_2 31,78 182

    233 101 0 74086 169228 Rowid Scan AD range. X_3_PV_TD_2 43,78 176

    128 165 0 78765 141436 Rowid Scan AD range. X_3_PV_TD_2 55.69 173

    235 1 0 41199796 70035728 table Scan AD. X_3_PV_TD_2 58,83 19804

    199 6 0 52748651 70035728 table Scan AD. X_3_PV_TD_2 75,32-9709

    44 2 0 53686039 70035728 table Scan AD. X_3_PV_TD_2 76,66 9022

    204 26 0 119969 141464 Rowid Scan AD range. X_3_PV_TD_2                                   84.81             40

    202 48 0 138880 162276 Rowid Scan AD range. X_3_PV_TD_2                                   85.58             43

    17 33 0 126506 141778 Rowid Scan AD range. X_3_PV_TD_2                                   89.23             28

    48 7 0 137772 141360 Rowid Scan AD range. X_3_PV_TD_2                                   97.46             15

    Temp tablespace


    USED_MB USED TOT_MB % NOM_TABLESPACE

    ------------------------------ ---------- ---------- ----------
    TEMP 11533 286719 4.02

    temporary tables

    OWNER SEGMENT_NAME SEGMENT_TY TABLESPACE_NAME EXTENTS BYTES_
    ---------- ------------------------------ ---------- -------------------- ---------- ---------------
    AD 156.1601650 TEMPORARY USERS 96 209,715,200

    Question:

    How to fix this?

    (a) run several parallel create sqlplus statement index different sessions

    (b) create a tablespace to put data files in different hard drives like D: E: F: C:

    (c) create the separate tablespace for each hard drive and map it to a single disk IO benefit

    (d) I have 8 processors but parallel 32 is not speed

    (e) how these clues I can run in parallel. Is it OK to run 20 parallel index 32 sqlplus sessions

    All that I have to create 20 index on the table of 500 GB

    target memory = 30GB

    index of names to create 20, each index is 10 GB

    his is of 80 hours (4 hours per index)

    This machine is waiting, I just used all the resources of the machine to accelerate.

    Thanks for reading this

    Thanks for the help in advance

    I was talking about your end of issue speed up construction of index, where I proposed

    orclz >

    orclz > alter session set workarea_size_policy = manual;

    Modified session.

    orclz > alter session set sort_area_size = 2147483647;

    Modified session.

    orclz > create index

    Post edited by: JohnWatson

    Sorry, I misread it: this question was not from you. My apologies. My solution should work for you, however: give yourself a big PGA, manually. Automatic PGA management using not will never give you enough.

  • 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.

Maybe you are looking for