En los dos artículos anteriores:
he ido explicando la manera en que podemos definir y usar procedimientos almacenados Javascript en la nueva base de datos Oracle 23c.
En dichos artículos, al definir los módulos Javascript, hemos escrito el código Javascript directamente a la hora de definir los módulos MLE.
Sin embargo, es posible escribir y guardar nuestro código Javascript en archivos, o bien, utilizar el código Javascript que ya tenemos escrito y almacenado en archivos y simplemente utilizar estos archivos Javascript a la hora de crear nuestros módulos en la base de datos.
Reutilizando el código que use en el artículo anterior, vamos a guardar el código Javascript que se muestra a continuación en un archivo que vamos a llamar calcular-factorial.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function factorial(num) { if ( num < 0 ) { return -1; } else if ( num == 0 ) { return 1; } else { return ( num * factorial( num - 1 ) ); } } function calculateFactorial(startWith) { console.log('Vamos a calcular el factorial de ${startWith}`) const result = factorial(startWith) console.log(`El factorial de ${startWith} es ${result}`) } export { calculateFactorial } |
Requerimientos
Para poder crear el módulo Javascript en la base de datos, vamos a necesitar
- El archivo calcular-factorial.js que creamos con el código de arriba
- Tener o crear un directorio Oracle desde el cual vamos a cargar el archivo calcular-factorial.js
En el primer artículo creamos el usuario TEST en la base de datos y lo vamos a usar para este ejemplo.
Vamos a suponer que ya estamos conectados a nuestra base de datos con el usuario TEST. A continuación vamos a…
Crear directorio Oracle
1 |
create directory if not exists ORA_JS as '/home/oracle/js'; |
En el ejemplo anterior, estoy suponiendo que tenemos instalada nuestra base de datos en una máquina Linux.
Entonces, estamos creando un directorio que he llamado ORA_JS que apunta a la carpeta que se encuentra en /home/oracle/js y que contiene el archivo calcular-factorial.js que creamos anteriormente.
Para crear el directorio, el usuario TEST debe tener asignado el privilegio CREATE ANY DIRECTORY.
Crear módulo
Una vez que tenemos todos los requisitos para poder ejecutar el procedimiento, lo que queda es crear nuestro nuevo módulo Javascript, para lo cual vamos a utilizar el código:
1 2 3 4 |
CREATE MLE MODULE factoriales LANGUAGE JAVASCRIPT USING BFILE(ORA_JS,'calcular-factorial.js'); / |
Existen algunas consideraciones que debemos tener a la hora de crear un módulo Javascript utilizando un archivo:
- solamente a la hora de crear el módulo accederemos al archivo almacenado en el directorio Oracle,
- una vez creado el módulo este pasará a formar parte del diccionario de la base de datos como un objeto más,
- si modificamos nuestro código Javascript en el archivo que usamos para crear el módulo, esto no afectará al módulo que ya tenemos creado, el cual se mantendrá tal cual fue creado,
- para que los cambios hechos al código Javascript en el archivo que se encuentra en el directorio Oracle sean aplicados a nuestro módulo en base de datos, debemos ejecutar una nueva sentencia utilizando la claúsula OR REPLACE:
1 2 3 4 |
CREATE OR REPLACE MLE MODULE factoriales LANGUAGE JAVASCRIPT USING BFILE(ORA_JS,'calcular-factorial.js'); / |
Conocer más
¿Quieren saber más sobre el tema del uso de Javascript en la base de datos Oracle 23c? Pueden usar los siguientes enlaces: