Entao, ta ai um negócio meio esquisito, mas recentemente um colega meu precisou fazer tal proesa para utilizar os serviços de nota fiscal eletrônica de dentro do banco.
Os recursos disponíveis na jdk do banco são meio escassos, pois sua jdk não é totalmente compatível com as jdks da sun, mas existem boa parte das classes e métodos disponíveis da jdk 1.4, e também é possível incluir no classpath do banco arquivos .jar.
Bom o que vamos fazer aqui hoje é criar uma classe java, carregá-la no banco e após isso criar uma function que acessa os recursos desta classe, e tambem irei mostrar como se faz o upload de arquivos .jar no banco.
O ambiente utilizado é:
- Oracle 11g
Primeiro vamos criar uma classe com nosso método, ele deve ser estático:
public class TesteOracle{
public static String metodo(String nome){
return "Olá :"+nome;
}
}
Após isto podemos compilar nossa classe, através do comando javac -target 1.4 -source 1.4 TesteOracle.java, é gerado entao o arquivo TesteOracle.class.
Quando é instalado o Oracle ele adiciona nas variaveis de ambiente do sistema operacional o diretio \bin do mesmo, dentro deste diretorio existe disponível a aplicação loadjava.bat(no caso de windows), para carregar nossa classe no banco, basta acessarmos o prompt e digitarmos: loadjava -user usuario/senha caminhoDoSeuArquivo .class.
Após feito isso, nossa classe ja estaria disponível no banco de dados:
A imagem acima mostra o objeto dentro do banco de dados, esta sendo utilizado a ferramente sqldeveloper 2.1 do oracle.
Agora, vamos criar nossa function:
create or replace FUNCTION ACESANDOJAVA RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'TesteOracle.metodo() return java.lang.String';
Após criada nossa function podemos fazer um select nela e ver o resultado:
A imagem acima mostra o resultado apos o select na function.
E é isso ai, abraço !


