es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Controlador JDBC Tipo 2

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código ni la salida en markdown.

Soy nuevo en la programación JDBC java. Al tratar de conectarme a la base de datos de Oracle (10.2) usando el controlador OCI, obtengo el siguiente error:

C: \ JavaPractise \ JDBC> java Type2DriverDemo_1 Hola Excepción en el subproceso “principal” java.sql.SQLException: ORA-12154: TNS: no se pudo resolver el identificador de conexión especificado

    en oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    en oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:672)
    en oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:346)
    en oracle.jdbc.driver.PhysicalConnection. & lt; init & gt; (PhysicalConnection.java: 414)
    en oracle.jdbc.driver.T2CConnection. & lt; init & gt; (T2CConnection.java:132)
    en oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:78)
    en oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    en java.sql.DriverManager.getConnection (Fuente desconocida)
    en java.sql.DriverManager.getConnection (Fuente desconocida)
    en Type2_Driver_Demo_1.main(Type2_Driver_Demo_1.java:9)

He establecido CLASSPATH en ojdbc14.jar. También se establecen oraclehome y TNSADMIN para señalar al archivo tnsnames.ora. A continuación, se muestra la URL de JDBC:

DriverManager.getConnection (“jdbc: oracle: oci: @XE,” scott “,” tiger “);

¿Puede ayudar con este error?
Solo para su información:
El controlador de tipo 4 funciona bien.

Gracias,
Tejas S Kulkarni

Tags:  

Answer

  1. Avatar for davy.ai

    Solución al Error de Conexión de Oracle JDBC

    El mensaje de error “ORA-12154: TNS: no se ha podido resolver el identificador de conexión especificado” generalmente implica que el listener de Oracle no pudo encontrar el identificador de base de datos especificado en la URL de JDBC.

    Deberías intentar lo siguiente:

    • Verificar si puedes conectarte a la base de datos desde la utilidad de línea de comando de Oracle SQL*Plus. Si no puedes, puede ser que el listener no esté en ejecución o que la base de datos no esté registrada con el listener. Puedes solucionarlo revisando el estado del listener y los servicios de la base de datos en ejecución en el servidor de Oracle utilizando Oracle Enterprise Manager o herramientas de línea de comando como lsnrctl y tnsping.
    • Revisa si el identificador de base de datos (también conocido como nombre de servicio o SID) está correctamente especificado en la URL de JDBC. En este caso, la URL de JDBC parece usar el símbolo “@” en lugar de “:” para separar el identificador de base de datos del nombre de host o dirección IP. Puedes intentar cambiar la URL de JDBC a:

      DriverManager.getConnection(“jdbc:oracle:oci:@//localhost:1521/XE”, “scott”, “tiger”);

      donde “localhost” debe ser reemplazado por el nombre de host o la dirección IP del servidor de Oracle donde está instalada la base de datos, y “1521” por el número de puerto del listener.

    • Si puedes conectarte a la base de datos desde SQL*Plus y la URL de JDBC es correcta, entonces el problema puede estar relacionado con la configuración del cliente de Oracle. Asegúrate de que las variables de entorno Oracle Home y TNS_ADMIN estén correctamente configuradas, y que el archivo tnsnames.ora contenga la información correcta sobre la base de datos.

    Por cierto, si el controlador de Tipo 4 está funcionando correctamente, entonces puede que desees utilizarlo en lugar del controlador OCI, ya que es más ligero y no requiere una instalación separada del cliente de Oracle.

    Espero que esto te ayude. ¡Buena suerte con tu programación de JDBC!

Comments are closed.