Cuando tenemos que hacer un store procedures en oracle, automáticamente pensamos en pl/sql, y automáticamente nos duele la cabeza.
Porque no hacerlo en Java?
Es fácil, vamos a hacer un ejemplo rápido y otro día hacemos algo más complejo.
Primero creamos una clase java algo así:
public class Hello { public static String world() { return "Hello world"; } }
Ya tenemos nuestra clase un hola mundo común y corriente. La compilamos con javac o podemos usar algún IDE como eclipse y obtenemos Hello.class
Ahora cargamos nuestra clase en la base de datos oracle:
loadjava -user scott/tiger Hello.class
En el ejemplo lo cargamos en esquema de scott pero puede ser cualquiera.
Y ahora creamos el store con plsql o el TOAD:
SQL> CONNECT scott/tiger
connected
SQL> CREATE OR REPLACE FUNCTION helloworld RETURN VARCHAR2 AS
2 LANGUAGE JAVA NAME 'Hello.world () return java.lang.String';
3 /
Function created.
Por ultimo llamamos a nuestro store:
SQL> VARIABLE myString VARCHAR2(20);
SQL> CALL helloworld() INTO :myString;
Call completed.
SQL> PRINT myString;
MYSTRING
---------------------------------------
Hello world
No puede ser más fácil!!
Dejo link:
http://docs.oracle.com/cd/B19306_01/java.102/b14187/chthree.htm