ORACLE JAVA
오라클에서 java 사용하기
-sha512 관련 함수를 db 에서도 사용하기 위해서 알아보니 oracle 에서 java 를 사용함. 예시는 sha512 용
+java 추가
+ 함수추가 (java 를 부를수있는 함수 추가)
+ SQL 에서 함수를 불러서 사용 javaname.class name 으로 불러서 쓸수있음 .
--실행순서
1. CREATE_COMPILE_JAVA_SOURCE_SHA512.sql --위내용.
2. CREATE_FUNCTION_F_ENC_SHA512.sql
PLSQL
1. java class 생성
create or replace and compile java source named SHA512 as
import java.security.MessageDigest;
public class SHA512 {
public static String encrypt(String tmpStr) throws Exception{
//SHA-512 적용
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(tmpStr.getBytes());
byte[] msgb = md.digest();
StringBuffer sb = new StringBuffer();
for(int i = 0; i < msgb.length; i++){
byte temp = msgb[i];
String str = Integer.toHexString(temp & 0xFF);
while(str.length() < 2){
str = "0" + str;
}
str = str.substring(str.length() - 2);
sb.append(str);
}
//--
return sb.toString();
}
}
# 자바클래스를 입력하고 실행하면 빌드가됨 리얼리?
2. class 를 이용할수 있도록 function 생성
create or replace FUNCTION F_ENC_SHA512
(
P_STRING IN VARCHAR2
) RETURN VARCHAR2 as language java name 'SHA512.encrypt(java.lang.String) return String';
# java 를 바로 sql 문에 사용할수 없기 때문에. function 안에다가 java 문을 사용하여 function 실행하여 java 를 사용한다.
3. sql 문으로 실행.
select F_ENC_SHA512('123') from dual ;
# 123 에 sha512 함수를 거친 값이 나오게됨 짜잔
'언어 > DB' 카테고리의 다른 글
[ORACLE] DB 팁 (테이블 상세 내용 쿼리로 조회) (0) | 2015.07.10 |
---|---|
트리거 (0) | 2015.04.07 |
[PLSQL] (0) | 2015.03.10 |
[DB] 문법 (0) | 2015.03.09 |
[프로시저] (0) | 2015.02.24 |