COMO CONECTAR NODE.JS CON ORACLE
En este post, explico cómo conectar NodeJS con Oracle, es necesario instalar el páquete node-oracledb ("npm install node-oracledb --save","). Si buscas integrar estas tecnologías para desarrollar aplicaciones robustas. NodeJS es conocido por su eficiencia y escalabilidad, mientras que las bases de datos Oracle es una de las bases de datos más potentes para aplicaciones empresariales y combinar ambos permite crear aplicaciones modernas con acceso a datos confiables y de alto rendimiento.Para que node-oracledb funcione, se necesitan las librerías de Oracle Instant Client hay que seguir los siguientes pasos:
- Descargar las librerías correspondientes a tu sistema operativo desde el sitio de Oracle.style="margin:12px 0; padding:12px; background:white; border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,0.1);">Descomprímirlas en una carpeta accesible (por ejemplo, /opt/oracle/instantclient en Linux o C:\oracle\instantclient en Windows).
- Configura las variables de entorno:
- En Linux/Mac: Añade la ruta al directorio de las librerías en LD_LIBRARY_PATH: "export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH".
- En Windows: Añade la ruta al PATH.
- Verificar que las librerías sean compatibles con la versión de node-oracledb que instalada.
const oracledb = require('oracledb');
async function run() {
let connection;
try {
// Establecer la conexión
connection = await oracledb.getConnection({
user: "tu_usuario",
password: "tu_contraseña",
connectString: "host:puerto/servicio" // Ejemplo: "localhost:1521/orclpdb"
});
console.log("¡Conexión exitosa a Oracle!");
// Ejecutar una consulta
const result = await connection.execute(`SELECT * FROM tu_tabla`);
console.log("Resultados:", result.rows);
} catch (err) {
console.error("Error:", err);
} finally {
if (connection) {
try {
await connection.close();
console.log("Conexión cerrada.");
} catch (err) {
console.error("Error al cerrar la conexión:", err);
}
}
}
}
run();
Explicación del código
- Importación del módulo: Se requiere oracledb para usar sus funcionalidades.
- Conexión: Se usa oracledb.getConnection con las credenciales y la cadena de conexión (host, puerto y nombre del servicio).
- Consulta: Se ejecuta una consulta SQL con connection.execute y los resultados se encuentran en result.rows.
- Cerrar la conexión de conexión: Siempre hay que cerrar la conexión en el bloque finally para evitar problemas con de recursos.
La connectString debe seguir el formato correcto.
-
Para una base de datos local: "localhost:1521/orclpdb".
Para una base de datos remota: "servidor.dominio.com:1521/nombre_servicio".
Problemas más frecuentes
- Error: "DPI-1047: Cannot locate a 64-bit Oracle Client library": Asegurar que las Oracle Instant Client Libraries estén instaladas y configuradas en las variables de entorno.
- Error de conexión: Verificar que el servidor Oracle está accesible y que las credenciales sean correctas.
Revisa el puerto y el nombre del servicio en la cadena de conexión.
- Error: "DPI-1047: Cannot locate a 64-bit Oracle Client library": Asegurar que las Oracle Instant Client Libraries estén instaladas y configuradas en las variables de entorno.
- Error de conexión: Verificar que el servidor Oracle está accesible y que las credenciales sean correctas. Revisa el puerto y el nombre del servicio en la cadena de conexión.