My Oracle Support Banner

"ORA-00923: FROM keyword not found where expected" Error Received when Reserved Word ROWID is Used in DISTINCT Mapping Component (Doc ID 2483191.1)

Last updated on JUNE 16, 2022

Applies to:

Oracle Data Integrator - Version 12.2.1.3.0 to 12.2.1.4.0 [Release 12c]
Information in this document applies to any platform.

Symptoms

NOTE: In the examples below, user details / company name / address / email / telephone number represent a fictitious sample (based upon made up data used in the Oracle Demo Vision instance). Any similarity to actual persons, living or dead, is purely coincidental and not intended in any manner.

 

After upgrading the Oracle Data Integrator (ODI) Repository from ODI 11g to ODI 12.2.1.3.0, generated code is not correct when a reserved word like ROWID is used in a DISTINCT Mapping Component.  The code is executed successfully in ODI 11g but in ODI 12.2.1.3 execution is failing because the alias "ROWID" is not recognized as a reserved word and double-quotes are not added.  The following error is received:

ODI-1228: Task Insert new rows-IKM Oracle Insert-Load TARGET_TABLE fails on the target connection TEST_DATA_SERVER.
Caused By: java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
   at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:495)
   at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:447)
   at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1055)
   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:624)
   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:253)
   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:613)
   at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:214)
   at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:38)
   at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:891)
   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1194)
   at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1835)
   at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1790)
....
at java.lang.Thread.run(Thread.java:748)
Caused by: Error : 923, Position : 390, Sql =
     INSERT
     /*+ APPEND PARALLEL */
      INTO TEST_DWH.TARGET_TABLE
      (
      ....
      )
       SELECT
       DISTINCT_.COL1 ,
       DISTINCT_.COL2 ,
       DISTINCT_.ROWID
       FROM
       (
           SELECT
           DISTINCT
           SOURCE_TABLE.COL1 AS COL1 ,
           SOURCE_TABLE.COL2 AS COL2 ,
           SOURCE_TABLE."ROWID" AS ROWID
       ) DISTINCT_ , Error Msg = ORA-00923: FROM keyword not found where expected
   at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:499)
...30 more

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.