PRB: Consultas distribuidas de SQL con Oracle produce "podría no Abrir tabla" Error

Seleccione idioma Seleccione idioma
Id. de artículo: 240340 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Síntomas

Intentar usar una consulta con un servidor vinculado Oracle mediante el proveedor MSDAORA OLE, por ejemplo:
select * from OracleServer..demo.Product
				
puede producir un error similar al siguiente:
Servidor: Msg 7306, nivel 16, estado 2, línea 1
No se pudo abrir la tabla ' "demostración". "Producto"' de proveedor OLE DB 'MSDAORA'. La tabla especificada no existe.
[Proveedor OLE/DB devolvió el mensaje: la tabla especificada no existe]
[Proveedor OLE/DB devolvió el mensaje: ORA-00942: no existe tabla o vista]

Causa

La consulta puede no funcionar debido de mayúsculas y minúsculas en Oracle, puesto que SQL Server utiliza nombres entre comillas cuando enviarlo consultas a un proveedor.

Solución

Utilice las siguientes reglas cuando se hace referencia a las tablas de un servidor vinculado Oracle:
  • Si los nombres de tabla y columna fueron creados en Oracle sin identificadores entre comillas dobles, utilice todos los nombres en mayúsculas. Por ejemplo, la siguiente debe funcionar Aceptar:
    select * from OracleServer..DEMO.PRODUCT
    						
  • Si los nombres de tabla y columna se crearon en Oracle con identificadores entre comillas, utilice el mismo caso para todas las letras de los nombres que se utilizó cuando los nombres se crearon en Oracle.
Distinción entre mayúsculas y minúsculas no es un problema al utilizar la función OpenQuery u OpenRowset. La siguiente debe funcionar Aceptar:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
				

Más información

La versión 7.0 de Microsoft SQL Server ofrece la posibilidad de realizar consultas a proveedores OLE DB. Esto se consigue mediante las funciones OpenQuery u OpenRowset Transact-SQL o mediante una consulta con cuatro nombres de parte incluyendo un nombre de servidor vinculado. Por ejemplo:
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'
SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')
				

Pasos para reproducir el comportamiento

  1. Configurar un servidor vinculado al servidor de Oracle:
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'
    go
    EXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'
    go
    						
  2. Especificar una consulta de nombre de cuatro partes:
    SELECT * FROM OracleServer..demo.Product
    						
    que notifica el error descrito en la sección síntomas.

REFERENCIAS

Para obtener información adicional sobre SQL Server las consultas distribuidas con origen de datos de Oracle, vea el tema libros en pantalla de SQL 7.0 "OLE DB Provider para Oracle" y los artículos siguientes en Microsoft Knowledge Base:
220915PRB: Consulta distribuida de SQL con Oracle necesita el cliente de Oracle

221552PRB: Consultas con error de Oracle columna NUMERIC da distribuida de SQL

Propiedades

Id. de artículo: 240340 - Última revisión: domingo, 23 de febrero de 2014 - Versión: 4.2
La información de este artículo se refiere a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 240340

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com