miércoles, 7 de diciembre de 2016

EJECUTANDO CODIGO JAVA DESDE PL/SQL

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';

Ahora ya sólo falta invocarlo donde sea necesario, por ejemplo:

SELECT f_javadate(  TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')),
                                    TO_NUMBER(TO_CHAR(SYSDATE, 'MM')),
                                    TO_NUMBER(TO_CHAR(SYSDATE, 'DD')),
                                    TO_NUMBER(TO_CHAR(SYSDATE, 'HH24')),
                                    TO_NUMBER(TO_CHAR(SYSDATE, 'MI')),
                                    TO_NUMBER(TO_CHAR(SYSDATE, 'SS')))
 FROM DUAL;


DESCARGAR SCRIPTS
Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?