Article ID: 108439 - View products that this article applies to.
This article was previously published under Q108439
If you have a query based on an attached Oracle synonym that has a sort on a column name, and the owner of the synonym has read-only permissions on the table on which the synonym is based, you will receive the error messages:
ODBC - call failed
[PageAhead][ODBC Oracle Driver][Oracle OCI]ORA-00904: invalid column name. [#904]
This error occurs because the owner of the synonym has read-only permissions on the Oracle table on which the synonym is based.
There are four ways to correct this problem:
The following is an example of an SQL statement that will cause this error:
SELECT * FROM <owner>.<synonym_name>
ORDER BY <owner>.<synonym_name>.<column_name>
Note that the same errors will occur if this command is issued in SQL*DBA or SQL*PLUS, which are Oracle's interface tools. If you remove the ORDER BY clause, the statement will run. The statement will run with the ORDER BY clause if you remove the <owner>. clause instead. The statement will run with all the clauses included if you increase the owner's permissions on the table on which the query is based.
Steps to Reproduce Behavior
SELECT * FROM userA.synonymA ORDER BY userA.synonymA.column1;
Note that the command runs correctly. Next, connect as user B and issue the following command:
SELECT * FROM userB.synonymB ORDER BY userB.synonymB.column1;
An error message will occur.
Article ID: 108439 - Last Review: January 26, 2005 - Revision: 2.1