Error creating new JChem index

User c0e481a82c

03-10-2007 15:46:30

Hi,





I'm trying to create a JChem index on a VARCHAR2(2000) column which will contain SMILES strings. When I run the following command:





CREATE INDEX IxJc_MInsp_TSet_Data_SMILES


ON MolInspiration_TSet_Data (SMILES)


INDEXTYPE IS JChem.JC_IdxType


PARAMETERS ('TABLESPACE=Indx_ES');





I get an error:





SQL Error: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine


ORA-29532: Java call terminated by uncaught Java exception: java.lang.Exception: The following exception has been thrown by the servlet:


Exception: ORA-00972: identifier is too long


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 52


ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 17


29855. 00000 - "error occurred in the execution of ODCIINDEXCREATE routine"


*Cause: Failed to successfully execute the ODCIIndexCreate routine.


*Action: Check to see if the routine has been coded correctly.





As you can see, it's claiming that an identifier is too long, but that doesn't appear to be the case; my identifier is less than 30 characters which is the Oracle limit for such things. Indeed, looking through the various scripts which I have for other indexes on this database, I can see longer identifiers than this. Also, the column on which I'm attempting to create the index is exactly the same column type as has been used before to store SMILES strings in this same database.





Could you please explain what's going wrong here?





My environment is:





"Oracle Database 10g Release 10.1.0.3.0 - Production


PL/SQL Release 10.1.0.3.0 - Production


CORE 10.1.0.3.0 Production


TNS for Linux: Version 10.1.0.3.0 - Production


NLSRTL Version 10.1.0.3.0 - Production


NLSRTL Version 10.1.0.3.0 - Production


JChem version in the database: 3.2.6


JChem version in the Tomcat server: 3.2.6


java.vm.version: 1.5.0_04-b05


java.vm.vendor: Sun Microsystems Inc.


Apache Tomcat/4.1.30


Major JDBC version in Tomcat: 1


Minor JDBC version in Tomcat: 0"





Thanks for your help.





Regards,





Phil.

ChemAxon aa7c50abf8

03-10-2007 18:22:35

Hi Phil,





Please, use an index name less than 23 characters long. The maximum length of JChem Cartridge index names is currently 22 characters.





Thanks


Peter

User c0e481a82c

04-10-2007 07:14:29

Hi Peter,





Thanks for your response. Shouldn't this limitation be documented on the following page:





http://www.chemaxon.com/jchem/doc/guide/cartridge/index.html#index





With nothing to indicate to the contrary, I assumed the limit for an index name would be 30 characters, as for any other Oracle object name.





Regards,





Phil.

ChemAxon aa7c50abf8

04-10-2007 08:04:30

Hi Phil,





Yes, this limitation should be documented at the place you suggested. I have fixed it.





Thank you for your suggestion and sorry for the inconvenience.





Peter