Loadjava y Dropjava en Oracle
1. Loadjava
Las bases de datos Oracle incluyen un compilador de JAVA y una JVM. Esto va a permitir a los desarrolladores que utilicen este lenguaje de programación (PL/SQL) crear objetos almacenados, procedimientos, funciones, disparadores…
Se podrán también compilar programas Java directamente en la base de datos, de este modo también podemos encontrarnos clases de java creadas de forma convencional que se encuentran fuera de la base de datos, este es el caso en el cual interviene la utilidad loadjava. A través de esta utilidad podemos cargar código fuente java y clases dentro de nuestras bases de datos ORACLE.
Esta utilidad se encuentra a partir de la versión de base de datos 8.1.5.
Para ejecutar esta utilidad se requiere tener una serie de privilegios dentro de nuestro esquema (esquema en el que vayamos a cargar las clases java).
En caso de que vayamos a cargar clases dentro de un esquema que no sea el nuestro los privilegios que tenemos que tener son los siguientes:
Si queremos cargar una clase java dentro de nuestra base de datos lo haremos de la siguiente forma:
C:\oracle9i\bin loadjava -user scott/tiger clasejava.java
El ejecutable loadjava se encuentra dentro de ORACLE_HOME>in
También podemos cargar archivos .jar con ese ejecutable.
Para ver todas las posibilidades que tenemos con la utilidad loadjava podemos verlo escribiendo en nuestra línea de comandos loadjava.
2. dropjava
Al igual que podemos cargar estos objetos dentro de nuestra base de datos podemos también eliminarlos a través de la utilidad dropjava. Esta utilidad se encuentra en la misma ubicación que loadjava. Puede eliminar clases de java o ficheros .jar
C:\oracle9i\bin>dropjava -u scott/tiger claseJava.class
Para ver las opciones que presenta esta utilidad, hacemos lo mismo que con la utilidad loadjava y escribimos en la línea de comandos dropjava.
Como alternativa podemos utilizar en la línea de comandos el paquete dms_java.dropjava para eliminar las clases de java contenidas en nuestra base de datos:
SQL> call dbms_java.dropjava('......');