"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
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 |