PRB: SQL Distributed Query with Oracle Causes "Could not open table" Error (240340)
The information in this article applies to:
- Microsoft SQL Server 7.0
- Microsoft OLE DB Provider for Oracle 2.0
- Microsoft OLE DB Provider for Oracle 2.1
- Microsoft OLE DB Provider for Oracle 2.5
- Microsoft OLE DB Provider for Oracle 2.6
- Microsoft OLE DB Provider for Oracle 2.7
- Microsoft SQL Server 2000 (all editions)
This article was previously published under Q240340 SYMPTOMS
Attempting to use a query with an Oracle linked server using the MSDAORA OLE DB provider, for example:
select * from OracleServer..demo.Product
may cause an error similar to the following:
Server: Msg 7306, Level 16, State 2, Line 1
Could not open table '"demo"."Product"' from OLE DB provider 'MSDAORA'. The specified table does not exist.
[OLE/DB provider returned message: The specified table does not exist]
[OLE/DB provider returned message: ORA-00942: table or view does not exist]
CAUSE
The query may not work because of case sensitivity in Oracle since SQL Server uses quoted names when it ships queries to a provider.
WORKAROUND
Use the following rules when referencing tables in an Oracle linked server:
Case-sensitivity is not an issue when using OpenQuery or OpenRowset function. The following should work OK:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
Modification Type: | Major | Last Reviewed: | 12/5/2003 |
---|
Keywords: | kbDatabase kbOracle kbprb KB240340 |
---|
|