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
- WebAssembly
- 이행시
- StringBuffer
- StringBuilder
- QUBIT
- java
- 퀀텀컴퓨팅
- yeouido
- replace()
- 아스키코드
- 양자컴퓨팅
- bit
- Controller
- Spring
- 퀀텀
- wasm
- 양자
- 백엔드
- CS
- 윤동주
- 삼행시
- Service
- Quantum
- repository
- lombok
- 어노테이션
- quantum computing
- 최신기술
- 항해
- 문자열
Archives
- Today
- Total
건도록 GDlog
[ORCALE SQL Developer] 함수 생성 및 적용 (create function & how it used) 본문
개발/Database
[ORCALE SQL Developer] 함수 생성 및 적용 (create function & how it used)
GD_dev 2025. 5. 8. 15:13프로젝트 중에 Crownix 사의 Report Designer 라는 첨보는 이상한 툴을 사용하게 되었다.

뭐 대충 요런 느낌인데
DB연결 후 직접 쿼리를 작성하거나 프로시저 등을 불러와 사용하여 viewer 형식으로 보여주는 툴 이었다.
아무튼 요건 사항 중 계약금액을

위처럼 숫자표기 된 것을 한글표기로 바꿔야 하는게 있어,
숫자-한글 변환 함수를 생성해서 select 해야겠다 생각했다.
근데 항상 프로시저 사용하며 declare 정도로 선언하여 쓰는 정도였어서
함수는 오라클 환경에선 처음 써보았다.
변환 함수: 출처 https://blog.naver.com/ledliker/22076977769
create or replace FUNCTION "CRT_NUM_TO_KOR"
(
tmp_str IN VARCHAR2
)
RETURN VARCHAR2 AS
U1 VARCHAR2(27) := '일이삼사오육칠팔구';
U2 VARCHAR2(100) := ' 십백천만십백천억십백천조십백천경십백천';
RESULT VARCHAR2(256) := '';
NUM INTEGER;
ZERO_CNT INTEGER := 0;
BEGIN
IF tmp_str IS NULL THEN
RESULT := NULL;
ELSE
FOR i IN REVERSE 1 .. LENGTH(tmp_str)
LOOP
NUM := TO_NUMBER(SUBSTR(tmp_str,LENGTH(tmp_str)-i+1,1));
IF NUM > 0 THEN
RESULT := RESULT||SUBSTR(U1,NUM,1)||SUBSTR(U2,i,1);
ZERO_CNT := 0;
ELSE
ZERO_CNT := ZERO_CNT + 1;
IF i IN (17,13,9,5) AND ZERO_CNT < 4 THEN
RESULT := RESULT||SUBSTR(U2,i,1);
END IF;
END IF;
END LOOP;
END IF;
RETURN TRIM(RESULT);
END;
함수를 create or replace function으로 콘솔창에서 만들어주고,

옆에 sql developer 메뉴에 함수 폴더에 잘 들어간 걸 확인.
그 다음 함수를 사용할 곳에서 ( 나는 패키지 폴더의 package body 부분에서)

위와 같이 함수 먹여서 잘 조회 되는지 확인.

그럼 NUM_TO_KOR ( 20,000 ).
'개발 > Database' 카테고리의 다른 글
SQL 과 noSQL 차이 (0) | 2022.06.10 |
---|