DRG-11513 with Oracle Intermedia Text on Oracle 8.1.7

When I try to index a file on a network drive (z:\, for example), y get the error code DRG-11513 on table CTX_USER_INDEX_ERRORS.
However, if the file beging indexed is on the local hardrive (c:\), it works fine.
What can be the problem?
Thanks,

Please ask questions about Oracle Text (formerly intermedia text) in teh Oracle Text forum. You will get your question looked at by the experts in Oracle Text there.

Similar Messages

  • Pre-loading Oracle text in memory with Oracle 12c

    There is a white paper from Roger Ford that explains how to load the Oracle index in memory : http://www.oracle.com/technetwork/database/enterprise-edition/mem-load-082296.html
    In our application, Oracle 12c, we are indexing a big XML field (which is stored as XMLType with storage secure file) with the PATH_SECTION_GROUP. If I don't load the I table (DR$..$I) into memory using the technique explained in the white paper then I cannot have decent performance (and especially not predictable performance, it looks like if the blocks from the TOKEN_INFO columns are not memory then performance can fall sharply)
    But after migrating to oracle 12c, I got a different problem, which I can reproduce: when I create the index it is relatively small (as seen with ctx_report.index_size) and by applying the technique from the whitepaper, I can pin the DR$ I table into memory. But as soon as I do a ctx_ddl.optimize_index('Index','REBUILD') the size becomes much bigger and I can't pin the index in memory. Not sure if it is bug or not.
    What I found as work-around is to build the index with the following storage options:
    ctx_ddl.create_preference('TEST_STO','BASIC_STORAGE');
    ctx_ddl.set_attribute ('TEST_STO', 'BIG_IO', 'YES' );
    ctx_ddl.set_attribute ('TEST_STO', 'SEPARATE_OFFSETS', 'NO' );
    so that the token_info column will be stored in a secure file. Then I can change the storage of that column to put it in the keep buffer cache, and write a procedure to read the LOB so that it will be loaded in the keep cache. The size of the LOB column is more or less the same as when creating the index without the BIG_IO option but it remains constant even after a ctx_dll.optimize_index. The procedure to read the LOB and to load it into the cache is very similar to the loaddollarR procedure from the white paper.
    Because of the SDATA section, there is a new DR table (S table) and an IOT on top of it. This is not documented in the white paper (the white paper was written for Oracle 10g). In my case this DR$ S table is much used, and the IOT also, but putting it in the keep cache is not as important as the token_info column of the DR I table. A final note: doing SEPARATE_OFFSETS = 'YES' was very bad in my case, the combined size of the two columns is much bigger than having only the TOKEN_INFO column and both columns are read.
    Here is an example on how to reproduce the problem with the size increasing when doing ctx_optimize
    1. create the table
    drop table test;
    CREATE TABLE test
    (ID NUMBER(9,0) NOT NULL ENABLE,
    XML_DATA XMLTYPE
    XMLTYPE COLUMN XML_DATA STORE AS SECUREFILE BINARY XML (tablespace users disable storage in row);
    2. insert a few records
    insert into test values(1,'<Book><TITLE>Tale of Two Cities</TITLE>It was the best of times.<Author NAME="Charles Dickens"> Born in England in the town, Stratford_Upon_Avon </Author></Book>');
    insert into test values(2,'<BOOK><TITLE>The House of Mirth</TITLE>Written in 1905<Author NAME="Edith Wharton"> Wharton was born to George Frederic Jones and Lucretia Stevens Rhinelander in New York City.</Author></BOOK>');
    insert into test values(3,'<BOOK><TITLE>Age of innocence</TITLE>She got a prize for it.<Author NAME="Edith Wharton"> Wharton was born to George Frederic Jones and Lucretia Stevens Rhinelander in New York City.</Author></BOOK>');
    3. create the text index
    drop index i_test;
      exec ctx_ddl.create_section_group('TEST_SGP','PATH_SECTION_GROUP');
    begin
      CTX_DDL.ADD_SDATA_SECTION(group_name => 'TEST_SGP', 
                                section_name => 'SData_02',
                                tag => 'SData_02',
                                datatype => 'varchar2');
    end;
    exec ctx_ddl.create_preference('TEST_STO','BASIC_STORAGE');
    exec  ctx_ddl.set_attribute('TEST_STO','I_TABLE_CLAUSE','tablespace USERS storage (initial 64K)');
    exec  ctx_ddl.set_attribute('TEST_STO','I_INDEX_CLAUSE','tablespace USERS storage (initial 64K) compress 2');
    exec  ctx_ddl.set_attribute ('TEST_STO', 'BIG_IO', 'NO' );
    exec  ctx_ddl.set_attribute ('TEST_STO', 'SEPARATE_OFFSETS', 'NO' );
    create index I_TEST
      on TEST (XML_DATA)
      indextype is ctxsys.context
      parameters('
        section group   "TEST_SGP"
        storage         "TEST_STO"
      ') parallel 2;
    4. check the index size
    select ctx_report.index_size('I_TEST') from dual;
    it says :
    TOTALS FOR INDEX TEST.I_TEST
    TOTAL BLOCKS ALLOCATED:                                                104
    TOTAL BLOCKS USED:                                                      72
    TOTAL BYTES ALLOCATED:                                 851,968 (832.00 KB)
    TOTAL BYTES USED:                                      589,824 (576.00 KB)
    4. optimize the index
    exec ctx_ddl.optimize_index('I_TEST','REBUILD');
    and now recompute the size, it says
    TOTALS FOR INDEX TEST.I_TEST
    TOTAL BLOCKS ALLOCATED:                                               1112
    TOTAL BLOCKS USED:                                                    1080
    TOTAL BYTES ALLOCATED:                                 9,109,504 (8.69 MB)
    TOTAL BYTES USED:                                      8,847,360 (8.44 MB)
    which shows that it went from 576KB to 8.44MB. With a big index the difference is not so big, but still from 14G to 19G.
    5. Workaround: use the BIG_IO option, so that the token_info column of the DR$ I table will be stored in a secure file and the size will stay relatively small. Then you can load this column in the cache using a procedure similar to
    alter table DR$I_TEST$I storage (buffer_pool keep);
    alter table dr$i_test$i modify lob(token_info) (cache storage (buffer_pool keep));
    rem: now we must read the lob so that it will be loaded in the keep buffer pool, use the prccedure below
    create or replace procedure loadTokenInfo is
      type c_type is ref cursor;
      c2 c_type;
      s varchar2(2000);
      b blob;
      buff varchar2(100);
      siz number;
      off number;
      cntr number;
    begin
        s := 'select token_info from  DR$i_test$I';
        open c2 for s;
        loop
           fetch c2 into b;
           exit when c2%notfound;
           siz := 10;
           off := 1;
           cntr := 0;
           if dbms_lob.getlength(b) > 0 then
             begin
               loop
                 dbms_lob.read(b, siz, off, buff);
                 cntr := cntr + 1;
                 off := off + 4096;
               end loop;
             exception when no_data_found then
               if cntr > 0 then
                 dbms_output.put_line('4K chunks fetched: '||cntr);
               end if;
             end;
           end if;
        end loop;
    end;
    Rgds, Pierre

    I have been working a lot on that issue recently, I can give some more info.
    First I totally agree with you, I don't like to use the keep_pool and I would love to avoid it. On the other hand, we have a specific use case : 90% of the activity in the DB is done by queuing and dbms_scheduler jobs where response time does not matter. All those processes are probably filling the buffer cache. We have a customer facing application that uses the text index to search the database : performance is critical for them.
    What kind of performance do you have with your application ?
    In my case, I have learned the hard way that having the index in memory (the DR$I table in fact) is the key : if it is not, then performance is poor. I find it reasonable to pin the DR$I table in memory and if you look at competitors this is what they do. With MongoDB they explicitly says that the index must be in memory. With elasticsearch, they use JVM's that are also in memory. And effectively, if you look at the awr report, you will see that Oracle is continuously accessing the DR$I table, there is a SQL similar to
    SELECT /*+ DYNAMIC_SAMPLING(0) INDEX(i) */    
    TOKEN_FIRST, TOKEN_LAST, TOKEN_COUNT, ROWID    
    FROM DR$idxname$I
    WHERE TOKEN_TEXT = :word AND TOKEN_TYPE = :wtype    
    ORDER BY TOKEN_TEXT,  TOKEN_TYPE,  TOKEN_FIRST
    which is continuously done.
    I think that the algorithm used by Oracle to keep blocks in cache is too complex. A just realized that in 12.1.0.2 (was released last week) there is finally a "killer" functionality, the in-memory parameters, with which you can pin tables or columns in memory with compression, etc. this looks ideal for the text index, I hope that R. Ford will finally update his white paper :-)
    But my other problem was that the optimize_index in REBUILD mode caused the DR$I table to double in size : it seems crazy that this was closed as not a bug but it was and I can't do anything about it. It is a bug in my opinion, because the create index command and "alter index rebuild" command both result in a much smaller index, so why would the guys that developped the optimize function (is it another team, using another algorithm ?) make the index two times bigger ?
    And for that the track I have been following is to put the index in a 16K tablespace : in this case the space used by the index remains more or less flat (increases but much more reasonably). The difficulty here is to pin the index in memory because the trick of R. Ford was not working anymore.
    What worked:
    first set the keep_pool to zero and set the db_16k_cache_size to instead. Then change the storage preference to make sure that everything you want to cache (mostly the DR$I) table come in the tablespace with the non-standard block size of 16k.
    Then comes the tricky part : the pre-loading of the data in the buffer cache. The problem is that with Oracle 12c, Oracle will use direct_path_read for FTS which basically means that it bypasses the cache and read directory from file to the PGA !!! There is an event to avoid that, I was lucky to find it on a blog (I can't remember which, sorry for the credit).
    I ended-up doing that. the events to 10949 is to avoid the direct path reads issue.
    alter session set events '10949 trace name context forever, level 1';
    alter table DR#idxname0001$I cache;
    alter table DR#idxname0002$I cache;
    alter table DR#idxname0003$I cache;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0001$I;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0002$I;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0003$I;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0001$I ITAB;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0002$I ITAB;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0003$I ITAB;
    It worked. With a big relief I expected to take some time out, but there was a last surprise. The command
    exec ctx_ddl.optimize_index(idx_name=>'idxname',part_name=>'partname',optlevel=>'REBUILD');
    gqve the following
    ERROR at line 1:
    ORA-20000: Oracle Text error:
    DRG-50857: oracle error in drftoptrebxch
    ORA-14097: column type or size mismatch in ALTER TABLE EXCHANGE PARTITION
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.CTX_DDL", line 1141
    ORA-06512: at line 1
    Which is very much exactly described in a metalink note 1645634.1 but in the case of a non-partitioned index. The work-around given seemed very logical but it did not work in the case of a partitioned index. After experimenting, I found out that the bug occurs when the partitioned index is created with  dbms_pclxutil.build_part_index procedure (this enables  enables intra-partition parallelism in the index creation process). This is a very annoying and stupid bug, maybe there is a work-around, but did not find it on metalink
    Other points of attention with the text index creation (stuff that surprised me at first !) ;
    - if you use the dbms_pclxutil package, then the ctx_output logging does not work, because the index is created immediately and then populated in the background via dbms_jobs.
    - this in combination with the fact that if you are on a RAC, you won't see any activity on the box can be very frightening : this is because oracle can choose to start the workers on the other node.
    I understand much better how the text indexing works, I think it is a great technology which can scale via partitioning. But like always the design of the application is crucial, most of our problems come from the fact that we did not choose the right sectioning (we choosed PATH_SECTION_GROUP while XML_SECTION_GROUP is so much better IMO). Maybe later I can convince the dev to change the sectionining, especially because SDATA and MDATA section are not supported with PATCH_SECTION_GROUP (although it seems to work, even though we had one occurence of a bad result linked to the existence of SDATA in the index definition). Also the whole problematic of mixed structured/unstructured searches is completly tackled if one use XML_SECTION_GROUP with MDATA/SDATA (but of course the app was written for Oracle 10...)
    Regards, Pierre

  • Problem with oracle text indexes during import

    We have a 9.2.0.6 database using oracle text features on a server with windows 2000 5.00.2195 SP4.
    We need to export its data ( user ARIANE only ) and then import the result into another 9.2.0.6 database.
    The import never comes to an end.
    The only way to make it work is to use the "indexes=n" clause.
    Then ( without the indexes ), we tried to create manually the oracle text indexes.
    We get this error :
    CREATE INDEX ARIANE.DOSTEXTE_DTTEXTE_CTXIDX ON ARIANE.DOSTEXTE (DTTEXTE)
    INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('lexer ariane_lexer stoplist ctxsys.default_stoplist storage ariane_storage');
    ORA-29855: erreur d'exécution de la routine ODCIINDEXCREATE
    ORA-20000: Erreur Oracle Text :
    DRG-10700: préférence inexistante : ariane_lexer
    ORA-06512: à "CTXSYS.DRUE", ligne 157
    ORA-06512: à "CTXSYS.TEXTINDEXMETHODS", ligne 219
    We then tried to uninstall Oracle text and install it ( My Oracle Support [ID 275689.1] ). The index creation above still fails.
    We also checked our Text installation and setup through My Oracle Support FAQ ( ID 153264.1 ) and everything seems ok.
    Do we have to create some ARIANE* lexer preferences through specific pl/sql ( ctx_report* ? ) before importing anything from the ARIANE user ?
    What do we need to do exactly when exporting data with oracle text features from one database to another given we used to restore the database through a copy of the entire windows files ?
    Is there a specific order to follow to succeed an import ?
    Thank you for your help.
    Jean-michel, Nemours, FRANCE

    Hi
    index preferences are not exported, ie ariane_lexer + ariane_storage, only the Text index metada, thus the DRG-10700 from index DDL on target/import DB.
    I recommend to use ctx_report.create_index_script on source/export DB, see Doc ID 189819.1 for details, export with indexes=N and then create text indexes manually after data import.
    -Edwin

  • Using discoverer with Oracle Text

    I thought Discoverer would be able to intereact with Oracle intermedia/text indexes...can they? i.e. If there is an Intermedia Index, and the user know it is there but doesn't know the tags to query, can you point Discoverer to the index and it'll determine the tags avaiable to search on?
    Thanks,

    Sorry. The correct one is http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/text.920/a96517/acase.htm#620714

  • DRG-11513: unable to open or write to file /home/oracle/mydocs/....

    Hi @all,
    i've read all the dócumentations i've found in the net but unfortunatly the Indexing of my filestored documents fails every time...
    So what i've done is the following:
    --Step 1 Create User
    --The following SQL command creates a user called MYUSER with a password of myuser_password:
    drop user textuser;
    CREATE USER TEXTUSER IDENTIFIED BY TEXTUSER;
    --Step 2 Grant Roles
    --The following SQL command grants the required roles of RESOURCE,CONNECT, and CTXAPP to TEXT_USER:
    GRANT RESOURCE, CONNECT, CTXAPP TO textuser;
    GRANT EXECUTE ON CTX_CLS TO textuser;
    GRANT EXECUTE ON CTX_DDL TO textuser;
    GRANT EXECUTE ON CTX_DOC TO textuser;
    GRANT EXECUTE ON CTX_OUTPUT TO textuser;
    GRANT EXECUTE ON CTX_QUERY TO textuser;
    GRANT EXECUTE ON CTX_REPORT TO textuser;
    GRANT EXECUTE ON CTX_THES TO textuser;
    begin
    ctx_ddl.create_preference('COMMON_DIR','FILE_DATASTORE');
    end;
    begin
    ctx_ddl.set_attribute('COMMON_DIR','PATH','/home/oracle/mydocs');
    end;
    begin
    ctx_ddl.create_preference ('AUTO_DECT','INSO_FILTER');
    end;
    create table mytable(id number primary key, docs varchar2(2000));
    insert into mytable values (111557,'Zwischenbericht.doc ');
    commit;
    create index myindex on mytable(docs)
    indextype is ctxsys.context
    parameters ('datastore COMMON_DIR');
    select id,docs,score(1) from mytable where contains(docs, 'Dokumentation',1)>0;
    returns NULL ROWS!!
    select * from CTX_USER_INDEX_ERRORS;
    DRG-11513: Datei /home/oracle/mydocs/Zwischenbericht1.doc kann nicht geöffnet oder geschrieben werden
    (unable to open or write to file /home/oracle/mydocs/Zwischenbericht1.doc )
    I gave an chmod 777 on the document "Zwischenbericht1.doc"
    So what can i do?????
    I use Oracle 10.2.0 on Suse Linux 9.2
    I'm very happy about Ideas and helpfull advices.
    Thanks a lot regards Julius

    Hallo Barbara,
    thanks a lot for your help!!!
    I've noticed that it is necessary to create the user textuser as ctxsys. So i've done like you recommended but unfortunately the result is the same.....
    I added an utl_file Path to my SPFILE. (utl_file_dir= /home/oracle/mydocs) as you can see below. (is it necessary to something else to the spfile which i haven't noticed at all???
    After that i tried to set up all by using sqlplus for having the possibility to show the results.
    Below you can see the statements, the connect-Changes (ctxsys/textuser)
    and the echo .
    Do you or somebody else have an idea what i can do additionally to get this working???
    Thanks a lot and regards Julius
    oracle@scarlino:~/product/10.2.0/db_2/dbs> more spfileJULIUS2.ora
    ð!
    JULIUS2.__db_cache_size=71303168
    JULIUS2.__java_pool_size=4194304
    JULIUS2.__large_pool_size=4194304
    JULIUS2.__shared_pool_size=83886080
    JULIUS2.__streams_pool_size=0
    *.audit_file_dest='/home/oracle/admin/JULIUS2/adump'
    *.background_dump_dest='/home/oracle/admin/JULIUS2/bdump'
    *.compatible='10.2.0.1.0'
    *.control_files='/home/oracle/oradata/JULIUS2/control01.ctl','/home/oracle/oradata/JULIUS2/control02.ctl','/home/oracle/oradat
    a/JULIUS2/control03.ctl'
    *.core_dump_dest='/home/oracle/admin/JULIUS2/cdump'
    *.db_block_size=8192
    *.db_domain=''
    *.db_file_multiblock_read_count=16
    *.db_name='JULIUS2'
    *.db_recovery_file_dest='/home/oracle/flash_recovery_area'
    *.db_recovery_file_dest_size=2147483648
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=JULIUS2XDB)'
    *.job_queue_processes=10
    *.open_cursors=300
    *.pga_aggregate_target=16777216
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=167772160
    *.undo_management='AUTO'
    *.undo_tablespace='UNDOTBS1'
    *.user_dump_dest='/home/oracle/admin/JULIUS2/udump'
    *.utl_file_dir='/home/oracle/mydocs'
    oracle@scarlino:~/product/10.2.0/db_2/dbs> sqlplus " / as sysdba"
    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 19 11:36:29 2005
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.
    Total System Global Area 167772160 bytes
    Fixed Size 1218316 bytes
    Variable Size 92276980 bytes
    Database Buffers 71303168 bytes
    Redo Buffers 2973696 bytes
    Database mounted.
    connect ctxsys/ctxsyDatabase opened.
    SQL> s
    Connected.
    SQL> drop user textuser cascade;
    User dropped.
    SQL> CREATE USER TEXTUSER IDENTIFIED BY TEXTUSER;
    User created.
    SQL> GRANT RESOURCE, CONNECT, CTXAPP TO textuser;
    Grant succeeded.
    SQL> GRANT RESOURCE, CONNECT, CTXAPP TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_CLS TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_DDL TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_DOC TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_OUTPUT TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_QUERY TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_REPORT TO textuser;
    Grant succeeded.
    SQL> GRANT EXECUTE ON CTX_THES TO textuser;
    Grant succeeded.
    SQL> connect textuser/textuser
    Connected.
    SQL> begin
    ctx_ddl.create_preference('COMMON_DIR','FILE_DATASTORE');
    end;
    / 2 3 4
    PL/SQL procedure successfully completed.
    SQL> begin
    ctx_ddl.set_attribute('COMMON_DIR','PATH','/home/oracle/mydocs');
    end;
    / 2 3 4
    PL/SQL procedure successfully completed.
    SQL> begin
    ctx_ddl.create_preference ('AUTO_DECT','INSO_FILTER');
    end;
    / 2 3 4
    PL/SQL procedure successfully completed.
    SQL> create table mytable(id number primary key, docs varchar2(2000));
    Table created.
    SQL> insert into mytable values (111557,'Zwischenbericht.doc ');
    1 row created.
    SQL> insert into mytable values (111558,'Test.txt ');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> drop index myindex;
    drop index myindex
    ERROR at line 1:
    ORA-01418: specified index does not exist
    SQL> create index myindex on mytable(docs)
    indextype is ctxsys.context
    parameters ('datastore COMMON_DIR'); 2 3
    Index created.
    SQL> select token_text from dr$myindex$i;
    no rows selected
    SQL> select id, docs, score(1)
    from mytable
    where contains (docs, 'Dokumentation', 1) > 0; 2 3
    no rows selected
    SQL> select * from CTX_USER_INDEX_ERRORS;
    ERR_INDEX_NAME ERR_TIMES ERR_TEXTKEY
    ERR_TEXT
    MYINDEX 19-SEP-05 AAANA3AAEAAAAGEAAA
    DRG-11513: unable to open or write to file /home/oracle/mydocs/Zwischenbericht.d
    oc
    MYINDEX 19-SEP-05 AAANA3AAEAAAAGEAAB
    DRG-11513: unable to open or write to file /home/oracle/mydocs/Test.txt
    SQL>
    ################################################################################

  • Using long vs. clob datatype with Oracle 8.1.7 and interMedia

    I am trying to determine the best datatype to use for a column I
    wish to search using the interMedia contains() function. I am
    developing a 100% java application using Oracle 8.1.7 on Linux.
    I'd prefer to use the standard JDBC API's for PreparedStatement,
    and not have to use Oracle extensions if possible. I've
    discovered that there are limitations in the support for LOB's
    in Oracle's 100% java driver. The PreparedStatement methods
    like setAsciiStream() and setCharacterStream() are documented to
    have flaws that may result in the corruption of data. I have
    also noticed that socket exceptions sometimes occur when a large
    amount of data is transferred. If I use the long datatype for
    my table column, the setCharacterStream() method seems to
    transfer the data correctly. When I try to search this column
    using the interMedia contains() function, I get strange
    results. If I run my search on Oracle 8.1.6 for Windows, the
    results seem to be correct. If I run the same search on Oracle
    8.1.7 for Linux, the results are usually incorrect. The same
    searches seem to work correctly on both boxes when I change the
    column type from long to clob. Using the clob type may not be
    an option for me since the standard JDBC API's to transfer data
    into internal clob fields are broken, and I may need to stick
    with standard JDBC API's. My customer wishes to purchase a
    version of Oracle for Linux that will allow us to implement the
    search capability he requires. Any guidance would be greatly
    appreciated.

    I've finally solved it!
    I downloaded the following jre from blackdown:
    jre118_v3-glibc-2.1.3-DYNMOTIF.tar.bz2
    It's the only one that seems to work (and god, have I tried them all!)
    I've no idea what the DYNMOTIF means (apart from being something to do with Motif - but you don't have to be a linux guru to work that out ;)) - but, hell, it works.
    And after sitting in front of this machine for 3 days trying to deal with Oracle's, frankly PATHETIC install, that's so full of holes and bugs, that's all I care about..
    The one bundled with Oracle 8.1.7 doesn't work with Linux redhat 6.2EE.
    Don't oracle test their software?
    Anyway I'm happy now, and I'm leaving this in case anybody else has the same problem.
    Thanks for everyone's help.

  • Using psp with oracle text.

    we are design a simple document management application using psp with oracle text.
    we can query on index and finding the record and display the result on browser page.
    but we can't take document link on the same browser page. So we can't take document itself.
    We are using Oracle database release 1 text
    Thanks for your help.

    Sorry. The correct one is http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/text.920/a96517/acase.htm#620714

  • How can i use Oracle intermedia with Oracle forms 9i

    Hi all,
    I have a requirment from one of our client that they want to manage a large amount of Images,by seeing the documents about the oracle interMedia we got some idea to manage this images ,but the client is alredy having a software which is been developed by Oracle forms9i and we need to develope this using oracle forms9i can anyone give us an idea that how can we make use of InterMedia through Oracle forms9i ....
    Thanks in advance....

    I am also trying to use interMedia objects with Oracle 9i forms. I've tried everything and I can't get it to work.
    So far I have a solution that loads images using WebUtil into a blob field in Forms 9i, then in a backend stored procedure I move the blob to an interMedia object. Which works, but the problem with the image item in Oracle forms is that the image format cannot be change at runtime, so the images will always be what you set at design time.
    Can someone out there please help.
    Thanks.
    Ray

  • Oracle Text with Oracle TimesTen

    Hi!
    I'm trying to use Oracle Text with Oracle TimesTen In-Memory. In this customer, we are using Oracle Text to index the names of the company clients. There are about 13 million names to index. We're trying to speed up even more the search using Oracle TimesTen.
    Does anybody as any experience using simultanely this two technologies?
    Thanks in advance
    Tiago Soares

    TimesTen doesn't support the CONTEXT indextype or CONTAINS clause (or other domain indexes/operators), so you can't create Oracle Text indexes in it.

  • Oracle XE 10.2.0.1.0 – Performance with BIG full-text indexes

    I would like to use Oracle XE 10.2.0.1.0 only for the full-text searching of the files residing outside the database on the FTP server.
    Recently I have found out that size of the files to be indexed is 5GB.
    As I have read somewhere on this forum before size of the index should be 30-40% of the indexed text files (so with formatted documents like PDF or DOC even less).
    Lets say that the CONTEXT index size over these files will be 1.5-2GB.
    Number of the concurrent user will be max. 5.
    Does anybody have any experience with Oracle XE performance with the CONTEXT index this BIG?
    (Oracle XE license limitations: 1 GB RAM and 1 CPU)
    Regards.
    Edited by: user10543032 on May 18, 2009 11:36 AM
    Edited by: user10543032 on May 18, 2009 12:10 PM

    I have used the 100% same configuration as above, but now for the Oracle Database 11g R1 11.1.0.7.0 – Production instead of Oracle 10g XE.
    The result is that AUTO_FILTER for Oracle 11g is able to parse Czech language characters from the sample PDF file without any problems.
    The problem with Oracle Text 10g R2 may be I guess:
    1. In embedded fonts as mentioned in the Link: [documentation | http://download-west.oracle.com/docs/cd/B12037_01/text.101/b10730/afilsupt.htm] (I tried to embbed all fonts and the whole character set, but it did not helped)
    2. in the character encoding of the text within the PDF documents.
    I would like to add that also other third party PDF2Text converters have similar issues with the Czech characters in the PDF documents – after text extraction Czech national characters were displayed incorrectly.
    If you have any other remarks, ideas or conclusions please reply :-)

  • How to get exact match when working with Oracle Text?

    Hi,
    I'm running Oracle9i Database R2.
    I would like to know how do I get exact match when working with Oracle Text.
    DROP TABLE T_TEST_1;
    CREATE TABLE T_TEST_1 (text VARCHAR2(30));
    INSERT INTO T_TEST_1 VALUES('Management');
    INSERT INTO T_TEST_1 VALUES('Busines Management Practice');
    INSERT INTO T_TEST_1 VALUES('Human Resource Management');
    COMMIT;
    DROP INDEX T_TEST_1;
    CREATE INDEX T_TEST_1_IDX ON T_TEST_1(text) INDEXTYPE IS CTXSYS.CONTEXT;
    SELECT * FROM T_TEST_1 WHERE CONTAINS(text, 'Management')>0;
    The above query will return 3 rows. How do I make Oracle Text to return me only the first row - which is exact match because sometimes my users need to look for exact match term.
    Please advise.
    Regards,
    Jap.

    But I would like to utilize the Oracle Text index. Don't know your db version, but if you slightly redefine your index you can achieve this (at least on my 11g instance) :
    SQL> create table t_test_1 (text varchar2(30))
      2  /
    Table created.
    SQL> insert into t_test_1 values ('Management')
      2  /
    1 row created.
    SQL> insert into t_test_1 values ('Busines Management Practice')
      2  /
    1 row created.
    SQL> insert into t_test_1 values ('Human Resource Management')
      2  /
    1 row created.
    SQL>
    SQL> create index t_test_1_idx on t_test_1(text) indextype is ctxsys.context filter by text
      2  /
    Index created.
    SQL> set autotrace on explain
    SQL>
    SQL> select text, score (1)
      2    from t_test_1
      3   where contains (text, 'Management and sdata(text="Management")', 1) > 0
      4  /
    TEXT                             SCORE(1)
    Management                              3
    Execution Plan
    Plan hash value: 4163886076
    | Id  | Operation                   | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |              |     1 |    29 |     4   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| T_TEST_1     |     1 |    29 |     4   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | T_TEST_1_IDX |       |       |     4   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CONTAINS"("TEXT",'Management and
                  sdata(text="Management")',1)>0)
    Note
       - dynamic sampling used for this statementJust read that you indeed mentioned your db version in your first post.
    Not sure though if above method is already available in 9i ...
    Message was edited by:
    michaels

  • Huge Databases to be indexed with Oracle Text?

    Is there anybody with experience with Oracle Databases with several TB and an fulltext index with Oracle Text? Are there any success stories by oracle?

    Oracle Text, data load by partitation, async refresh index.
    Hi Gurus,
    Here I got a question,
    Serniro:
    A table with 2 partitions, text index created.
    When I load data into 1st partition, performance good.
    Sync partion text index, performance good.
    Then I load data into 2nd partition, it's so slow.
    My question is,
    How to disable/offline 2nd partition text index?
    Sync it after I loaded 2nd partition data.

  • InterMedia Text with USER_DATASTORE and ORA-03113

    Hi,
    I have problems using Oracle's InterMedia Text-index with a
    USER_DATASTORE. I'm using Oracle 8.1.7 on Windows NT 4.0.
    What I try to do is to create a context-index on multiple columns
    of multiple tables. I created a table containing the original
    tablenames and primary keys plus a char(1)-column to index, a
    user_datastore, a procedure in a user-schema, a
    wrapping-procedure in ctxsys' schema and finally the index. All
    works fine so far but I get an ORA-03113 "end-of-file on
    communication channel" error when querying the table with
    contains. The procedure itself works.
    Here's what I tried in detail:
    I created a table "alldocs" containing the tablename and
    primary-key-value of each line of each table plus a dummy-column
    for the index:
    create table alldocs(
    table varchar2(30) not null,
    id number not null,
    data char(1),
    primary key(tabelle, id)
    I filled this table:
    insert into alldocs (select 'MYDOCS', id, 'a' from mydocs);
    insert into alldocs (select 'OTHERDOCS', id, 'b' from otherdocs);
    The user's procedure - only dummy for testing - is:
    create procedure test.GetAllDocsData(row IN ROWID, data IN OUT
    NOCOPY CLOB) IS
         tabname varchar2(30);
         myid     number;
         tmpclob clob;
    begin
         dbms_lob.createtemporary(tmpclob, TRUE);
         dbms_lob.writeappend(tmpclob, 34, 'Ein Text mit ca. 20
    Zeichen Ldnge.');
         data := tmpclob;
    end;
    In ctxsys' schema I defined the following procedure and the
    datastore:
    create or replace procedure sysGetAllDocsData(rid in rowid, tlob
    in out clob) is
    begin
    test.GetAllDocsData(rid, tlob);
    end sysGetAllDocsData;
    grant execute on sysGetAllDocsData to test;
    call ctx_ddl.create_preference('MyUserDS', 'user_datastore');
    call ctx_ddl.set_attribute('MyUserDS', 'procedure',
    'sysGetAllDocsData');
    call ctx_ddl.set_attribute('MyUserDS', 'output_type', 'CLOB');
    Finally I defined the index:
    create index test.alldocs_ctx on test.alldocs(data)
         indextype is ctxsys.context
         parameters ('DATASTORE CTXSYS.MyUserDS FILTER
    CTXSYS.INSO_FILTER LEXER BASIC_LEXER');
    This all works without errors. But when querying like this:
    select * from test.alldocs where contains('data', 'Text')>0
    the answer is
    ORA-03113: end-of-file on communication channel
    I hope someone can help.
    Greetings
    Ralf

    Hi Ralf,
    please define first your own preferences like this:
    exec CTX_DDL.drop_preference('MY_LEXER');
    exec CTX_DDL.create_preference('MY_LEXER','BASIC_LEXER');
    exec CTX_DDL.set_attribute('MY_LEXER','ALTERNATE_SPELLING',
    'GERMAN');
    exec CTX_DDL.set_attribute('MY_LEXER','BASE_LETTER','YES');
    exec CTX_DDL.set_attribute('MY_LEXER','MIXED_CASE', 'NO');
    exec CTX_DDL.set_attribute('MY_LEXER','INDEX_THEMES','NO');
    exec CTX_DDL.set_attribute('MY_LEXER','INDEX_TEXT', 'YES');
    exec CTX_DDL.set_attribute('MY_LEXER','COMPOSITE', 'GERMAN');
    exec ctx_ddl.Drop_Preference ('MY_FILTER');
    exec ctx_ddl.Create_Preference ('MY_FILTER','NULL_FILTER');
    exec ctx_ddl.drop_section_group ('MY_SECTION');
    exec ctx_ddl.create_section_group
    ('MY_SECTION','NULL_SECTION_GROUP');
    and then create your index with this preferences. You only need
    an INSO filter if you want to index pdf,word,...
    create index test.alldocs_ctx on test.alldocs(data)
         indextype is ctxsys.context
         parameters ('DATASTORE CTXSYS.MyUserDS FILTER
    CTXSYS.INSO_FILTER LEXER BASIC_LEXER');create index test.alldocs_ctx on test.alldocs(data)
         indextype is ctxsys.context
         parameters ('
    DATASTORE CTXSYS.MyUserDS
    lexer MY_LEXER
    filter MY_FILTER
    section group MY_SECTION');
    Then see in the token table what tokens are in the index:
    select token_text from dr$alldocs_ctx$i;
    If you got also an ORA-3113 see in alert.log if there is a trace
    referenced with this error and have a look in this file to find a
    better error message.
    Good luck.
    Thomas

  • Is 10.2.0.3 is certified with oracle apps 11.5.10.2

    Hi,
    Is 10.2.0.3 is certified with 11.5.10.2....
    One more thing...
    During upgrade of 11.5.10.2 Database to 10g R2...
    Do we require 10g Release 2 Companion CD, if it is why it is required...with out this..cant we upgrade....
    Please give advice
    following are the components from Oracle Companion CD...
    ======================================================
    we are not going to implement these
    JPublisher
    Oracle Database Examples (formerly Oracle Demos)
    Oracle JVM
    Oracle interMedia
    Oracle Text Supplied Knowledge Bases
    Oracle Ultra Search
    Oracle HTTP Server
    Oracle HTML DB
    Oracle Workflow server and middle-tier components
    ==================================
    Is the above things compulsory required to upgrade to 10g..

    Yes 10.2.0.3 is certified for 11.5.10.2
    Follow the latest 10gR2/11i Interoperability Notes (362203.1)
    Oracle Applications Release 11i with Oracle 10g Release 2 (10.2.0)
    http://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=362203.1
    You need to install the companion CD. 8i/9i delivered Intermedia and the JVM by default, and in 10g those products are contained on the companion CD. Your upgrade will fail if those components are not installed in the 10gR2 Oracle Home. You do not need to install the Oracle HTTP Server or HTML DB.

  • Help with Oracle Connection- "Input string was not in a correct format"

    Hello, can some one, anyone please help me. I have a simple VS 2005 C# application that connects to oracle. I've set it up to take the username, password and tnsname as arguments. I am using Client 9i, version 9.2.0.401 of Oracle.DataAccess.dll, and .NET Framework 2.0.
    It works fine when I run it from VS 2005, I have also set up a test machine w/o VS 2005 and ran my install package and it runs fine. I sent it to one of my co-workers and when he tries it the OracleConnection obect fails with the error.
    "Input string was not in a correct format"
    strange in that it is not an ORA error, just the identifed text!?
    Here is the code:
    ## begin code
    OracleConnection dbc = new OracleConnection();
    string sConnectString = "User Id=" + username.ToString() + ";Password=" + password.ToString() + ";Data Source=" + tnsname.ToString();
    dbc.ConnectionString = sConnectString.ToString();
    MessageBox.Show("Attempting to Connect to Oracle");
    dbc.Open();
    MessageBox.Show("Connected to Oracle: " + dbc.ServerVersion);
    ## end code
    Pretty basic, what could be going on?
    Since this only happens with an installation, I put in the message boxes to verify exactly where it chokes. I get the first message box, then an error with the identified text. I've seen a number of posts regarding input string format problems, but not a one dealing with OracleConnection.Open(). I added all the ToString() calls just to make sure everything was a string but it did not change the end result.
    Anyone? Thanks In advance!
    Eric S.

    Hello,
    well, i got a message "...string not wellformed format...", too.
    If you have defined the parameters as string, you don't need the additonal "ToString()". Please ckeck your tnsnames -string. Try to debug this. I believe you have copy the format from the tnsnames.ora and there you have much brackets.
    For example, two code snippets:
    As datasource i use <Server>:<Port>/<Instance>
    try
    string FDsn ="User Id="+FDbUser+";Password="+FDbPwd;
    FDsn +=";Data Source=wth5:1521/Ora9.wth5";
    FConn = new OracleConnection(FDsn);
    FConn.Open();
    if (FConn.State == ConnectionState.Open )
         FConn.Close();
    catch (Exception ex)
         FStateMsg = "Connection to database failed. Check Configuration in parameter: ConnectionString. " + ex.Message;
    Above i connect to a Ora 9.2.0.1
    by using
    FDsn +=";Data Source=wth5:1522/XE";
    i connect to an OraExpress database on the same machine.
    My Oracle.dataAccess.dll ist the newest, 10.2.... and it runs under Framework 1.1.x and Framework 2.x
    I'll hope it will help you. Best regards!

Maybe you are looking for