plug-in 설치하는 방법 (oracle 기준)
1) 모듈 라이브러리 설치
읽어올 수 있는 경로에 라이브러리가 존재 해야 한다.
라이브러리(lib)는 운영체제에 따라 파일 유형이 다르다.
- 윈도우: .dll 리눅스:.so
<.dll>
<.so>
2) 모듈 경로 설정
라이브러리를 저장한 위치를 경로 설정해줘야 한다.
- 윈도우: [환경변수] -> [시스템 변수]의 "Path"에 경로 설정
보통 C드라이브 아래 폴더를 만들어 많이 저장한다.
경로는 모듈이 있는 폴더에 가서 창을 클릭하면 경로 위치를 복사할 수 있다. 복사 한 다음 환경변수의 path 붙여넣어주기 하면 된다.
- 리눅스: 구동 계정의 .bash_profile의 "LD_LIBRARY_PATH"에 모듈 경로 설정하기
보통 /usr/local/에 폴더를 만들어 많이 저장한다.
3) 환경변수(conf) 설정
conf 파일의 위치는 보통 아래와 같다.
- 윈도우: C:\ProgramData (ProgramData가 안보일 경우 폴더 옵션에서 숨김 파일을 보도록 설정을 바꾼다.)
- 리눅스: /usr/local/
conf는 보통 ip주소, 라이센스 경로, ip 주소 정도 수정이 된다.
4) JAVA Interface 설치
JAVA Interface 설치 하기전에 JNI과 script를 알아야 한다.
*JNI
jni 뜻을 찾아보면 아래와 같이 위키백과가 설명해준다.
자바 네이티브 인터페이스(Java Native Interface, JNI)는 자바 가상 머신(JVM)위에서 실행되고 있는 자바코드가 네이티브 응용 프로그램(하드웨어와 운영 체제 플랫폼에 종속된 프로그램들) 그리고 C, C++ 그리고 어샘블리 같은 다른 언어들로 작성된 라이브러리들을 호출하거나 반대로 호출되는 것을 가능하게 하는 프로그래밍 프레임워크이다.
jni의 이해를 돕자면 자바 이외의 다른 언어들로 작성된 라이브러리들을 사용할 수 있게 해주는 역할이라고 생각하면 될 것 같다.
<자바클래스 퍼블리싱 방법 (예시)>
# 여러 DB 계정에서 사용시 loadjava -user 유저명/비밀번호 -grant public -resolve 이름JNI.class 이름JNIEx.class *public: 다른 계정에서도 사용 권한 허용 # 생성 DB계정에서만 사용시 loadjava -user 유저명/비밀번호 -resolve 이름JNI.class 이름JNIEx.class |
- 윈도우: cmd 창을 키고 cd(이동 명령어)와 dir(파일 목록보는 명령어) 명령어를 사용해서 script 파일이 있는 곳으로 이동한다.
ex) cd ..은 상위 폴더로 이동하는 명령어이다.
- 리눅스: 윈도우와 마찬가지로 cd와 ls(파일 목록 보는 명령어)를 이용해서 script로 이동한 다음에 loadjava 명령어를 실행한다.
[참고] DB 계정 생성
create user 유저명 identified by 비밀번호
grant dba to 유저명
5) 자바클래스 퍼블리싱 여부 확인
select object_name, object_id, status from user_objects |
JNI과 JNIEx가 VALID(유효)한지 확인한다.
6) 권한 seq 확인하기 & 라이브러리 권한 설정하기
( 일반적으로 10g = 73, 11g=95 )
권한을 주기위해서는 seq를 알아야 한다. seq 확인하는 방법은 아래와 같다.
%는 RuntimePermission과 관련된 것들을 조회해주세요 라고 이해하면 될 것 같다.
select seq, kind, grantee, name, enabled from dba_java_policy where name like '%java.lang.RuntimePermission%'; |
명령어를 이용해서 loadLibrary의 SEQ번호를 기억한다.
생성한 계정에 라이브러리 권한을 허용해준다. (95)에는 위에서 확인한 SEQ 번호를 넣어준다.
exec dbms_java.disable_permission(95); --우선 허용해주기 위해서 disable 시켜주기 exec dbms_java.grant_permission ('유저명', 'SYS:java.lang.RuntimePermission', 'loadLibrary.이름DBJni, ''); exec dbms_java.enable_permission(95); -- 허용해주기 |
7) Package 설치 (오라클 기준)
패키지 설치 하기 전에 script과 @의 개념을 잠깐 알고가자.
*script
script는 DB에 따라 다르다. lib 파일의 경우에는 운영체제에 따라 달랐지만, script는 DB의 종류에 따라 다르다. script 파일에 대해서 이해를 했으면 script 파일을 이용하여 패키지 생성하면 된다.
*@
- SQL 파일에 저장된 내용을 실행하는 명령어이다.
- 확장자가 .sql인 파일에 저장되어 있는 쿼리문을 실행시키기 위해 사용한다.
select문과 dual을 이용하여 패키지에 있는 함수들이 잘 동작되고 있는지 확인하면 끝이다.
여기서 dual은 가상의 테이블을 말한다. 예를 들어 시간을 알고 싶을 때 dual이라는 가상의 테이블을 이용하여 시간을 확인할 수 있다.
*dual
- 끝-
'DATABASE > DB study' 카테고리의 다른 글
DB 종류/DB 서버 모델/웹 애플리케이션 구조/SqlLite (0) | 2019.05.09 |
---|---|
oracle Encrypt(DigestSHA256) - 1 (0) | 2019.02.21 |
sql developer 접속할 때 생기는 에러 (0) | 2019.02.07 |
oracle procedure 사용 방법 (0) | 2019.01.28 |
PL/SQL 구성, 요소, 제어문, 사용자 정의 함수 작성 방법 (0) | 2019.01.28 |
댓글