Proveedor Oracle para OLE DB
Actualizado: 14 de abril de 2006
El proveedor Oracle para OLE DB (8.1.7.3.0) permite la utilización de consultas distribuidas en datos de bases de datos Oracle. La compatibilidad del proveedor Oracle para OLE DB se aplica de la forma siguiente:
Oracle 32 bits |
Sólo fuera de proceso |
Oracle 64 bits |
Ninguna |
Para crear un servidor vinculado que tenga acceso a una instancia de base de datos Oracle
Asegúrese de que el software de cliente Oracle del servidor que ejecuta Microsoft SQL Server es el que necesita el proveedor. El proveedor Oracle para OLE DB (8.1.7.3.0) requiere el cliente de Oracle 8.1.7.0.
Cree un nombre de alias en el servidor que ejecute SQL Server que apunte a una instancia de una base de datos Oracle. Para obtener más información, vea la documentación de Oracle.
Ejecute sp_addlinkedserver para crear el servidor vinculado; para ello, especifique OraOLEDB.Oracle como provider_name y el alias de la base de datos de Oracle como data_source.
En el ejemplo siguiente se supone que el alias se ha definido como
DQORA8
:exec sp_addlinkedserver @server='OrclDB', @srvproduct='Oracle', @provider='OraOLEDB.Oracle', @datasrc='DQORA8'
Nota de seguridad: En este ejemplo no se utiliza la autenticación de Windows. Las contraseñas se transmiten sin cifrar. Las contraseñas se pueden ver en secuencias de comandos y definiciones de origen de datos guardadas en disco, en copias de seguridad y en archivos de registro. No utilice nunca una contraseña de administrador en este tipo de conexión. Solicite a su administrador de red directrices de seguridad específicas para este entorno. Utilice sp_addlinkedsrvlogin para crear asignaciones de inicios de sesión de SQL Server a inicios de sesión de Oracle.
En el ejemplo siguiente se asigna el inicio de sesión de SQL Server
Joe
al servidor vinculado definido en el paso 3 mediante el inicio de sesión y la contraseña de OracleOrclUsr
yOrclPwd
:sp_addlinkedsrvlogin @rmtsrvname = 'OrclDB', @useself = 'false', @locallogin = 'Joe', @rmtuser = 'OrclUsr', @rmtpassword = 'OrclPwd'
Aplique las reglas siguientes cuando haga referencia a las tablas de un servidor vinculado Oracle:
Si los nombres de tabla y de columna fueron creados en Oracle sin identificadores entre comillas, use nombres en mayúsculas.
Si los nombres de tabla y de columna fueron creados en Oracle con identificadores entre comillas, use los nombres con las mismas letras en minúsculas o en mayúsculas que se usaron cuando se crearon en Oracle.
Las instrucciones INSERT deben suministrar valores para todas las columnas de una tabla aunque determinadas columnas puedan ser NULL o tener valores predeterminados.
Este proveedor no admite el envío directo de literales datetime como argumentos en el formato siguiente:
EXEC 'string' '<datetime-literal>' AT <oraclelinkedserver>
Por ejemplo, no se admite la siguiente utilización del literal datetime
'14-sep-94'
:EXEC('INSERT INTO DYNORCL.SALES(ID, ORD_NO, ORD_DATE, QTY) VALUES (?, ?, ?, ?)', '6380', '6871', '14-sep-94', 5) AT OrclDB
En su lugar, cree una variable datetime, asígnele el valor literal y llame a
EXEC
con la variable como argumento:DECLARE @v1 datetime SET @v1 = CONVERT(datetime,'14-sep-94') EXEC('INSERT INTO DYNORCL.SALES(ID, ORD_NO, ORD_DATE, QTY) VALUES (?, ?, ?, ?)', '6380', '6871', @v1, 5) AT OrclDB
Restricciones
SQL Server no admite la utilización de la función de agregado AVG en tablas Oracle porque el proveedor Oracle devuelve el tipo de OLE DB DBTYPE_VARNUMERIC. SQL Server no admite DBTYPE_VARNUMERIC. Por ejemplo, el código siguiente genera un error:
SELECT AVG(QTY)
FROM ORA..RPUBS.SALES
Para evitar el error, use OPENQUERY
. Por ejemplo:
SELECT *
FROM OPENQUERY(ORA,
'SELECT CAST (AVG(QTY) AS numeric)
FROM ORA..RPUBS.SALES')
Entradas del registro
Para que el proveedor OLE DB para Oracle funcione con el software de cliente Oracle, se debe modificar el registro del cliente. Para ello, es necesario ejecutar un archivo de registro desde una línea de comandos. Se recomienda no ejecutar simultáneamente varias instancias del software de cliente. Los archivos, que se enumeran en la tabla siguiente, están situados en la misma estructura de directorios que contiene la instalación de Microsoft Data Access Components (MDAC). Normalmente, la estructura es C:\Archivos de programa\Archivos comunes\System Files\OLE DB.
Cliente Oracle | Windows NT o 9x | Windows 2000 |
---|---|---|
7.x |
mtxoci7x_winnt.reg |
mtxoci7x_win2k.reg |
8.0 |
mtxoci80_winnt.reg |
mtxoci80_win2k.reg |
8.1 |
mtxoci81_winnt.reg |
mtxoci81_win2k.reg |
Vea también
Conceptos
Proveedores OLE DB probados con SQL Server
Consultas distribuidas
Otros recursos
sp_addlinkedserver (Transact-SQL)
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
14 de abril de 2006 |
|
5 de diciembre de 2005 |
|