Ora 14098 Index mismatch for tables  in Alter Exchange Partition

Hi All,
I want to exchange data from retek schema to CONV schema. Both the table have same partition, but there is no data in CONV table.
So I'm populating the data from retek of one particular partition into one staging table and then I'm doing exchanging partition with staging table to CONV table.
I have created the same index and constraints for staging as there are in CONV table.
But When I'm doing exchange partition I'm getting error Index mismatch.
v_parition_name:='mar 2012'
v_stmt := 'create table staging_tab_st_hist as ( select * from retek.abc_st_hist partition(' ||
v_parition_name || ') )';
execute immediate v_stmt;
v_stmt := ' alter table conv.abc_st_hist exchange partition ' ||
v_parition_name ||
' with table staging_tab_st_hist
including indexes without validation';
execute immediate v_stmt;

Welcome to the forum!
Whenever you post provide your 4 digit Oracle version (result of SELECT * FROM V$VERSION).
>
Hi All,
I want to exchange data from retek schema to CONV schema. Both the table have same partition, but there is no data in CONV table.
So I'm populating the data from retek of one particular partition into one staging table and then I'm doing exchanging partition with staging table to CONV table.
I have created the same index and constraints for staging as there are in CONV table.
But When I'm doing exchange partition I'm getting error Index mismatch.
v_parition_name:='mar 2012'
v_stmt := 'create table staging_tab_st_hist as ( select * from retek.abc_st_hist partition(' ||
v_parition_name || ') )';
execute immediate v_stmt;
v_stmt := ' alter table conv.abc_st_hist exchange partition ' ||
v_parition_name ||
' with table staging_tab_st_hist
including indexes without validation';
execute immediate v_stmt;
>
I don't see any index creation on the staging table. You said this
>
I have created the same index and constraints for staging as there are in CONV table.
>
But you didn't create the indexes. When you do the CTAS (create table as select) it only creates the table with the same structure; it doesn't create ANY indexes.
Add the code to create the necessary indexes after you populate the staging table.

Similar Messages

  • ORA-20015: Invalid tablespace for table

    I have a table partioned by range and have done interval partitioning on a date column.
    when i apply the lifecycle definition on this table i get the following error ORA-20015: Invalid tablespace for table .
    Also in the list of candidate tables,it shows Table Partioning Not Available.
    Any help on this

    any resolution so far?

  • ORA-06525: Length Mismatch for CHAR or RAW data

    ORA-06525: Length Mismatch for CHAR or RAW data
    ORA-06512: at "SYS.UTL_FILE", line 127
    ORA-06512: at "SYS.UTL_FILE", line 1204
    ORA-06512: at line 14

    alter session SET smtp_out_server = 'mumbai1:100';
    declare
    v_utl_filehandler       UTL_FILE.FILE_TYPE;
    v_rawfile                       RAW(32767);
    v_size                               NUMBER;
    v_block                              NUMBER;
    v_boolean                   BOOLEAN;
    v_file_dir                      varchar2(100);
    v_transfer_location varchar2(100) := '[email protected]';
    v_file_name varchar2(100) := 'mailattachment.doc';
    begin
    v_file_dir := 'MAIL_DIR';
    v_utl_filehandler := UTL_FILE.FOPEN(v_file_dir, v_file_name, 'r');
    UTL_FILE.fgetattr(v_file_dir, v_file_name, v_boolean, v_size, v_block);
    UTL_FILE.get_raw(v_utl_filehandler, v_rawfile, v_size);
    UTL_FILE.FCLOSE(v_utl_filehandler);
    sys.utl_mail.send_attach_raw( sender            =>      '[email protected]'
    , recipients    =>      v_transfer_location
    , subject               =>      'EBS Production Database status from ifdb2'
    , message               =>      'Dear Sir'||CHR(13)||CHR(13)||
    'Please find attached database status file from EBS PRODUCTION.'||CHR(13)||CHR(13)||
    'Thanks'||CHR(13)||
    'oracle@IFEBPRD2'||CHR(13)||CHR(13)
    , attachment    =>      v_rawfile
    , att_inline    =>      FALSE
    , att_filename  =>      v_file_name
    end;
    exit;

  • ORA-02266: unique/primary keys - error while using Exchange Partition

    Hi All,
    While using EXCHANGE PARTITION statement as given below,
    ALTER TABLE SOURCE_TABLE EXCHANGE PARTITION PRT_EXCG_PRTN WITH TABLE TARGET_TABLE
    we are getting this error,
    ORA-02266: unique/primary keys in table referenced by enabled foreign keys
    However, there are no tables have foreign keys referring this TARGET_TABLE, we checked this by referring
    USER_CONSTRAINTS table, it has only primary key and NOT NULL constraints.
    SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME like 'TARGET_TABLE';
    We are using the following version,
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    PL/SQL Release 9.2.0.6.0 - Production
    CORE     9.2.0.6.0     Production
    TNS for IBM/AIX RISC System/6000: Version 9.2.0.6.0 - Production
    NLSRTL Version 9.2.0.6.0 - Production
    Is it due to any error in our end or it could be a bug in Oracle and should we go for any patch updation ?
    Please guide us to resolve this error as soon as possible, thank you.
    Regards,
    Deva

    *** Duplicate Post ***
    Please Ignore.

  • Materialized view on a Partitioned Table (Data through Exchange Partition)

    Hello,
    We have a scenario to create a MV on a Partitioned Table which get data through Exchange Partition strategy. Obviously, with exchange partition snap shot logs are not updated and FAST refreshes are not possible. Also, this partitioned table being a 450 million rows, COMPLETE refresh is not an option for us.
    I would like to know the alternatives for this approach,
    Any suggestions would be appreciated,
    thank you

    From your post it seems that you are trying to create a fast refresh view (as you are creating MV log). There are limitations on fast refresh which is documented in the oracle documentation.
    http://docs.oracle.com/cd/B28359_01/server.111/b28313/basicmv.htm#i1007028
    If you are not planning to do a fast refresh then as already mentioned by Solomon it is a valid approach used in multiple scenarios.
    Thanks,
    Jayadeep

  • INITRANS mismatch for Table and its indexes

    What will happen if the INITRANS for a table is set as 50 and its index is set as 2?
    The number of simultaneous inserts is 32.
    Thanks in advance
    Aji

    This is an example that Oracle performs leaf node splits instead of waiting for ITL:
    SQL> SQL> drop table t cascade constraints purge;
    Table dropped.
    SQL> create table t(id int, pad char(50));
    Table created.
    SQL> insert into t select rownum, 'x' from dual connect by level <= 150;
    150 rows created.
    SQL> create index t_indx on t(pad) pctfree 0;
    Index created.
    SQL> analyze index t_indx validate structure;
    Index analyzed.
    SQL> select lf_rows, lf_blks from index_stats;
       LF_ROWS    LF_BLKS
           150          2
    SQL> set serveroutput on
    SQL>
    SQL> select name, value from v$statname n, v$sesstat s
      2   where name like '%splits%'
      3     and sid = userenv('sid')
      4     and n.statistic# = s.statistic#;
    NAME                                                                  VALUE
    leaf node splits                                                          0
    leaf node 90-10 splits                                                    0
    branch node splits                                                        0
    queue splits                                                              0
    SQL>
    SQL> declare
      2      procedure do_update(p_id number)
      3      is
      4          pragma autonomous_transaction;
      5      begin
      6          update t set pad = 'y' where id = p_id;
      7          if p_id <= 35 then
      8              do_update(p_id + 1);
      9          end if;
    10          commit;
    11      end;
    12  begin
    13      do_update(1);
    14  end;
    15  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> select name, value from v$statname n, v$sesstat s
      2   where name like '%splits%'
      3     and sid = userenv('sid')
      4     and n.statistic# = s.statistic#;
    NAME                                                                  VALUE
    leaf node splits                                                          1
    leaf node 90-10 splits                                                    0
    branch node splits                                                        0
    queue splits                                                              0
    SQL>
    SQL> analyze index t_indx validate structure;
    Index analyzed.
    SQL> select lf_rows, lf_blks from index_stats;
       LF_ROWS    LF_BLKS
           186          3
    SQL> select statistic_name, value from v$segment_statistics where object_name = 'T' and owner=user;
    STATISTIC_NAME                                                        VALUE
    logical reads                                                           176
    buffer busy waits                                                         0
    gc buffer busy                                                            0
    db block changes                                                        688
    physical reads                                                            0
    physical writes                                                           0
    physical reads direct                                                     0
    physical writes direct                                                    0
    gc cr blocks received                                                     0
    gc current blocks received                                                0
    ITL waits                                                                 0
    row lock waits                                                            0
    space used                                                                0
    space allocated                                                     1048576
    segment scans                                                             0
    15 rows selected.But increasing number of concurrent transactions fails with a deadlock:
    SQL> declare
      2      procedure do_update(p_id number)
      3      is
      4          pragma autonomous_transaction;
      5      begin
      6          update t set pad = 'y' where id = p_id;
      7          if p_id <= 50 then
      8              do_update(p_id + 1);
      9          end if;
    10          commit;
    11      end;
    12  begin
    13      do_update(1);
    14  end;
    15  /
    declare
    ERROR at line 1:
    ORA-00060: deadlock detected while waiting for resource
    ORA-06512: at line 6
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8
    ORA-06512: at line 8V$SEGMENT_STATISTICS does not reflect ITL waits (but they present in generated trace file) and leaf block split still happens. I don't know how to explain this.

  • Spatial index creation for table with more than one geometry columns?

    I have table with more than one geometry columns.
    I'v added in user_sdo_geom_metadata table record for every column in the table.
    When I try to create spatial indexes over geometry columns in the table - i get error message:
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13203: failed to read USER_SDO_GEOM_METADATA table
    ORA-13203: failed to read USER_SDO_GEOM_METADATA table
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 8
    ORA-06512: at line 1
    What is the the solution?

    I'v got errors in my user_sdo_geom_metadata.
    The problem does not exists!

  • Frequent index synchronization for table with a lot of data

    Hello! I have a table with text column to be indexed. There are a lot of records in the table and the texts in the text column are ofter big enough. The number of records are rising frequently and i need actual search results in any time, so i cant synchronize index 1 or 2 times per day, i need to do it after every insert and i also need to base table not to be locked in anytime i synchronizing index.
    So i read the documentation and find a way for me like that:
    after every insert on base table do:
    ctx_ddl.sync_index('my_index')
    And seems like i need to make ctx_ddl.optimize_index() after synchronization.
    So will it work fine or i should go another way?
    Resuming main goals:
    1) I need no locks on base table (or locks on VERY small time);
    2) Always actual search results.

    You can use sync(on commit) in your index parameters, which will make recent DML searchable immediately. You will still need to optimize and rebuild periodically to eliminate index fragmentation. The more frequently that you synchronize, the more fragmented your index will become. Index fragmentation slows down your queries that use the index. If you have some downtime or slow times such as weekends or nights, then that is a good time to do such things. If not, then you may wish to do so "online" to avoid interfering with searches or DML. Depending on the size of your table and the amount of DML, you may choose to optimize and/or rebuild hourly or daily or weekly or monthly or whatever.

  • Syntax for building all indexes on a table

    I know the syntax for re-building of index on a table like :
    ALTER INDEX index_name REBUILD;
    But, what is the syntax to re-build all the indexes on a table with one statement.
    I hope, my question is clear. Please help in solving the doubt.
    regards.

    This is a Syntax for building all indexes on a table

  • ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY

    Hi,
    In the alert log file it is occuring below error on some interval.The database version is 10.2.0.4.0.
    ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_
    ACTIVE_506486335_9939 by 128 in tablespace SYSAUX
    Thanks,
    Quadri
    Edited by: Quadri on Feb 6, 2010 6:52 AM

    Hello,
    You wrote:
    Can i delete some rows to release the space from the SYS.WRH$_ACTIVE_SESSION_HISTORY table?To purge the Table SYS.WRH$_ACTIVE_SESSION_HISTORY, you may first query the Snapshot History
    with the query below:
    select snap_id, begin_interval_time from sys.dba_hist_snapshot order by snap_id;Then, you choose the range of snapshot you want to delete, and you execute the following Procedure:
    exec dbms_workload_repository.drop_snapshot_range ( low_snap_id => snap_id_1, high_snap_id=> snap_id_2 );But, if the delete will free space inside the Table, it won't release space to the SYSAUX Tablespace.
    You wrote:
    For system tablespace can i add or resize the datafile if it needs?Yes as any Tablespace. But your error message was on the Tablespace SYSAUX. So this is the reason why it
    was not necessary to extend the Tablespace SYSTEM.
    Hope this help.
    Best regards,
    Jean-Valentin
    Edited by: Lubiez Jean-Valentin on Feb 6, 2010 6:33 PM

  • ORA-1688: unable to extend table SYS.WRH

    Hi,
    on 10g R2 I have following error in alertlog :
    ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_3192442214_8801 by 128 in                 tablespace SYSAUX
    here :
    I found :
    BEGIN
    DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22,
    high_snap_id => 32, dbid => 3310949047);
    END;
    Should wxe do it regularly ? Oracle does'nt it regularly ? In DB control can we drop the snapshots ?
    Any other suggestion for ORA-1688: unable to extend table SYS.WRH error ?
    Thank you.

    user522961 wrote:
    Hi,
    on 10g R2 I have following error in alertlog :
    ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_3192442214_8801 by 128 in                 tablespace SYSAUX
    here :
    I found :
    BEGIN
    DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22,
    high_snap_id => 32, dbid => 3310949047);
    END;
    Should wxe do it regularly ? Oracle does'nt it regularly ? In DB control can we drop the snapshots ?
    Any other suggestion for ORA-1688: unable to extend table SYS.WRH error ?
    Thank you.Why are you starting a duplicate thread from one you started 7+ hours earlier?
    ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY

  • ORA-1688: UNABLE TO EXTEND TABLE IN SYSAUX TABLESPACE

    Hi,
    We are running oracle10g R-2 (10.2.0.2.0) on solaris 10.
    In our alert log file we get following message interminantely:-
    ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition
    WRH$_
    ACTIVE_455891297_399 by 128 in tablespace SYSAUX
    MMON Flush encountered SYSAUX out of space error(1688).
    MMON (emergency) purge of WR snapshots (243) and older
    The above error reproduce after every 1 hour.
    Thanks & Regards
    Rishikesh

    It seems your tablespace SYSAUX to be little: you need to make it bigger or add another datafile. Using "Oracle Enterprise Manager" is quite easy to do, in section "Storage Manager".

  • Trying to convert Interval Partitioned Table to Range..Exchange Partition..

    Requirement:
    Replace Interval partitioned Table by Range Partitioned Table
    DROP TABLE A;
    CREATE TABLE A
       a              NUMBER,
       CreationDate   DATE
    PARTITION BY RANGE (CreationDate)
       INTERVAL ( NUMTODSINTERVAL (30, 'DAY') )
       (PARTITION P_FIRST
           VALUES LESS THAN (TIMESTAMP ' 2001-01-01 00:00:00'));
    INSERT INTO A
         VALUES (1, SYSDATE);
    INSERT INTO A
         VALUES (1, SYSDATE - 30);
    INSERT INTO A
         VALUES (1, SYSDATE - 60);I need to change this Interval Partitioned Table to a Range Partitioned Table. Can I do it using EXCHANGE PARTITION. As if I use the conventional way of creating another Range Partitioned table and then :
    DROP TABLE A_Range
    CREATE TABLE A_Range
    a NUMBER,
    CreationDate DATE
    PARTITION BY RANGE (CreationDate)
       (partition MAX values less than (MAXVALUE));
    Insert  /*+ append */  into A_Range Select * from A; --This Step takes very very long..Trying to cut it short using Exchange Partition.Problems:
    I can't do
    ALTER TABLE A_Range
      EXCHANGE PARTITION MAX
      WITH TABLE A
      WITHOUT VALIDATION;
    ORA-14095: ALTER TABLE EXCHANGE requires a non-partitioned, non-clustered table
    This is because both the tables are partitioned. So it does not allow me.
    If I do instead :
    create a non partitioned table for exchanging the data through partition.
      Create Table A_Temp as Select * from A;
       ALTER TABLE A_Range
      EXCHANGE PARTITION MAX
      WITH TABLE A_TEMP
      WITHOUT VALIDATION;
      select count(*) from A_Range partition(MAX);
    -Problem is that all the data goes into MAX Partition.
    Even after creating a lot of partitions by Splitting Partitions, still the data is in MAX Partition only.
    So:
    -- Is it that we can't Replace an Interval Partitioned Table by Range Partitioned Table using EXCHANGE PARTITION. i.e. We will have to do Insert into..
    -- We can do it but I am missing something over here.
    -- If all the data is in MAX Partition because of "WITHOUT VALIDATION" , can we make it be redistributed in the right kind of range partitions.

    You will need to pre-create the partitions in a_range, then exchange them one by one from a to a tmp then then to arange. Using your sample (thanks for proviing the code by the way).
    SQL> CREATE TABLE A
      2  (
      3     a              NUMBER,
      4     CreationDate   DATE
      5  )
      6  PARTITION BY RANGE (CreationDate)
      7     INTERVAL ( NUMTODSINTERVAL (30, 'DAY') )
      8     (PARTITION P_FIRST
      9         VALUES LESS THAN (TIMESTAMP ' 2001-01-01 00:00:00'));
    Table created.
    SQL> INSERT INTO A VALUES (1, SYSDATE);
    1 row created.
    SQL> INSERT INTO A VALUES (1, SYSDATE - 30);
    1 row created.
    SQL> INSERT INTO A VALUES (1, SYSDATE - 60);
    1 row created.
    SQL> commit;
    Commit complete.You can find the existing partitions form a using:
    SQL> select table_name, partition_name, high_value
      2  from user_tab_partitions
      3  where table_name = 'A';
    TABLE_NAME PARTITION_NAME HIGH_VALUE
    A          P_FIRST        TO_DATE(' 2001-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    A          SYS_P44        TO_DATE(' 2013-01-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    A          SYS_P45        TO_DATE(' 2012-12-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    A          SYS_P46        TO_DATE(' 2012-11-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAYou can then create table a_range with the apporopriate partitions. Note that you may need to create additional partitions in a_range because interval partitioning does not create partitions that it has no data for, even if that leaves "holes" in the partitioning scheme. So, based on the above:
    SQL> CREATE TABLE A_Range (
      2     a NUMBER,
      3     CreationDate DATE)
      4  PARTITION BY RANGE (CreationDate)
      5     (partition Nov_2012 values less than (to_date('30-nov-2012', 'dd-mon-yyyy')),
      6      partition Dec_2012 values less than (to_date('31-dec-2012', 'dd-mon-yyyy')),
      7      partition Jan_2013 values less than (to_date('31-jan-2013', 'dd-mon-yyyy')),
      8      partition MAX values less than (MAXVALUE));
    Table created.Now, create a plain table to use in the exchanges:
    SQL> CREATE TABLE A_tmp (
      2     a              NUMBER,
      3     CreationDate   DATE);
    Table created.and exchange all of the partitions:
    SQL> ALTER TABLE A
      2    EXCHANGE PARTITION sys_p44
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> ALTER TABLE A_Range
      2    EXCHANGE PARTITION jan_2013
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> ALTER TABLE A
      2    EXCHANGE PARTITION sys_p45
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> ALTER TABLE A_Range
      2    EXCHANGE PARTITION dec_2012
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> ALTER TABLE A
      2    EXCHANGE PARTITION sys_p46
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> ALTER TABLE A_Range
      2    EXCHANGE PARTITION nov_2012
      3    WITH TABLE A_tmp;
    Table altered.
    SQL> select * from a;
    no rows selected
    SQL> select * from a_range;
             A CREATIOND
             1 23-NOV-12
             1 23-DEC-12
             1 22-JAN-13John

  • ORA-13223: duplicate entry for string in SDO_GEOM_METADATA table and

    I got the above error while trying to insert a record into the table SDO_GEOM_METADATA. However, when querying this table I did find any duplicate table_name, column_name pair that match with the error.
    Here are the steps that I worked on:
    1. Add a geometry column into an existing table.
    ALTER TABLE GEO_MAP ADD (ORG_GEOM mdsys.sdo_geometry);
    2. Register the new column into mdsys
    insert into USER_SDO_GEOM_METADATA
    values ('GEO_MAP','ORG_GEOM',
    mdsys.sdo_dim_array(
    mdsys.sdo_dim_element('LONG',-180,180,0.00005),
    mdsys.sdo_dim_element('LAT',-90,90,0.00005)
    8307)
    I got the error ORA-13223: duplicate entry for string in SDO_GEOM_METADATA table even there was no such record in there.
    3. I inserted values in the column ORG_GEOM fine.
    4. However, when I tried to create the index for this column I got the error:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13203: failed to read USER_SDO_GEOM_METADATA view
    ORA-13203: failed to read
    Please help.
    Thanks.

    SQL> select * from mdsys.sdo_geom_metadata_table;
    SDO_OWNER SDO_TABLE_NAME
    SDO_COLUMN_NAME
    SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
    SDO_SRID
    QW_USER1 GEO_REF
    LOC_GEOM
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('LONG', -180, 180, .00005), SDO_DIM_ELEMENT('LAT',
    -90, 90, .00005))
    SDO_OWNER SDO_TABLE_NAME
    SDO_COLUMN_NAME
    SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
    SDO_SRID
    8307
    MDSYS SDO_CMT_CBK_RTREE_TAB
    GEOM
    SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -180, 180, .000000005), SDO_DIM_ELEMENT('Y',
    SDO_OWNER SDO_TABLE_NAME
    SDO_COLUMN_NAME
    SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
    SDO_SRID
    -90, 90, .000000005))
    The situation is we have 2 tables (GEO_MAP, and GEO_REF) that have spatial columns. Everything worked fine until when one of the queries that searched through the table GEO_MAP ran so slow, we decided to rebuild the related spatial index by dropping and recreating it. However, after I dropped it I could not recreated. Keep getting the error:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13203: failed to read USER_SDO_GEOM_METADATA view
    ORA-13203: failed to read
    Any help is very much appreciated.

  • ORA-01502: Index or Partition is in unusable status. while truncating table

    Hi All,
    One of our Devlopers compalined that he is getting ORA-01502 : Index or partition is unusable status while truncating the a table in our Dataware house production database. He is using the following commands.
    Alter index <index_name> unusable;
    Truncate table <table_name> ;
    He is running a scripts to truncate each table and ecah time he is passing the table name as an input parameter to script. He is using same method to truncate four tables each having a BITMAP and a REGULAR index. For two tables every thing is working fine, but for other two tables the he is getting ORA-01502 for BITMAP indexes. It a weekly process and every week he is getting the same issue. I checkd the Index status, they are in valid status only.
    For a work around I have created a table with BITMAP and regular index in our dev database. made the indexes unusable, checked their status. I truncated the table. Importent thing here is the Indexes are becoming vaild when I truncate the table.
    I suspect that my devloper's Indexes were already in unusable status (before he use the command ALTER INDEX), when he truncated the table, oracle trying to validate the index and throwing the error ORA-01502 because the Indexes are in unusabel statsu for a while.
    I tried searching for the mechanism of truncate table command and its effect on Indexes. But I did not find any luck, no one is speaking about index when truncating the table. Can any one please help me????
    Sorry for lengthy post. Any help is greatly appriciated and I thank every one in advance.

    DDL for Indexes getting ORA-01502 error
    CREATE BITMAP INDEX DWHMGR.ACT_TXN_LN_STG_01_XN3 ON DWHMGR.ACCT_TXN_LINE_TERM_BAL_STG_01 (TERM_BAL_CD ASC) TABLESPACE "BALFD_INX_04" NOLOGGING PCTFREE 1 INITRANS 2 MAXTRANS 255 STORAGE
    ( INITIAL 8M NEXT 8M MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT );
    CREATE BITMAP INDEX DWHMGR.ACCT_TERM_BAL_STG_01_XN3 ON DWHMGR.ACCT_TERM_BAL_STG_01 TERM_BAL_CD ASC) TABLESPACE "BALFD_INX_04" NOLOGGING PCTFREE 1 INITRANS 2 MAXTRANS 255 STORAGE
    ( INITIAL 8M NEXT 8M MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT );
    Indexes that have no issues.
    CREATE INDEX DWHMGR.ACCT_TERM_BAL_STG_01_XN2 ON DWHMGR.ACCT_TERM_BAL_STG_01 (ACCT_REF_NB ASC) TABLESPACE "BALFD_INX_04" NOLOGGING PCTFREE 1 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 8M
    NEXT 8M MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT );
    CREATE BITMAP INDEX DWHMGR.ACCT_PRC_STG_01_XN1 ON DWHMGR.ACCT_PRC_STG_01 (ACCT_ORG_CD ASC) TABLESPACE "BALFD_INX_04" NOLOGGING PCTFREE 1 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 8M
    NEXT 8M MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT );
    Please look at the DDL of the indexes and let me know if you need any other information.

Maybe you are looking for

  • Difference between memory modules

    looking to get a 2gb memory module - whats the dif betwee mod one "2GB CT477887 DDR2 PC2-4200 • CL=4 • Unbuffered • NON-ECC • DDR2-533 • 1.8V • 256Meg x 64" and mod two "2GB CT518445 DDR2 PC2-5300 • CL=5 • Unbuffered • NON-ECC • DDR2-667 • 1.8V • 256

  • A whole lot of problems _

    Ok, so I got as a gift an iPod shuffle that used to belong to my aunt. Now, I charged it for an two hours straight, then I had to leave on a trip so I put it away and then charged it straight for like 5 hours. I have no idea what is going on, but whe

  • Mirroring image is small with HDMI projector

    When I connect my Apple TV to my 47" Vizio TV and start up mirroring on my ipad 2, the image is full size and beautiful. When I take the ATV to the school where I want to use it for iPad instruction, I connect it to an Epson Powerlite 93 via HDMI.  T

  • No trayicon for gajim in plasma (kde5)

    Gajim is a python/gtk2 xmpp application. In preferences -> notifications the option "Show notification area icon" is set to "Always" but I don't get a tray icon in Plasma. Any ideas how to enable it? (the problem is that if I close the roster window

  • Custom converter - parameters not always work

    Hi, I have a web page, which part looks like this: <a4j:repeat value="#{list}" var="art">     <h:outputText escape="false" value="#{art.content}">         <my:substring length="125" />     </h:outputText> </a4j:repeat><my:substring /> is my custom co