Categories: Desarrollo

PHP – ORA-12505: TNS:listener does not currently know of SID given in connect

En el ultimo par de días he estado configurando un sistema Linux Debian para poder desarrollar con PHP y Oracle, algo que la verdad nunca antes había hecho por lo contradictorio de utilizar soluciones libres (como lo es PHP) contra algo tan cerrado y privativo como Oracle.

En fin, sucede que siendo mi primera vez utilizando esta combinación fue necesario crear un pequeño script de PHP para las pruebas de conexión a un servidor remoto con la base de datos Oracle.

PHP y Oracle Script de conexion

Este es el script para autenticar el usuario contra Oracle, solamente es necesario que cambien los parámetros de conexión para realizar sus pruebas. Por cierto, en los próximos dias publicaré aun articulo donde detallo como configurar un Linux Debian o Ubuntu para conectarse con PHP a Oracle.

< ?php
 $e="";
 $user = 'USUARIO';
 $password = 'CONTRASEÑA';
$server = "(DESCRIPTION =
 (ADDRESS =
 (PROTOCOL = TCP)
 (HOST = 10.x.x.xxx)
 (PORT = 1521)
 )
 (CONNECT_DATA =
 (SID = NOMBRE)
 )
 )";
if (!$conn = @oci_connect($user,$password, $server,'we8iso8859p1') ) {
 $e = oci_error(); // For oci_connect errors pass no handle
 echo htmlentities($e['message']);
 //header.('login.php');
 }else{
 echo "Conexion completa ";
 }
 ?>

Y se puede ejecutar con el siguiente comando:

web-server :~$ php5 test_script.php
ORA-12505: TNS:listener does not currently know of SID given in connect

Como podrán ver me estaba tirando el error ORA-12505, es hora de googlear.

ORA-12505: TNS:listener does not currently know of SID given in connect

Como resolver ORA-12505 PHP

Luego de investigar que significaba el código del error, me pude dar cuenta de que o el nombre SID del esquema esta malo en el tnsnames o el listener no escucha para ese esquema. Ya que no estoy utilizando un tnsnames, el error ha de estar del lado del listener de Oracle.

Bueno, antes que nada dentro del servidor donde esta Oracle debemos de ejecutar el comando “lsnrctl status” para verificar cuales esquemas existen en el servidor de base de datos.

bash-3.00$ lsnrctl status
LSNRCTL for Solaris: Version 10.2.0.4.0 - Production on 08-AUG-2012 16:29:08
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=desarrollo)(PORT=1521)))
 STATUS of the LISTENER
 ------------------------
 Alias LISTENER
 Version TNSLSNR for Solaris: Version 10.2.0.4.0 - Production
 Start Date 16-APR-2012 08:25:14
 Uptime 114 days 8 hr. 3 min. 54 sec
 Trace Level off
 Security ON: Local OS Authentication
 SNMP OFF
 Listener Parameter File /oracle/u01/app/oracle/product/10.2.0/db_2/network/admin/listener.ora
 Listener Log File /oracle/u01/app/oracle/product/10.2.0/db_2/network/log/listener.log
 Listening Endpoints Summary...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=desarrollo)(PORT=1521)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
 Services Summary...
 Service "PLSExtProc" has 1 instance(s).
 Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
 Service "MIBASE" has 1 instance(s).
 Instance "MIBASE", status READY, has 1 handler(s) for this service...
 Service "MIBASEXDB" has 1 instance(s).
 Instance "MIBASE", status READY, has 1 handler(s) for this service...
 Service "MIBASE_XPT" has 1 instance(s).
 Instance "MIBASE", status READY, has 1 handler(s) for this service...
 The command completed successfully

Resulta que el nombre de la base que me habían proporcionado no existe en el servidor Oracle, por lo cual al cambiarlo en el script de PHP finalmente se logro conectar.

Via | Php Oracle

Linux Gratis

No soy un asesor financiero y la información que proporciono es solo para fines educativos e informativos. No brindo asesoramiento de inversión y cualquier decisión que tome con respecto a sus inversiones es suya. Consulte a un asesor financiero autorizado antes de tomar cualquier decisión de inversión. El valor de las criptomonedas puede ser volátil e invertir en ellas implica un riesgo significativo. Debe considerar cuidadosamente su propia situación financiera y tolerancia al riesgo antes de tomar cualquier decisión de inversión. No garantizo la exactitud o integridad de la información proporcionada y no soy responsable de ninguna pérdida o daño que pueda resultar del uso de esta información.

Disqus Comments Loading...

Recent Posts

Más Allá de la Teoría: Estudiantes en la Vanguardia de Lightning Network 2023

En el ámbito de la informática y la cadena de bloques, el conocimiento teórico a…

6 meses ago

Un Análisis Detallado del Informe de Crimen Cripto 2023: Una Guía para Principiantes

El emergente dominio de las criptomonedas ha cautivado la imaginación colectiva por su potencial para…

7 meses ago

Capital de Riesgo en Cripto: Sobreviviendo y Prosperando en un Mercado Bajista

En el siempre evolucionante mundo de las criptomonedas, el capital de riesgo (VC) ha encontrado…

7 meses ago

Bitcoin, divisas y criptomonedas: Potencial y perspectivas | Análisis 2023

?? Resumen video : Gareth Soloway Bitcoin, prepárate para lo que viene Introducción El mercado…

12 meses ago

El desmoronamiento de Silicon Valley Bank: la crisis bancaria del 2023

En marzo de 2023, el mundo financiero se vio sacudido por el repentino colapso de…

1 año ago

SegWit – Bitcoin Segregated Witness

A medida que Bitcoin continúa ganando popularidad y reconocimiento, aumenta la necesidad de escalabilidad y…

1 año ago