Article ID: 109486
Article Last Modified on 9/25/2001
APPLIES TO
- Microsoft Open Database Connectivity 1.0
This article was previously published under Q109486
BUG# ODBCORA: 580 (1.00.3112)
SYMPTOMS
When delimited tablenames are passed to the Oracle driver in an escape
clause, the delimiters are removed by the driver. Oracle needs the
delimiters to find the table in cases where the table was originally
created with the delimiters as part of the tablename. The following error
will result when the non-delimited tablenames are passed down:
[PageAhead][ODBC Oracle Driver][Oracle OCI]ORA-00942: table or view
does not exist.
The following query:
select "Categories"."Category_Name", "Products"."Product_Name" from
{ oj "Categories" left outer join "Products" on
"Categories"."Category_ID" = "Products"."Category_ID" }
produces the ORA-00942 error. But when the query is formed without
using an escape clause, it works:
select "Categories"."Category_Name" , "Products"."Product_Name" from
"Categories" ,"Products" where "Categories"."Category_ID" (+)=
"Products"."Category_ID"
This behavior impacts Access users in that Oracle tables created using the
Export function of Access cannot be queried on later when the query
involved the Access database engine generating Access SQL queries that
involve outer joins.
WORKAROUND
Not using ODBC escape clauses when using delimited identifiers will avoid
the problem. Also, you can use native Oracle SQL syntax as demonstrated
above.
Users of Microsoft Access experiencing this problem will need to use the
SQL Passthrough DLL.
STATUS
Microsoft has confirmed this to be a problem in the ODBC Oracle Driver
versions 1.00.3112 and 1.00.2816. We are researching this problem and will
post new information here in the Microsoft Knowledge Base as it becomes
available.
Additional query words: 1.00.2816 1.00.3112 VB DRIVERS 1.0 FULFILLMENT
Keywords: kbbug KB109486