- Articulos
- Manuales
- Bases de datos de Software Libre
- Data Warehousing y metodología Hefesto
- Descubriendo el BI
- Grafico OpenFlash dinámico
- Guia para la adquisición de un sistema de DWH
- Metodología CRISP-DM para minería de datos
- Mineria de datos para EPH
- Recopilación de artículos sobre Oracle
- DW y DM aplicados al estudio del rendimiento academico
- Blogs
- Foro
- Videos
- Eventos
- Tablón de Empresas
- Microsites
- Directorio
Heterogeneous Services: Conexión desde Oracle a SQLServer
Submitted by oscarpt on 30 December, 2006 - 11:42
Versión para impresión
Este artículo explica como configurar los servicios de conexión heterogeneous de Oracle para poder visualizar bases de datos SQL Server desde un esquema Oracle, como si fueran objetos propios de Oracle.
En versiones antiguas de Oracle, esta conectividad se podía realizar a través de “Gateways” que se licenciaban de manera independiente del servidor Oracle, pero la posibilidad de realizar lo mismo en sentido contrario a través de SQL Server, posibilitó la aparición de los “Heterogeneous Services” de manera gratuita en Oracle.
Para poder realizar la configuración es necesario contar con los objetos necesarios del catálogo. Por defecto están instalados, pero en determinadas instalaciones puede ser necesario realizarlo manualmente. Para ello, ejecutar como SYS el fichero caths.sql del directorio %ORACLE_HOME%/rdbms/admin. Después sólo hay que seguir los siguientes pasos:
- Crear un conector ODBC de SQL Server (System DSN) en el administrador de ODBC de Microsoft (por ejemplo, “sqlcon”)
- Ajuste del fichero de inicialización de Heterogeneous Services
Este fichero reside en ORACLE_HOME/HS/ADMIN, y su nombre depende del SID que se asigne al servicio. El nombre usado tipicamente es: hsodbc, de manera que el fichero se llamaría: inithsodbc.ora. Este fichero debe contener como mínimo los siguientes parámetros:
# Nombre de la conexión ODBC
HS_FDS_CONNECT_INFO = sqlmis
HS_FDS_TRACE_LEVEL = 0
HS_OPEN_CURSORS = 300
- Configuración del fichero TNSNAMES.ORA
Se debe añadir la siguiente entrada:
hsodbc =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP_SERVIDOR> ) (PORT = 1521))
)
(CONNECT_DATA = (SID = hsodbc))
(HS=OK)
)
- Configuración del fichero del Listener
LISTENER.ORA: Se debe añadir a la SID_List el siguiente descriptor:
(SID_DESC =
(SID_NAME = hsodbc)
(ORACLE_HOME = C:\oracle\ora92) # el ORACLE_HOME correspondiente
(PROGRAM = hsodbc )
)
- Reinicio del listener
En los servicios del servidor reiniciar el servicio del listener.
- Conectarse con un SQL*Plus a la instancia ORACLE, y crear un database link contra el SQL Server a través de HS:
SQL> create database link hsodbc connect to "usuario" identified by "password" using 'hsodbc'
El usuario y el password deben ser los usuarios de conexión a la BBDD de SQL Server.
Por ejemplo, si el usuario es el “sa” los objetos a los que se llegará serán los objetos de la BBDD de sistema “master”.
Una vez configurado se puede acceder desde un esquema ORACLE a las tablas (objetos en general) de una BBDD SQL Server.
A modo de ejemplo, la sintaxis necesaria para realizar una simple join entre 2 tablas una Oracle y la otra SQL Server sería:
SELECT e.name, d.dept
FROM emp e, dept@hsodbc d
where e.id_dept=d.id_dept;
| Adjunto | Tamaño |
|---|---|
| XDAT012006.pdf | 63.75 KB |
- oscarpt's blog
- Añadir nuevo comentario
- 17428 lecturas
Conexion Oracle_Access
Hola muy buena la respuesta de conexion conSqlServer...
tengo un problema con la conexion Oracle_Access tengo mi base Oracle en Linux y una Base Acces en Windows con una aplicacion.... entonces quisiera saber como hacer la conxion de mi base oracle en Linux hacia la base Access en Windows
Gracias
Attm
Roger Reyes
Versiones
Sirve este sistema también para SQL Server 2005??
SQL Server 2005
El hecho de utilizar un ODBC para el enlace con la base de datos destino hace que el sistema sirva para prácticamente cualquier base de datos.
Si en el servidor de la base de datos Oracle puedes configurar un ODBC que se conecte correctamente a otra base de datos, tienes que poder utilizar Heterogeneous Services para definir un enlace de Oracle a esta base de datos.
Con MySQL funciona, lo he podido comprobar personalmente, con SQLServer 2005 aún lo tendrás más fácil para definir el ODBC.
Carlos Fernández
Analista de sistemas
HOLA sobre............"eje
HOLA
sobre............"ejecutar como SYS el fichero caths.sql del directorio %ORACLE_HOME%/rdbms/admin." debo decir que uso el pl/sql ejecute el archivo como usuario sys y funciona mas o menos hasta la mitad del archivo y luego me sale error de sintaxis que no reconoce el comando SQL. como lo soluciono. SE QUE HA PASADO MUCHO TIEMPO DESDE QUE SALIO ESTE TUTORIAL PERO SI ALGUIEN VE ESTO POR FAVOR AYUDAAAAAA!!!!
Ejecutar un script como sys
PL/SQL? Lo haces desde una herramienta gráfica? Puede que ese sea el problema. Deberías ejecutarlo con SQLPlus, y dentro de una sesión del servidor donde está instalada la base de datos.
Si estás en linea de comandos con el usuario con el que se ha instalado la base de datos puedes hacer:
>sqlplus "/as sysdba"
Una vez dentro de SQLPLUS ejecutas el script con @ más el camino completo:
SQL>@oracle_home/rdbms/admin/caths
Si lo haces así no te debería fallar.
Alguien sabe como enlazar
Alguien sabe como enlazar una base de datos en SQL SERVER con una de ORACLE.
Conectar SQL Server contra Oracle
Entiendo que quieres leer o escribir datos desde un SQL Server hacia un oracle.
En primer lugar debes tener el cliente de oracle en la maquina que va ha realizar el enlace. Puede que te sirva el conector OLEDB de SQL Server aunque no puedo asegurarlo puesto que en mi caso tengo las 2 bbdd en la misma máquina.
El nombre de servidor oracle debe ser: nombre_servidor_oracle/SID_oracle (no sirve nombre_servidor_oracle@sid)
usuario y password del schema a usar.
Con esto la conexión desde SQL Server a Oracle funciona perfectamente.
Saludos,
Conexión desde Oracle a MySQL
Este método sirve para cualquier base de datos? Se puede utilizar también con MySQL?
Si que se puede...
Se puede conectar con el mismo sistema un Mysql a una base de datos Oracle.
Como ves el procedimiento sólo utiliza una conexión ODBC, que podría ser hacia SQL Server o hacia MySQL.
Un saludo,
Como conectar a distintis ODBC
Realizando la conexión a MaxDB fu exitosa, se realizó siguiendo uno manuales publicados que encontre partiendo de este foro, lo que no he podido es conectarme a varias bases de datos, es decir, se configuran los archivos, pero como hace uno para habilitar un ODBC diferente. Me quiero conectar a una base de datos MaxDB y a otra SQLserver de manera simultánea. Gracias