java - proyecto - ¿Por qué no consultar una base de datos compatible con JDBC desde Oracle es tan fácil como circular?
jdbc oracle (4)
Ciertamente creo que la pregunta fue un tanto retórica y que debe tomarse con una gran pizca de sal. :-)
En ese espíritu, una respuesta adecuadamente fluida podría ser "porque no quieren que uses la base de datos de otra persona".
Ok, entonces ya es casi tan fácil como el pastel. Pero realmente debería ser tan fácil como lo es.
Creo que debería poder conectarme a otra base de datos simplemente colocando una cadena de conexión JDBC en TNSNAMES. Cada proveedor de bases de datos tiene un controlador JDBC de tipo 4 y generalmente hay una alternativa buena y gratuita.
Con Oracle siendo tan entusiastas de Java, y con una JVM incorporada a la base de datos, pensé que una tecnología de enlace basada en JDBC hubiera sido una obviedad. Parece una extensión natural tener una cadena de conexión JDBC en TNSNAMES y todo "simplemente funcionará": podría "sql * plus" a cualquier cosa.
Pero no funciona de esta manera. Si desea conectarse a otra base de datos que no sea Oracle, debe comprar algo llamado Oracle Gateways o perder el tiempo con ODBC (a través de algo llamado Conectividad genérica).
[ Advertencia de originalidad ... Esto está relacionado con una pregunta anterior mía pero alguien sugirió que ingrese un comentario suplementario como una pregunta separada. ¿Quién soy yo para discutir?]
Es una pregunta real, quizás un poco jocosa pero ciertamente no retórica. A Oracle le conviene facilitar el acceso a los datos de otras personas. Por el momento hay muchas maneras de hacerlo pero ninguna lo suficientemente simple. Hay una JVM en la base de datos y controladores JDBC para cada otra base de datos, debería "funcionar", así que solo puedo asumir que no se ha hecho para "solo funcionar" por algún motivo.
Mi pregunta es si alguien sabe esa razón. ¿Alguien?
La respuesta es la misma que para las siguientes preguntas:
- ¿Por qué Oracle no proporciona una forma eficiente de descargar datos en un formato no propietario (por ejemplo, delimitado por comas o XML)?
- ¿Por qué la mayoría de los productos Oracle que no son DB solo funcionan con Oracle RDBMS? (sin tener que usar Oracle Database Gateways)
¿Has oído hablar alguna vez del concepto de bloqueo de proveedor ?
TNS es un desastre, ¿eh? Parece que se comporta de manera inconsistente entre diferentes plataformas, en mi experiencia (ciertamente limitada).
Lejos está para mí defender a Oracle, pero no he tenido problemas con el controlador delgado JDBC. (Si lees los documentos jdbc de oráculo, te desalientan de usar oci a menos que tengas una muy buena razón.
Combínelo con JNDI (en un servidor de aplicaciones j2ee), y todos sus problemas de administración de conexiones serán resueltos.