Nahrání Javy do databáze tak, aby daný package mohli využívat všichni uživatelé a ne jen ten, kdo balík nahrál.
1)
loadjava -r -v -f -u sys/**** -s -g public /opt/app/oracle/product/11/db_1/jlib/osdt_core.jar
import to public
2)
loadjava -u tsolar/**** -v -g public -resolve -resolver “( (* tsolar) (* PUBLIC) )” /opt/app/oracle/scripts/Crypt.class
or
CREATE OR REPLACE FUNCTION RSA_Encrypt (data VARCHAR2, pubKey VARCHAR2) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME ‘Crypt.RSAEncrypt(java.lang.String, java.lang.String) return java.lang.String’;
/
TEST case:
set serveroutput on;
drop java source “Crypt”;
drop java class “Crypt”;
/
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED “Crypt” AS
import java.lang.*;
import java.io.*;
import oracle.security.crypto.core.*;
import oracle.security.crypto.util.*;
public class Crypt {
public static String RSAEncrypt(String data, String pubKey_base64) { RSAPublicKey pubKey = new RSAPublicKey(Utils.fromBase64(pubKey_base64)); return “123”; }
};
/
show errors;
CREATE OR REPLACE FUNCTION RSA_Encrypt (data VARCHAR2, pubKey VARCHAR2) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME ‘Crypt.RSAEncrypt(java.lang.String, java.lang.String) return java.lang.String’;
/
show errors;
SELECT RSA_Encrypt(‘data test 123’, ‘MIGJAoGBAMHGBxiZUmCZoVqBAcFnFsCvdbI7gLXMU3irwHOaH6p6pzXitw0W9kk0
rQgi5h+iTWSu7VfsagwJy5lA4Y07o3d30iBeOzHCGBfRlbO6J0sqjn91AOo9ZH+E
LudGo8OQ24ktJaKfsU1Gdr4IuXxKi2eAZTJhuOh7NRI3nWy3quVXAgMBAAE=
‘) FROM dual;