IBM Support

JR58003: ORACLE CONNECTOR UNABLE TO PLACE WHERE CLAUSE FOR ROWID RANGE READ PARTITIONING

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • This causes the Oracle connector stage to abort in multi-thread
    mode but works fine in single thread mode.
    

Local fix

Problem summary

  • Oracle Connector is unable to place the WHERE clause for ROWID
    RANGE Partitioning.
    .
    A job performing rowId range partitioning on a source Oracle
    Connector fails with one of the following fatal messages
    (depending on version of Oracle Connector):
    .
    The OCI function OCIStmtExecute returned status -1. Error code:
    907, Error message: ORA-00907: missing right parenthesis.
    (CC_OraStatement::executeSelect, file CC_OraStatement.cpp, line
    NNNN)
    - or -
    The variable nEndPosition has value NNNN which is not valid in
    the current context. (CC_OraUtils::matchingParenthesis, file
    CC_OraUtils.cpp, line NNNN)
    .
    The issue is that the Oracle Connector fails to correctly place
    the WHERE clause in the SQL that's modified in order to do rowId
    range partitioning.
    

Problem conclusion

  • The fix enables Oracle CC to generate proper SQL. HOWEVER,
    depending on the original, user-defined SQL, the Oracle Database
     may lose track of the table names and their aliases. After
    applying the patch, running the same job "as is" might result in
     this error:
    The OCI function OCIStmtExecute returned status -1. Error code:
    904, Error message: ORA-00904: MY_ALIAS.ROWID: invalid
    identifier. (CC_OraStatement::executeSelect, file
    CC_OraStatement.cpp, line NNNN)
    This happens because when Oracle prepares the statement, it may
    create multiple temporary views for different parts of the query
    plan and lose track of the table aliases that appear earlier in
    the SQL. The design of the Oracle Connector says to use the
    first table name in the user-defined SQL as the "Table name for
    partitioned reads" if that particular property is unspecified
    in the job. Customer can simply specify the table the "Table
    name for partioned reads" property to assist Oracle.
    

Temporary fix

Comments

APAR Information

  • APAR number

    JR58003

  • Reported component name

    WIS DATASTAGE

  • Reported component ID

    5724Q36DS

  • Reported release

    B50

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-06-08

  • Closed date

    2017-06-23

  • Last modified date

    2017-06-23

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WIS DATASTAGE

  • Fixed component ID

    5724Q36DS

Applicable component levels

  • RB50 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVSEF","label":"IBM InfoSphere DataStage"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.5","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
23 June 2017