SQL Server puede conectarse a una base de datos que no sea de SQL Server mediante un servidor vinculado. El mecanismo del servidor vinculado puede usar una pieza de middleware conocida como controlador ODBC para conectar SQL Server a backends de terceros como Oracle, MySQL y Salesforce.
El equivalente de un controlador ODBC para una base de datos Java es un controlador JDBC. Microsoft no proporciona una interfaz de servidor vinculado que admita JDBC. Más bien, debe usar la interfaz del servidor vinculado ODBC (Microsoft OLE DB Provider for ODBC Drivers) con un controlador ODBC que pueda traducirse entre ODBC y JDBC. Por ejemplo, la puerta de enlace ODBC-JDBC. La puerta de enlace ODBC-JDBC conecta una aplicación que usa ODBC a una base de datos a la que se puede acceder a través de JDBC. Para la aplicación, la puerta de enlace ODBC-JDBC es un controlador ODBC. Para el controlador JDBC, la puerta de enlace ODBC-JDBC es una aplicación Java.
Utilice la puerta de enlace ODBC-JDBC para:
- Utilice un servidor vinculado para trabajar con datos JDBC, como si estuviera trabajando con datos almacenados en una tabla de SQL Server.
- Integre datos JDBC con SQL Server mediante SQL Server Integration Services (SSIS).
Instalación y licencia de la puerta de enlace ODBC-JDBC
- Descargue la puerta de enlace ODBC-JDBC de Windows.
- Instale y licencie la puerta de enlace ODBC-JDBC en la máquina Windows donde están instalados el controlador SQL Server/JDBC.
Para obtener instrucciones de instalación, consulte la documentación de ODBC-JDBC Gateway.
Configuración de una fuente de datos ODBC
Antes de que pueda usar la puerta de enlace ODBC-JDBC para conectar su aplicación ODBC a JDBC, debe configurar una fuente de datos ODBC del sistema. Una fuente de datos ODBC almacena los detalles de conexión para la base de datos de destino.
Las fuentes de datos ODBC se configuran en el Administrador ODBC, que se incluye con Windows. Hay dos versiones de ODBC Administrator, una de 32 bits y otra de 64 bits. Debe ejecutar la versión de 32 bits si su instancia de SQL Server es de 32 bits. Debe ejecutar la versión de 64 bits si su instancia de SQL Server es de 64 bits.
Para averiguar qué versión de SQL Server tiene, conéctese a su instancia de SQL Server y luego ejecute esta instrucción SQL:
seleccione PROPIEDAD DEL SERVIDOR('edición')
Para ejecutar el Administrador ODBC de 32 bits, en el cuadro de diálogo Ejecutar de Windows, escriba:
%windir%\syswow64\odbcad32.exe
Para ejecutar el Administrador ODBC de 64 bits, en el cuadro de diálogo Ejecutar de Windows, escriba:
odbcad32.exe
Utilice el administrador de ODBC para crear su fuente de datos de puerta de enlace ODBC-JDBC.
Creación de un origen de datos ODBC de puerta de enlace ODBC-JDBC
- Elija la pestaña DSN del sistema y luego elija Agregar.
- En el cuadro de diálogo Crear nueva fuente de datos, elija Puerta de enlace ODBC-JDBC y luego elija Finalizar.
- Complete el cuadro de diálogo Configuración de DSN de puerta de enlace ODBC-JDBC:
Configuración Descripción DNS OJG_DSN Nombre de usuario El nombre de usuario de su servidor Java, si es necesario. Contraseña La contraseña para el nombre de usuario. Clase de controlador Consulte la documentación de su controlador JDBC para conocer el valor que debe ingresar aquí. Ruta de clase Utilice el botón Agregar para buscar el archivo JAR/ZIP del controlador JDBC. URL La URL de JDBC utilizada por su controlador JDBC para conectarse al backend de Java. Consulte la documentación del controlador JDBC para conocer la sintaxis que necesita usar. - Utilice el botón Probar para verificar que puede conectarse con éxito al backend de Java.
Ejemplo:Recuperar datos JDBC utilizando un servidor vinculado
- En Microsoft SQL Server Management Studio, conéctese a la instancia de SQL Server en la que desea crear el servidor vinculado.
Debe iniciar sesión con una cuenta que sea miembro de la función de servidor fija de administrador del sistema de SQL Server para crear un servidor vinculado.
- Haga clic con el botón secundario en Objetos del servidor. En el menú emergente, seleccione Nuevo> Servidor vinculado.
- En el cuadro Servidor vinculado, escriba "OJG".
- En la lista de proveedores, elija Proveedor Microsoft OLE DB para controladores ODBC.
- En el cuadro Fuente de datos, escriba el nombre de la fuente de datos ODBC de la puerta de enlace ODBC-JDBC y luego seleccione Aceptar.
SQL Server verifica el servidor vinculado probando la conexión.
- Si recibe el error "No se pudo cargar el controlador especificado debido al error del sistema 126:no se pudo encontrar el módulo especificado", elija Sí cuando se le pregunte si desea conservar el servidor vinculado. Debe reiniciar su instancia de SQL Server antes de poder usar el servidor vinculado. Si SQL Server ya se estaba ejecutando cuando instaló ODBC-JDBC Gateway, no tendrá la última versión de la variable de entorno System PATH. El programa de configuración de la puerta de enlace ODBC-JDBC agrega entradas para el controlador a la RUTA del sistema. Reiniciar la instancia hace que estos cambios estén disponibles para SQL Server, lo que le permite cargar la puerta de enlace ODBC-JDBC.
- Si cometió un error al especificar la fuente de datos de la puerta de enlace ODBC-JDBC, obtendrá el error "No se encontró el nombre de la fuente de datos y no se especificó un controlador predeterminado. Si recibe este error, elija No cuando se le pregunte si desea conservar el servidor vinculado. y edite el valor en el cuadro Fuente de datos.
- Puede consultar sus datos JDBC utilizando un:
- Nombre de tabla de cuatro partes en una consulta distribuida.
Un nombre de tabla de cuatro partes tiene el formato:
nombre_servidor .[nombre_de_la_base_de_datos ].[nombre_esquema ].nombre_tabla .
Dependiendo de su backend Java, debe omitir el nombre y el esquema de la base de datos. Por ejemplo:
SELECCIONE * de OJG...mi_tabla
- Consulta de transferencia en una función OPENQUERY. Por ejemplo:
SELECT * FROM OPENQUERY(OJG, 'SELECT * FROM my_table')
SQL Server envía consultas de paso a través como cadenas de consulta no interpretadas a la puerta de enlace ODBC-JDBC. Esto significa que SQL Server no aplica ningún tipo de lógica a la consulta ni trata de estimar lo que hará esa consulta.
- Nombre de tabla de cuatro partes en una consulta distribuida.