Ejemplo de llamada a una función Java desde Oracle

Oracle permite integrar código Java en el propio motor de base de datos, en esta entrada se muestra un pequeño ejemplo.

El código Java a ejecutar se puede incorporar a la base de datos cargando un archivo .jar mediante la instrucción loadjava (comando de sistema operativo que se encuentra en el directorio BIN de la base de datos) o creándolo directamente de forma similar a como se crea una función, procedimiento o paquete. En este ejemplo se usa esta segunda opción.

El siguiente código recibe por parámetro una fecha, desglosada en 6 campos numéricos (año, mes, día, hora, minuto y segundo) y la devuelve en formato texto:

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "JavaDate" AS
  package pruebas;
  import java.util.Calendar;

  public class JavaDate {  
    public static String getString(int anho, int mes, int dia, int hora, int minuto, int segundo) {
      Calendar calendar;        
      calendar = Calendar.getInstance();
      calendar.set(anho, mes, dia, hora, minuto, segundo);
      return calendar.getTime().toString();
    }
  }

Una vez está el código Java creado en la base de datos, hay que crear una función o procedimiento para llamarlo:

CREATE OR REPLACE FUNCTION f_javadate(p_anho NUMBER,
                                      p_mes NUMBER,
                                      p_dia NUMBER,
                                      p_hora NUMBER,
                                      p_minuto NUMBER,
                                      p_segundo NUMBER) RETURN VARCHAR2 IS LANGUAGE JAVA
 NAME 'pruebas.JavaDate.getString(int, int, int, int, int, int) return String';

 

Start typing and press Enter to search