Error: Attribute column not found[ORA-00904:invalid column name]

Error Message

When attempting to execute the IDifferenceCursor.Differences method with the esritypeUpdateUpdate constant, it returns the following error:

"Attribute column not found[ORA-00904: invalid column name][<owner>.<table_name>][STATE_ID = <state_id>]"


Field names are not defined in the query filter. The query being executed in the underlying DBMS uses a wild card (*) to select and return all columns/fields. The ArCSDE UpdateUpdate difference filter uses a correlated sub-query in which the the joining column/field must be defined in the upper and lower bounds of the query.

In this case, there is no matching column/field and the query fails to execute, returning the error.

Solution or Workaround

Set the table's row_id field as a subfield in the IQueryFilter.

For example:

'Important for the QueryFilter to return the OID
Dim pQueryFilter As IQueryFilter
Set pQueryFilter = New QueryFilter
pQueryFilter.SubFields = pFCParent.OIDFieldName

'Open the difference Cursor
Dim pDiffCursor As IDifferenceCursor
Set pDiffCursor = pVTable.Differences(pFCParent, esriDifferenceTypeUpdateUpdate, pQueryFilter)