Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BOJ
- 삼성 SW 테스트
- 시뮬레이션
- 깊이 우선 탐색
- 후쿠오카 여행경비
- 후쿠오카 요도바시 하카타
- 하카타역
- BFS
- 삼성시험
- 완전탐색
- 후쿠오카 캐널시티
- 너비 우선 탐색
- 삼성테스트
- 다이나믹 프로그래밍
- 일본 여행
- 알고리즘
- 미로찾기
- 후쿠오카 4박 5일
- 완전 탐색
- 큐
- dfs
- IOS
- deque
- 플로이드 와샬
- brute force
- 플로이드
- 후쿠오카
- 백준
- queue
- DP
Archives
- Today
- Total
맛있는감귤
오라클에서 자바 클래스 생성(한글 인코딩) 본문
원격지 DB의 캐릭터셋이 WEB8ISO8859P1 , 로컬 DB은 UTF-8로 구성되어 있어서 이를 한글로 가져오는데 많은 애를 먹었습니다.
오라클의 CONVERT함수나 원격지에서 바이트변환을 하여 로컬에서 다시 인코딩을 해보라는 등 많은 글이 있었지만 모두 허사였습니다.
WEB8ISO8859P1 캐릭터셋과 UTF-8의 한글 byte길이가 다르기 때문인것 같습니다.
헌데 자바에서는 인코딩이 잘되더군요. 해당 메소드를 오라클로 옮겨와서 함수화시켜서 사용해보니 제대로 인코딩이 되었습니다.
클래스 생성
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "Encoding" AS
public class Encoding {
public static String convertCharSet(String str) throws Exception {
String src = "ISO-8859-1";
String tar = "EUC-KR";
String rValue = "";
String sValue = String.valueOf(str);
if(str != null) {
rValue = new String(sValue.getBytes(src), tar);
}
return rValue;
}
};
Encoding 클래스를 만들고 그 안에서 인코딩해주는 메소드를 생성했습니다.
소스캐릭터셋(src)은 원하는대로 설정해주세요.
오라클 함수 생성
CREATE OR REPLACE FUNCTION convertCharSet(str VARCHAR2)
RETURN VARCHAR AS
language java name 'Encoding.convertCharSet(java.lang.String) return java.lang.String';
위처럼 오라클에 생성한 클래스를 불러오는 함수를 정의해줍니다.
예제
SELECT convertCharSet('한글') FROM DUAL;
위 구문처럼 사용하시면됩니다.
클래스 삭제
DROP JAVA SOURCE "Encoding";