InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
Excepciones personalizadas en PL/SQL
Recuperar datos BLOB de ORACLE
Trabajar con datos de tipo BLOB en ORACLE
PL/SQL y Java
Secuencias
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Transacciones con PL/SQL
Tipo VARRAY

Afiliados
La Web del programador
MundoProgramacion


 

Como conectar a ORACLE con Java

¿Que es JDBC y para que se utiliza?

    JDBC es la interfaz que proporciona Java para la conexión a bases de datos. Son un conjunto de clases e interfaces que permiten a Java ejecutar consultas y ordenes en una bases de datos.

    Para poder conectar a Java con ORACLE lo primero que necesitamos es la implementación de JDBC para ORACLE. Esta implementación se encuentra en el archivo Classes12.jar que podemos encontrar en el siguiente directorio del servidor de Oracle.

%ORACLE_HOME%\jdbc\lib

ORACLE_HOME es una variable de entorno que se crea durante la instalación del servidor ORACLE, y que indica donde está instalado fisicamente ORACLE dentro del sistema de archivos, normalmente C:\oracle\ora92 para servidores Windows y ORACLE 9i. Esta .misma nomenclatura se aplica al hablar de la instalación cliente

    Debemos configurar correctamente nuestra variable CLASSPATH para incluir en ella el archivo Classes12.jar.

    Oracle proporciona los siguientes drivers en su implementacion JDBC:

  • JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets. 
  • JDBC OCI :API nativa de ORACLE, para aplicaciones J2EE.
  • JDBC KPRB driver: (default connection) para Java Stored Procedures y Database JSP's.

    Todos los drivers soportan la misma sintaxis y funcionalidad, por lo que nuestro código variará únicamente en la forma de crear la conexion.

Conectar a ORACLE con JDBC Thin Driver

    El driver JDBC Thin se conecta y comunica con ORACLE a nivel de sockets. Proporciona su propia versión del protocolo Net8 (SQL*Net) sobre TCP/IP, por lo que no es necesario que exista una instalación de la parte cliente de ORACLE. Dado que este driver es código 100% Java es completamente independiente de la plataforma de ejecución, y como implementa su propia versión del protocolo es ideal para aplicaciones que se ejecutan sobre un navegador Web (applets)    


import java.sql.*;
class dbAccess {
  public static void main (String args []) throws SQLException
  {    

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection
          ("jdbc:oracle:thin:@WIN01:1521:oracleBD", "user", "passw");
         // driver@machineName:port:SID          ,  userid,  password
    Statement stmt = conn.createStatement();
    ResultSet rset =
stmt.executeQuery("select BANNER from SYS.V_$VERSION");
    while (rset.next())
         System.out.println (rset.getString(1));   // Print col 1
    stmt.close();


  }
}

Conectar a ORACLE con JDBC OCI Driver

    El driver JDBC OCI usa el API ORACLE OCI (Oracle Call Interface) para interactuar con ORACLE, por lo que es necesaria la instalación y configuración de la parte cliente de ORACLE. El driver OCI trabaja con SQL*Net o Net8, por lo que tamdebemos haber creado un alias en el archivo TNS names
(%ORACLE_HOME%\network\ADMIN):


ORACLEBD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORACLEBD)
    )
  )

    El driver JDBC OCI permite realizar llamadas a ORACLE OCI directamente desde Java proporcionando
un alto grado de compatibilidad con una versión específica de ORACLE utilizando métodos nativos, pero específicos de la plataforma. 


import java.sql.*;
class dbAccess
{
  public static void main (String args []) throws SQLException
  {
    try
    {
     Class.forName ("oracle.jdbc.driver.OracleDriver");
    }
    catch (ClassNotFoundException e)
    {
     e.printStackTrace();
    }
    Connection conn = DriverManager.getConnection
         ("jdbc:oracle:oci:@ORACLEBD", "user", "passw");
        // @TNSNames_Entry,  userid,  password
    Statement stmt = conn.createStatement();
    ResultSet rset =
stmt.executeQuery("select BANNER from SYS.V_$VERSION");
    while (rset.next())
          System.out.println (rset.getString(1));   // Print col 1
    stmt.close();
  }
}

Conectar a ORACLE con JDBC KPRB Driver

    Por último el driver ORACLE JDBC KPRB es utilizado para escribir en Java  procedimientos almacenados, funciones,  triggers ... Ofrece acceso a la conexion activa por lo que no es necesario crear ninguna conexión adicional.

    El driver JDBC KPRB de ORACLE permite obtener un handle de la conexion actual del contexto a través del método OracleDriver.defaultConenction(). Como hemos dicho, se utiliza para procedimientos almacenados, triggers .... Para ejecutar un procedimiento almacenado debemos estar conectados a ORACLE a través de una herramienta cliente como SQL*Plus., lo que hacemos con defaultConenction() es acceder a está conexion.


CREATE OR REPLACE AND COMPILE
JAVA SOURCE NAMED BANNER AS
import
java.sql.*;
class dbAccess
{
  public static String showBanner() throws SQLException
  {
    String banner="";
Connection conn =
(new oracle.jdbc.driver.OracleDriver()).defaultConnection();
    Statement stmt = conn.createStatement();
    ResultSet rset =
stmt.executeQuery("select BANNER from SYS.V_$VERSION");
    while (rset.next())
banner += rset.getString(1);         
    //stmt.close(); NO CERRAR LA CONEXION
return banner;
  }
}

    Es necesario crear un "wrapper" para poder ejecutar el programa desde PL/SQL o SQL.


CREATE OR REPLACE FUNCTION ShowBanner RETURN VARCHAR2
IS
LANGUAGE JAVA NAME 'dbAccess.showBanner() return java.lang.String';

    Una vez hecho esto, podemos ejecutar la función como si se tratase de una función PL/SQL.


SELECT ShowBanner FROM DUAL;

Saludos,

DJK


 Versión para imprimir  Foros de consulta

 
como conectar oracle y MySQL con java por ivan carrascal
Respuesta recibida el [31/03/2007 05:17:11]
hola Pedro, me encuentro haciendo un programa en lenguaje de programacion java y necesito conectarla con los motores que coloque como titulo, he intentado conectarlas pero los drivers no me sirven ¿que puedo hacer?
gracias

 
nose por Sandra Castro
Respuesta recibida el [23/05/2007 06:34:33]
interesante el articulo

 
Erro al conectar por ROmmel
Respuesta recibida el [30/05/2007 11:37:11]
Me saco los pelos con el error q sale q es "VIolacion de Protocolo" he instaldo el oracle ma de 5 veces, el codigo de conexion en JBUILDER esta bien. quisas sepan q tengo q configurar para desaparecer ese error Gracias

 
Tengo la version express edition de oracle por Juan Chumpitaz
Respuesta recibida el [24/06/2007 01:58:45]
buenas deseo conectarme da java a oracle pero tengo la version express edition en todo caso si alguien me pueda apoyar se o agradeceria mucho

 
Gracias!! por yech
Respuesta recibida el [30/10/2007 07:29:41]
Gracias pana!! me fue muy util esta publicación.
Saludos desde Venezuela.

 
mmmm!!! tengo dudas aun por Brenda
Respuesta recibida el [23/11/2007 08:07:58]
Hola soy primeriza en este aspecto de conecciones, entonces no se si podrias explicar un paso a paso, lo que pasa es que me dijeron que tengo que configurar el path en blueJ que en estet caso es el ide que utilizo y  hacer otras cosillas de las cuales no tengo idea, en cuento al codigo que tu nos proporcionas lo implemento en alguna parte en especifico??, es necesario modificar algo??. De ante mano gracias dejo mi mail por cualquier cosa brendaiturbe@gmail.com

 
configuracion y conexion a oracle9i con php5 por gil mejia
Respuesta recibida el [04/03/2008 06:03:34]
HOLA A TODOS!!!

Soy nuevo en php y oracle, tengo una serie de problemas que me gustaría que me ayudaran, tengo instalado el oracle 9i, y no puedo conectarme en el con php.

Tengo instalado:

- Oracle 9i
- El appserv-win32-2.5.9, que contiene el Apache Web Server 2.2.4, el PHP 5.2.3

He hecho lo siguiente:

- verifique que el Apache estuviera bien instalado.
- Verifique que el PHP estuviera bien instalado

Hasta aquí todo estaba correcto…

Ahora hice algunas modificaciones para poder conectarme a Oracle, que son las siguientes:

a. Se modificó el archivo "php.ini" que se había copiado en anteriormente a "C:\WINDOWS"

extension=php_oci8.dll (se quitó el ; al inicio)
y cuando le doy a phpinfo.php
ya me aparece el oci8 como

OCI8 Support enabled
Version 1.2.3
Revision $Revision: 1.269.2.16.2.32 $
Active Persistent Connections 0
Active Connections 0
Temporary Lob support enabled
Collections support enabled

Directive Local Value Master Value
oci8.default_prefetch 10 10
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics 0 0
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20






b. Se bajó el instant client de oracle de la ruta:

http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html
y fue el instantclient_11_1

c. Se descomprimió el archivo en c:\oracle\ y se dejaron solamente los archivos:
oraociei11.dll
orannzsbb11.dll
oci.dll

d. Se configuraron las variables de entorno:

NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1
PATH = C:\oracle\instantclient_11_1;+...
LD_LIBRARY_PATH = C:\oracle\instantclient_11_1
TNS_ADMIN = C:\oracle\instantclient_11_1 (para poder copiar los tnsnames.ora en C:\oracle\instantclient_11_1)

e. Se copió el archivo OCI.DLL en el directorio:
C:\WINDOWS



g. Reinicie el sistema...

Pero al momento de querer hacer una consulta no puedo.

<?php
$c = oci_connect('usuario', 'contraseña', 'nom_BD');
……
?>

Me manda el siguiente error, no se si a mis librerias les falte algo

Cabe señalar que mis carpetas quedaron de la siguiente manera,

C:\AppServ\Apache 2.2
C:\AppServ\php5
C:\AppServ\www


Si lo desean envíame un correo

Correo: sedmiedo@hotmail.com


De antemano gracias...

 
Excelente por MorelaGL
Respuesta recibida el [24/03/2008 10:12:43]
Muy util, me gusto la forma sencilla en la que esplica las diferentes formas de conexión.

 
Buenos Ejemplos por Ruben Herrera
Respuesta recibida el [24/03/2008 02:03:09]
Primero que nada, Saludos.

Este articulo es muy util para iniciar con java y oracle.

 
hola yo necesito saber como me... por Anónimo
Respuesta recibida el [26/06/2008 03:11:20]
hola yo necesito saber como mediante java invocar un procedimiento que corre sobre la base de datos

 
conexion a java por andres
Respuesta recibida el [11/09/2008 02:48:21]
ya tengo todo lo deyava 
la base de datos en java
me falta la conexion a java
realmente nose como
se conecta
ayudenme un ejemplo
2semestre de sistemas
es una investigacino

 
richard por richard
Respuesta recibida el [23/09/2008 11:05:23]
graxias por iti 7 desde mexico

 
Hola me gustaria que me ayudes... por Anónimo
Respuesta recibida el [17/10/2008 10:50:21]
Hola me gustaria que me ayudes con el codigo de coneccion a la base de datos oracle 9i desde una aplicacion en C#

 
Gracias por Jorge
Respuesta recibida el [29/10/2008 09:19:54]
Gracias !!! funciona perfecto !!!

Saludos desde Chile


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



 Versión para imprimir

Como conectar a ORACLE con Java
Autor: Pedro Herrarte Sánchez
Visitas: 37137 Fecha de publicación: 10/10/2006
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 300 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 137 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 101 | Comentarios: 5 | Archivo: Articulos
Categorias: TFS
Visitas: 429 | Comentarios: 4 | Archivo: Articulos
Categorias: Transact-SQL|LinQ
Visitas: 1444 | Comentarios: 6 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|ADO.NET
27/09/2008 Navegando ....
Visitas: 238 | Comentarios: 0 | Archivo: Articulos
Categorias: Humor
Visitas: 611 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|WCF
Visitas: 2570 | Comentarios: 4 | Archivo: Articulos
Categorias: C#
Visitas: 463 | Comentarios: 0 | Archivo: Articulos
Categorias: JavaScript|ASP.NET
Visitas: 1071 | Comentarios: 0 | Archivo: Articulos
Categorias: Windows XP|Linux|Windows Vista

Útimos temas recibidos en los foros ...
Crystal reports XI Release 2 y asp.net por mvargas ... [ASP.NET] 0 21/11/2008
Enviar un email con C# utilizando .Net FrameWork 2.0 con logo... por Moises ... [ASP.NET] 0 21/11/2008
Enviar un email con C# utilizando .Net FrameWork 2.0 por Moises ... [C#] 0 21/11/2008
Cuestión de BFILE. por Megatron ... [ORACLE] 0 21/11/2008
Enviar email por Dol ... [ASP.NET] 5 21/08/2007
*******PREGUNTA********: por T.S.U.En Informatíca ... [Visual Basic 6.0] 5 17/03/2008
Programar tareas en oracle. por Rodrigo ... [ORACLE] 0 21/11/2008
fechas con datatimepicker por peyin ... [Visual Basic .NET] 3 20/11/2008
agregar datos de un gridview a un textbox por jhors ... [ASP.NET] 3 19/09/2007
Select de sql en c# por Stuart ... [C#] 1 20/11/2008
Manual en Español de SQL Navigator for Oracle por Maira ... [ORACLE] 12 30/03/2008
Como mandar mensaje a Celular por Pako ... [C#] 40 13/03/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
05/12/2006 Manipulación de punteros    forma parte de...Tutorial C#
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
16/04/2007 Mantener variables de Sesión y Aplicación de forma permanente en ASP.net
03/10/2006 Programacion con C#    forma parte de...Tutorial C#
17/07/2006 Tipo VARRAY    forma parte de...Tutorial PL/SQL
16/10/2006 Delegados y eventos    forma parte de...Tutorial C#
28/06/2006 Triggers en PL/SQL    forma parte de...Tutorial PL/SQL
15/11/2006 Atributos    forma parte de...Tutorial C#
13/08/2007 Reiniciar un campo identity en SQL Server
19/03/2008 Service Pack 1 de Windows Vista

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]