Beruflich Dokumente
Kultur Dokumente
ec/2007/12/06/el-caso-de-las-fuentes-heterogeneas/
Que necesitas
1. Una Maquina Windows (se puede usar otro SO, mientras tenga los controladores ODBC, que es complicado) 2. El Disco Instalador de la base por si las dudas. 3. Los Controladores ODBC se la base que quieres acceder. 4. Una instancia de Oracle Funcionando. 5. Golosinas. 6. Vida social, si ests leyendo esto o peor escribindolo, ese un mal sntoma.
Preparar la Instancia
Como primer paso recomiendo desactivar los nombres globales para hacer la vida ms placentera: alter system set global_names=false; Y se deben crear los objetos para el vnculo heterogneo, afortunadamente podemos ejecutar este archivo (debe hacerse como el usuario internal): ORACLE_HOME\rdbms\admin\caths.sql ORACLE_HOME se refiere al directorio en donde est instalada la base, obvio no?
) ) Deben notar algunas cosas, primero el puesto, la base Oracle normalmente usa el 1521, adems si hacemos esto en el mismo servidor de nuestra base solo hay que aadir el servicio, as en SID_LIST: (SID_DESC= (SID_NAME=FHLISTENER) (ORACLE_HOME = [SU DIRECTORIO DE ORACLE_HOME AQUI, TIPO C:\ORACLE]) (PROGRAM=hsodbc) ) Tambin debe notarse que es importante configurar el ORACLE_HOME. Guardamos los cambios.
Crear el Vnculo
En el servidor Oracle todo es tan simple como usar esta instruccin para conectar todo: CREATE DATABASE LINK sql_link CONNECT TO "USUARIO SQL SERVER" IDENTIFIED BY "CONTASEA" USING ' NOMBREDELTNS'; Es importante notar el nombre de usuario y la contrasea. Esto suponiendo que uso la autenticacin de SQL Server. Adems NO RECOMIENDO USAR EL USUARIO SA, aunque este viene desactivado en SQL Server 2005. Es mejor crear un usuario para esto. Si quieren librarse del vnculo pueden usar: DROP DATABASE LINK sql_link Un ejemplo de consulta sencilla: SELECT * FROM tabla@sql_link Hay que recordar que los nombres de las tablas no existen en nuestra base Oracle, si queremos seleccionar ciertas columnas, o usar una clausula Where se deben poner los nombres entre comillas: SELECT "columna1", "columna2" FROM tabla@sql_link where "columna1" = condicin Incluso la vida puede ser mucho mas simple usando CREATE SYNONYM.
vista, el truco es poner ROWID entre comillas en Oracle 8i y usar los alias en el select en Oracle 10g. Con eso puedo ver los datos de SQL Server directamente en Oracle Forms, procesarlos, realizar importaciones y incluso usar el Reports contra SQL Server.
Nota de Descarga
Como todo, este post se proporciona como referencia, tal cual como es. No me culpen si rompen algn servidor, aunque si lo hacen quizs pueda ayudar
EDUARDO DIEDRICH
Viernes, febrero 22, 2008 at 18:15
Me pareci muy interesante tu artculo El caso de las Fuentes Heterogneas, pero me quedan dudas cuando te tienes que conectar a un DSN que apunta a una BD access o un archivo DBF de DBASE, en tales casos como no son servidores de BD propiamente dichos es imposible asignarles un puerto y un Host, por lo menos eso es lo que creo. Si me puedes ayudar con esa cuestin te lo agradecera. Saludos Eduardo
daniel
Jueves, febrero 28, 2008 at 23:48
Asi es, el puerto y el host son los del servicio de escucha de las fuentes heterogneas de Oracle. Este servicio accede a los datos por medio de ODBC. Afortunadamente la existen drivers ODBC para la gran mayora de bases de datos.