Create/drop index on a busy table

Hello,
It's kind-a of a funny question but how do you create or drop a index on a very busy table? (by making the users wait...)
I tried:
lock table <table> in exclusive mode
then in another session (session2)
update <table> set col1 = 'a';
(this session now waits)
then back a the first session:
create index bla on <table> (col1);
And what happens is that the lock is released immediatelly, and in session2 the update updates and I get the standard "RESOURCE BUSY" error.
Any ideas on how to do that ?
Thanks

Jozsef wrote:
Hi there,
I have done similar things couple of times before and I have used a pretty good method to obtain a rough (and it was really a rough, but enough) estimation.
Sorry folks, it does not work properly for create index...this method only works for SELECT statments, SO IGNORE IT :(
It nearly works in 10g:
| Id  | Operation              | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | CREATE INDEX STATEMENT |       | 10000 | 40000 |    10   (0)| 00:00:01 |
|   1 |  INDEX BUILD NON UNIQUE| T1_I1 |       |       |            |          |
|   2 |   SORT CREATE INDEX    |       | 10000 | 40000 |            |          |
|   3 |    TABLE ACCESS FULL   | T1    | 10000 | 40000 |     6   (0)| 00:00:01 |
Note
   - estimated index size: 196K bytesThe "Note" tells you Oracle's estimate of the final space allocation needed for the index. There are various reasons why the estimate is not very accurate, and why it's not a good estimate of the space requirement in the TEMP tablespace, but it gives you a figure that is probably in the right ballpark (factor of 2 out, either way, probably).
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"For every expert there is an equal and opposite expert."
Arthur C. Clarke

Similar Messages

  • Creating an INDEX on an internal table

    Hi Folks,
    Currently I am dealing with some programs which needs to be optimised.I had came acrossed some queries which are having some fields in the where clause which are neither a primary  key nor in any index.As it is not advisable to create as many index as we can in a standard table,I just want to create an index on the internal table.
    Will be glad if anyone here can provide me some lead in this.
    Thanks,
    K.Kiran.

    Hi,
    There is no need to create the index in the internal table since the primary key of the database table from which you selected the data becomes Primary index for the internal table.
    The primary index is distinguished from the secondary indexes of a table. The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database
    You can also create further indexes on a table in the ABAP Dictionary. These are called secondary indexes. This is necessary if the table is frequently accessed in a way that does not take advantage of the sorting of the primary index for the access.
    You create secondary indexes using the ABAP Dictionary. There you can create its columns and define it as UNIQUE. However, you should not create secondary indexes to cover all possible combinations of fields.
    Only create one if you select data by fields that are not contained in another index, and the performance is very poor. Furthermore, you should only create secondary indexes for database tables from which you mainly read, since indexes have to be updated each time the database table is changed. As a rule, secondary indexes should not contain more than four fields, and you should not have more than five indexes for a single database table.
    Secondary indexes should contain columns that you use frequently in a selection, and that are as highly selective as possible. The fewer table entries that can be selected by a certain column, the higher that column’s selectivity. Place the most selective fields at the beginning of the index. Your secondary index should be so selective that each index entry corresponds to, at most, five percent of the table entries. If this is not the case, it is not worth creating the index. You should also avoid creating indexes for fields that are not always filled, where their value is initial for most entries in the table.
    Regards,
    Priyanka.

  • Create an index on a huge table

    hi gurus
    I am going to create an index on a very large table(194GB) with the temporary tablespace size is 80G.
    I am afraid that during the index creation the temporary tablespace is not enouth to hold the data needed
    to create the index,because i only have 80g in temporary tablespace. How do i estimated the size i need to create a such large index and is there an effcient way to do such index creation?
    thank u in advance.

    Jozsef wrote:
    Hi there,
    I have done similar things couple of times before and I have used a pretty good method to obtain a rough (and it was really a rough, but enough) estimation.
    Sorry folks, it does not work properly for create index...this method only works for SELECT statments, SO IGNORE IT :(
    It nearly works in 10g:
    | Id  | Operation              | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | CREATE INDEX STATEMENT |       | 10000 | 40000 |    10   (0)| 00:00:01 |
    |   1 |  INDEX BUILD NON UNIQUE| T1_I1 |       |       |            |          |
    |   2 |   SORT CREATE INDEX    |       | 10000 | 40000 |            |          |
    |   3 |    TABLE ACCESS FULL   | T1    | 10000 | 40000 |     6   (0)| 00:00:01 |
    Note
       - estimated index size: 196K bytesThe "Note" tells you Oracle's estimate of the final space allocation needed for the index. There are various reasons why the estimate is not very accurate, and why it's not a good estimate of the space requirement in the TEMP tablespace, but it gives you a figure that is probably in the right ballpark (factor of 2 out, either way, probably).
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "For every expert there is an equal and opposite expert."
    Arthur C. Clarke

  • Can we create secondary index for a cluster table

    hi
    can we create secondary index for a cluster table

    Jyothsna,
    There seems to be some kind of misunderstanding here. You <i>cannot</i> create a secondary index on a cluster table. A cluster table does not exist as a separate physical table in the database; it is part of a "physical cluster". In the case of BSEG for instance, the physical cluster is RFBLG. The only fields of the cluster table that also exist as fields of the physical cluster are the leading fields of the primary key. Taking again BSEG as the example, the primary key includes the fields MANDT, BUKRS, BELNR, GJAHR, BUZEI. If you look at the structure of the RFBLG table, you will see that it has primary key fields MANDT, BUKRS, BELNR, GJAHR, PAGENO. The first four fields are those that all cluster tables inside BSEG have in common. The fifth field, PAGENO, is a "technical" field giving the sequence number of the current record in the series of cluster records sharing the same primary key.
    All the "functional" fields of the cluster table (for BSEG this is field BUZEI and everything beyond that) exist only inside a raw binary object. The database does not know about these fields, it only sees the raw object (the field VARDATA of the physical cluster). Since the field does not exist in the database, it is impossible to create a secondary index on it. If you try to create a secondary index on a cluster table in transaction SE11, you will therefore rightly get the error "Index maintenance only possible for transparent tables".
    Theoretically you could get around this by converting the cluster table to a transparent table. You can do this in the SAP dictionary. However, in practice this is almost never a good solution. The table becomes much larger (clusters are compressed) and you lose the advantage that related records are stored close to each other (the main reason for having cluster tables in the first place). Apart from the performance and disk space hit, converting a big cluster table like BSEG to transparent would take extremely long.
    In cases where "indexing" of fields of a cluster table is worthwhile, SAP has constructed "indexing tables" around the cluster. For example, around BSEG there are transparent tables like BSIS, BSAS, etc. Other clusters normally do not have this, but that simply means there is no reason for having it. I have worked with the SAP dictionary for over 12 years and I have never met a single case where it was necessary to convert a cluster to transparent.
    If you try to select on specific values of a non-transparent field in a cluster without also specifying selections for the primary key, then the database will have to do a serial read of the whole physical cluster (and the ABAP DB interface will have to decompress every single record to extract the fields). The performance of that is monstrous -- maybe that was the reason of your question. However, the solution then is (in the case of BSEG) to query via one of the index tables (where you are free to create secondary indexes since those tables are transparent).
    Hope this clarifies things,
    Mark

  • HOW TO CREATE LOCAL INDEX ON BIG PARTITION TABLE

    Dear All,
    I have one big table 450GB stored on 9 partitions and same partitions I have created for the index. Now the problem is when i am trying to create local index it took one and half day and is still going on...
    is there any shortest way to create local index on this table easily.
    Database version is 11.2.0.1.0
    INDEX SCRIPT IS
    CREATE INDEX INDEX_SPACE0_IX_LOCAL ON FINANCE (END_TIME)
    INITRANS 2 MAXTRANS
    255
    LOCAL ( PARTITION INDEX_SPACE01
    LOGGING
    NOCOMPRESS
    TABLESPACE INDEX_SPACE01
    PCTFREE 5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS
    2147483645 BUFFER_POOL
    DEFAULT), PARTITION INDEX_SPACE02
    LOGGING
    NOCOMPRESS
    TABLESPACE INDEX_SPACE02 PCTFREE
    5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS
    2147483645 BUFFER_POOL DEFAULT),
    PARTITION INDEX_SPACE03
    LOGGING
    NOCOMPRESS
    TABLESPACE
    INDEX_SPACE03
    PCTFREE 5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS
    2147483645 BUFFER_POOL DEFAULT),
    PARTITION INDEX_SPACE04
    LOGGING
    NOCOMPRESS
    TABLESPACE
    INDEX_SPACE04 PCTFREE 5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS
    1 MAXEXTENTS
    2147483645 BUFFER_POOL DEFAULT),
    PARTITION INDEX_SPACE05
    LOGGING
    NOCOMPRESS
    TABLESPACE
    INDEX_SPACE05 PCTFREE 5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS
    1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT),
    PARTITION INDEX_SPACE06
    LOGGING
    NOCOMPRESS
    TABLESPACE INDEX_SPACE06 PCTFREE 5 INITRANS 2
    MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL
    DEFAULT),
    PARTITION INDEX_SPACE07
    LOGGING
    NOCOMPRESS
    TABLESPACE INDEX_SPACE07 PCTFREE
    5 INITRANS 2
    MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL
    DEFAULT),
    PARTITION INDEX_SPACE08
    LOGGING
    NOCOMPRESS
    TABLESPACE INDEX_SPACE08 PCTFREE
    5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS 1 MAXEXTENTS
    2147483645
    BUFFER_POOL DEFAULT),
    PARTITION INDEX_SPACE09
    LOGGING
    NOCOMPRESS
    TABLESPACE
    INDEX_SPACE09 PCTFREE 5 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 1M MINEXTENTS
    1 MAXEXTENTS 2147483645 BUFFER_POOL
    DEFAULT))
    NOPARALLEL;
    Thanks in advance......
    Thanks,
    Edited by: sherkhan on Aug 24, 2011 3:36 AM
    Edited by: sherkhan on Aug 24, 2011 3:49 AM

    Have you verified that 'n' Index partition segments have got created so far ? (they would apepar as TEMPORARY segments only till the full index creation is completed). Have you monitored the session statistics and waits and confirmed that it is not waiting on something horrible ?
    A CREATE INDEX can well be NOLOGGING instead of LOGGING. It could also use PARALLEL but I always recommend setting it back to NOPARALLEL immediately after the CREATE is completed.
    You can also "quickly" build an empty index and then gradually create (i.e. build) each partition
    CREATE INDEX INDEX_SPACE0_IX_LOCAL  .........  UNUSABLE ;
    ALTER INDEX INDEX_SPACE0_IX_LOCAL REBUILD PARTITION PARTITION INDEX_SPACE01;
    ALTER INDEX INDEX_SPACE0_IX_LOCAL REBUILD PARTITION PARTITION INDEX_SPACE02;
    ...Hemant K Chitale

  • Procedure for creating an Index on SAP standard table

    Hi,
    I need to create an Index on a SAP standard table. Please help me out with the process of doing so.
    Regards,
    Sharadendu

    Please search the forum. You will find lots of related threads:
    how to create an index
    how to create secondary index

  • Schema name gets lost in create/drop index statement

    Hi everyone,
    I have a relational model with appended physical Oracle 10g model, containing indexes (among other stuff). Although the schema name is set in the relational model and the user is set in the physical model, they are ignored in the creation and alter scripts.
    Is that a bug?
    Yours,
    user8632123

    Hi Bernd,
    I tried again using a DBA-user on a 10g-database, but the object privileges are NOT imported.I have logged a bug that that only one object privilege is imported for a given user. (Any other object privileges for that user are missing.) It appears that this problem affects both Oracle 10g and Oracle 11g databases.
    I also noticed that, after they have been created manually, they do not show up in alter scripts (preview script from compare/merge).I have logged a bug on this.
    On the side, do we really need DBA-privileges for reverse engineering, or are the roles "select any table" and "select dictionary" sufficient?Agreed. We are already making changes to this. In the next release, if the connection user does not have DBA privilege, we should still be able to import the object privilege information.
    schema names are missing in alter scripts in more cases. For instance, they are not created for column comments.I logged a bug that in Compare/Merge DDL, if a Column Comment is added, the Schema name is missing from the COMMENT ON COLUMN statement.
    Thanks for letting us know about these problems.
    David

  • Impossible to create an index with an object table

    Is it possible to use object tables with Oracle Spatial ?
    With Oracle 8.1.7.0.0, here is the example where I encounter a problem (this example works of course with an equivalent relational table) :
    create or replace type zonegeo as object (
    id integer, definitionGeo MDSYS.SDO_GEOMETRY
    create table essaigeo of zonegeo (id PRIMARY KEY)
    OBJECT ID PRIMARY KEY;
    INSERT INTO USER_SDO_GEOM_METADATA
    VALUES ('ESSAIGEO','DEFINITIONGEO',
    MDSYS.SDO_DIM_ARRAY(
    MDSYS.SDO_DIM_ELEMENT('X', 47680.000, 1197822.000, 0.005),
    MDSYS.SDO_DIM_ELEMENT('Y', 1620431.000, 2677441.000, 0.005)
    NULL -- SRID
    CREATE INDEX ESSAIGEO_SPATIAL_IDX
    ON ESSAIGEO(DEFINITIONGEO)
    INDEXTYPE IS MDSYS.SPATIAL_INDEX
    PARAMETERS ('SDO_LEVEL = 6);
    ERREUR ` la ligne 1 :
    ORA-29855: erreur d'exicution de la routine ODCIINDEXCREATE
    ORA-13203: ichec de lecture de la table USER_SDO_GEOM_METADATA
    ORA-13203: ichec de lecture de la table USER_SDO_GEOM_METADATA
    ORA-06512: ` "MDSYS.SDO_INDEX_METHOD", ligne 8
    ORA-06512: ` ligne 1

    In Oracle 8.1.7 you cannot embed a geometry type in another type and index it.
    In 9i, you can , but not in the way you've defined it, i.e. you have to create a regular
    table, and have a column of type zonegeo, and make a few other changes, i.e.:
    create or replace type zonegeo as object (
    id integer, definitionGeo MDSYS.SDO_GEOMETRY
    create table essaigeo (zone zonegeo);
    INSERT INTO USER_SDO_GEOM_METADATA
    VALUES ('ESSAIGEO','ZONE.DEFINITIONGEO',
    MDSYS.SDO_DIM_ARRAY(
    MDSYS.SDO_DIM_ELEMENT('X', 47680.000, 1197822.000, 0.005),
    MDSYS.SDO_DIM_ELEMENT('Y', 1620431.000, 2677441.000, 0.005)
    NULL -- SRID
    CREATE INDEX ESSAIGEO_SPATIAL_IDX
    ON ESSAIGEO(ZONE.DEFINITIONGEO)
    INDEXTYPE IS MDSYS.SPATIAL_INDEX
    PARAMETERS ('SDO_LEVEL = 6);

  • How can I create index(uniqie index) for a existed table?

    Hi guys,
    I want to create a index for a existed table, it should be unique index. I did it using se11, "indexes," and select the radio button "unqiue index", of course the fields as well. But when I activate it, I get a waring and therefore can not create this index. But if I select radio button "non-uniqe index", it works.
    However I have to reate a unqiue index.
    How can I do it?
    Thanks in advance
    Regards,
    Liying

    HI Wang
    You can create your index via SE11, enter the table name, click change, choose Go To, Indexes. Here create your index with the key fields that you want. To use the index, your select statement WHERE clause, you must have the key fields of the index in the order that they appear in the index. The "optimizer" will choose the index depending on your fields of the WHERE clause.
    One thing to remember is that when you create indexes for tables, the update or insert of these tables may have a slower response then before, I for one have never seen a big problem as of yet.
    this Document may help u on primary and secondary indexes :
    http://jdc.joy.com/helpdata/EN/cf/21eb20446011d189700000e8322d00/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eb47446011d189700000e8322d00/content.htm
    If it helps Reward the points
    Regards,
    Rk
    Message was edited by:
            Rk Pasupuleti

  • One can create an index on a non-existent column in a table

    I am using Oracle 10.2.0.3 on Windows 2003. I wanted to create an index on columnb of
    Tablea. When I use statement like:
    Create index index1 on tablea (‘columnb’) …
    Oracle created index: index1. However, when I looked tat the column in user_ind_columns it had some weird colculn like SYS_NCxxxx. For sometime, I had
    No idea what was going on. My index was not being used in queries at all. Then it dawned on me that I should not put single quotes around columnb. Once I removed quotes, things worked as expected.
    But why does Oracle allow index on a non-existent column?

    we cannot create the index on nonexistent column of table We can. Its called a function-based index. Here's how we do it.
    Also read Howard's reply, right above yours.
    SQL> desc t
    Name                                      Null?    Type
    OWNER                                     NOT NULL VARCHAR2(30)
    OBJECT_NAME                               NOT NULL VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    OBJECT_ID                                 NOT NULL NUMBER
    DATA_OBJECT_ID                                     NUMBER
    OBJECT_TYPE                                        VARCHAR2(19)
    CREATED                                   NOT NULL DATE
    LAST_DDL_TIME                             NOT NULL DATE
    TIMESTAMP                                          VARCHAR2(19)
    STATUS                                             VARCHAR2(7)
    TEMPORARY                                          VARCHAR2(1)
    GENERATED                                          VARCHAR2(1)
    SECONDARY                                          VARCHAR2(1)
    SQL> create index t_idx on t( substr(object_name, 1, 5));
    Index created.
    SQL> select column_name from user_ind_columns where index_name = 'T_IDX';
    COLUMN_NAME
    SYS_NC00014$
    SQL> select index_type from user_indexes where index_name = 'T_IDX';
    INDEX_TYPE
    FUNCTION-BASED NORMAL
    SQL>

  • Problem creating index on global temporary table

    Running Oracle DB Oracle9i Release 9.2.0.7.0.
    I'm trying to create 3 indexes on a temporary table, the first index creates fine but the other remaining 2 result in the following error:
    ERROR at line 1: ORA-00600: internal error code, arguments: [kftts2bz_many_files], [0], [20], [], [], [], [], []
    Have tried searching with not much success, any pointers, tips, hints would be appreciated, below is the table and the indexes:-
    create global temporary TABLE contacts (
    ID VARCHAR2(20) NOT NULL,
    DOB VARCHAR2(8),
    HH_LASTNAME VARCHAR2(90),
    PERSON VARCHAR2(10) NOT NULL,
    CONT_JOB VARCHAR2(90) NOT NULL,
    SOURCE VARCHAR2(8) NOT NULL,
    ADS VARCHAR2(8) NOT NULL,
    CONT VARCHAR2(8) NOT NULL,
    SRCPERSONID VARCHAR2(15),
    FIRSTNAME VARCHAR2(90),
    MIDDLENAME VARCHAR2(90),
    LASTNAME VARCHAR2(90),
    FULLNAME VARCHAR2(90),
    TITLE VARCHAR2(50),
    SALUTATION VARCHAR2(90),
    ) on commit delete rows;
    create index i_contact_1 on contacts(dob, soundex(hh_lastname ));
    create index i_contact_pk on contacts(id, person, cont_job, source, ads, cont);
    create index i_contact_2 on contacts(srcpersonid, source);

    Bug 3238525 - Upgrade from 9.0 can leave corruptdata for global temporary table indices
    ORA-600 [kftts2bz_many_files]
         Doc ID:      285592.1

  • Privileges require for a user to create CONTEXT indexes

    Hi all,
       RDBMS: 11.2.0.3
       SO.......: OEL 6.3
       What are the necessary privileges that have to be granted to a user to be able to create CONTEXT Indexes, for example. I have granted the CTXAPP to my user, but when i tryied to create the CONTEXT Index with the command bellow, i got an "insufficient privilege" error message.
       CREATE INDEX USR_DOCS.IDX_CTX_TAB_DOCUMENTOS_01 ON USR_DOCS.TAB_DOCUMENTOS(DOCUMENTO) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('SYNC (ON COMMIT)');

    It depends on whether the user is trying to create the index on his own table in his own schema or on somebody else's table in somebody else's schema.  The following demonstrates minimal privileges (quota could be smaller) for user usr_docs to create the index on his own table in his own schema and for my_user to create the index on usr_docs table in usr_docs schema.
    SCOTT@orcl> -- version:
    SCOTT@orcl> SELECT banner FROM v$version
      2  /
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0    Production
    TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    5 rows selected.
    SCOTT@orcl> -- usr_docs privileges:
    SCOTT@orcl> CREATE USER usr_docs IDENTIFIED BY usr_docs
      2  /
    User created.
    SCOTT@orcl> ALTER USER usr_docs QUOTA UNLIMITED ON users
      2  /
    User altered.
    SCOTT@orcl> GRANT CREATE SESSION, CREATE TABLE TO usr_docs
      2  /
    Grant succeeded.
    SCOTT@orcl> -- my_user privileges:
    SCOTT@orcl> CREATE USER my_user IDENTIFIED BY my_user
      2  /
    User created.
    SCOTT@orcl> GRANT CREATE SESSION, CREATE ANY INDEX TO my_user
      2  /
    Grant succeeded.
    SCOTT@orcl> -- user_docs:
    SCOTT@orcl> CONNECT usr_docs/usr_docs
    Connected.
    USR_DOCS@orcl> CREATE TABLE tab_documentos (documento  CLOB)
      2  /
    Table created.
    USR_DOCS@orcl> INSERT ALL
      2  INTO tab_documentos VALUES ('test data')
      3  INTO tab_documentos VALUES ('other stuff')
      4  SELECT * FROM DUAL
      5  /
    2 rows created.
    USR_DOCS@orcl> CREATE INDEX USR_DOCS.IDX_CTX_TAB_DOCUMENTOS_01
      2  ON USR_DOCS.TAB_DOCUMENTOS(DOCUMENTO)
      3  INDEXTYPE IS CTXSYS.CONTEXT
      4  PARAMETERS ('SYNC (ON COMMIT)')
      5  /
    Index created.
    USR_DOCS@orcl> DROP INDEX usr_docs.idx_ctx_tab_documentos_01
      2  /
    Index dropped.
    USR_DOCS@orcl> -- my_user:
    USR_DOCS@orcl> CONNECT my_user/my_user
    Connected.
    MY_USER@orcl> CREATE INDEX USR_DOCS.IDX_CTX_TAB_DOCUMENTOS_01
      2  ON USR_DOCS.TAB_DOCUMENTOS(DOCUMENTO)
      3  INDEXTYPE IS CTXSYS.CONTEXT
      4  PARAMETERS ('SYNC (ON COMMIT)')
      5  /
    Index created.

  • Error while creating an index for NVARCHAR2 datatype

    Dear All,
    I'm trying to create and index on a NVARCHAR2 field type but I get the following error:
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-20000: Oracle Text error:
    DRG-10509: invalid text column: SUBJECT
    ORA-06512: at "CTXSYS.DRUE", line 157
    ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 176
    If I create an index in the same table but for a VARCHAR2 field type, I don't get any.
    Please help me. Here is the table description:
    Thanks.

    Daniele,
    Can you describe your use of NVARCHAR2 ?
    What is your National character set ?
    What kind of data are you storing there ?
    - Steve B.

  • ORA-06502: when creating a index

    Hi,
    i'm trying to create an index on a partitionned table, but i'm getting this error :
    CREATE INDEX IDX_NDI_WTSCDRHISTO ON WTS_CDRHISTO(SUBSTR(NDI, GREATEST(LENGTH(NDI)-8,1))) Compress Local (
    PARTITION WTS_CDRHISTO_2009070412 NOLOGGING COMPRESS TABLESPACE INDX_CDRHISTO_7 PCTFREE 0 INITRANS 2,
    PARTITION WTS_CDRHISTO_2009070413 NOLOGGING COMPRESS TABLESPACE INDX_CDRHISTO_7 PCTFREE 0 INITRANS 2,
    PARTITION WTS_CDRHISTO_2009070414 NOLOGGING COMPRESS TABLESPACE INDX_CDRHISTO_7 PCTFREE 0 INITRANS 2,
    PARTITION WTS_CDRHISTO_2009070414 NOLOGGING COMPRESS TABLESPACE INDX_CDRHISTO_7 PCTFREE 0 INITRANS 2,
    PARTITION WTS_CDRHISTO_2010070800 NOLOGGING COMPRESS TABLESPACE INDX_CDRHISTO_7 PCTFREE 0 INITRANS 2
    PARALLEL 16;
    the error code is : ORA-06502: PL/SQL: numeric or value error: character string buffer too small ???!!!!!!
    Anyone can help me ?
    Thks in advance

    Post the section of code that is causing problem along with statements before and after the section as well.
    For now, I can take a guess that you are trying to assign this entire statement as a string to a character variable. If so, then that variable length definition is too small to hold this entire string. In PL/SQL you can define VARCHAR2 to a maximum of 32767.

  • Index on a DB Table

    Hello Experts,
    I need to create an index on a transparent table. I have question before I go and create the index. Can anybody (means developer) create an index on a table? What impact does it have on the R/3 system and on the Database? Is BASIS only supposed to create the index? I appreciate any inputs you have for me.
    Thanks.

    Hi,
    Creating additional indexes can place a load on the system since they must be adjusted each time the table contents change. Each additional index therefore slows down the insertion of records in the table.
    It is NOT mandatory that only BASIS has to create index. If you have auth you can create.
    PS : Please analyse the impact on the database before creating indexes

Maybe you are looking for

  • What version of Measurement Studio do I buy for Visual Studio 6.0?

    I am consulting for a company that requires me to use VB 6.0 and I am looking for the NI Measurement Studio version to purchase but this particular part of this web site is as confusing as HP's(Agilent) so I have yet to figure it out. The evaluation

  • Load of big files in BPC with import package

    HI, I need to import many files (.txt) with 1,5 million of data lines in BPC with import package. But BPC is limited to 500 000 lines for each import. Have you got a solution ? Thanks, Morgann

  • OCA Certification

    i recently enrolled for the OCA Certification for which i was to sit for 1ZO-051 exam and 1ZO-052 exams. I have already sat for the first exam( 1ZO-051) and am yet to sit for the second exam. Recently i checked on thew oracle website; they had writte

  • Iphoto to mail

    Have Mac OS X 10.5.3, Installed ILife 08, when I chose picture to transfer to mail the option of size to send always comes out small regardless of option picked ie actual size. Any suggestions?

  • Passing a Pointer of struct to a DLL in LabVIEW

    Hi, I've posted some questions in another Thread, that can be seen here. However I keep having some Problems with a Project I'm working on so I'm gonna post the entire Problem here. Any help will be appreciated. The Problem is as follows: I have to w