Java API class DeepRename fails under Oracle

Document ID : KB000088133
Last Modified Date : 14/04/2018
Show Technical Document Details
Issue:
Error Message :
DB error: 'OCIStmtExecute', 'ERROR ', '', 'ORA-01786: FOR UPDATE of this query expression is not allowed'

The Java class 'DeepRename' does not rename objects correctly when using Oracle in v10 and before v11.1. The same commands using DeepRename class work fine with a MS SQL database.

Here are a few symptoms:
  • Search for use of an object points to the original name of the object
  • Search with the new name does not work
Investigation

When executing the DeepRename class, it will produce the Oracle error shown above.

Example:

<uc-env request="prm_13>
     <error>
        <messagebox client="1000" system="UC4UATUS">
           <message insert="XDEEPRENAME(ACT)|00072|015595|0000003590| UCUDB - DB error: 'OCIStmtExecute', 'ERROR  ', ''., 'ORA-01786: FOR UPDATE of this query expression is not allowed'|dsfun/RenameObjectsFromSubFolderTable/pos 18|" nr="0000020568">

                        <OK>
                               <command owneraction="close"/>
                        </OK>
                        <HELP/>
                      </message>
        </messagebox>
     </error>
​</uc-env>

 
Environment:
OS Version: N/A
Cause:
Cause type:
Defect
Root Cause: The deeprename request requires the usage of * wildcard character which causes problems when using Oracle in AE v10 and before v11.1.
Resolution:
Update to a fix version listed below or a newer version if available.

Fix Status: Released

Fix Version(s):
Component(s) : Java API

Automation Engine 11.1 - Available
Additional Information:
Workaround :
Use the transport case and DB Change Utility rather than the Java API.