오라클에서 자바 RANDOMUUID() 내장함수 쓰기

 

일단,

 

dba_registry 을 뒤져서 오라클에 JVM이 설치되어 있는지 확인한다.

 

select comp_name, version, status from dba_registry; 

 

comp_name컬럼에 JServer JAVA Virtual Machine 이놈이 있다면 가능

 

없으면 

 

sql> @$ORACLE_HOME/javavm/install/initjvm.sql;

실행하거나 

 

저 경로로 가서 해당 sql의 DDL을 직접 복붙해서 실행한다.

이건 안해봤음... 

 

(참조)

 

어쨌든 JVM이 설치되어 있다면, 다음과 같은 SQL명령어를 먼저 실행한다.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

CREATE OR REPLACE AND COMPILE

 

java source named "RandomUUID"

 

as

 

public class RandomUUID {

 

public static String create() {

 

return java.util.UUID.randomUUID().toString();

 

}

 

};

 

정상적으로 실행이 완료되었다면,

 

이제 FUNCTION을 만들자.

 

1

2

3

4

5

6

7

CREATE OR REPLACE FUNCTION O_ONEMES.RandomUUID

 

RETURN VARCHAR2

 

AS LANGUAGE JAVA

 

NAME 'RandomUUID.create() return java.lang.String' ;

 

 

 

이 함수를 만들었다면,

 

실행해보자

SELECT RANDOMUUID() FROM DUAL;

 

이런식의 결과값이 나올것이다.

ex) 8b636560-99dc-4c75-976b-56350f4f40ca

 

 

추가: 내장객체 쓰지 않고 랜덤 채번 함수 만들기

https://mo-world.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%EB%9E%9C%EB%8D%A4-%ED%82%A4%EC%83%9D%EC%84%B1-%EB%B0%A9%EB%B2%95-2%EA%B0%80%EC%A7%80-FUNCTION%ED%95%A8%EC%88%98

+ Recent posts