데이터베이스의 컬럼명은 Snake Case로 작성하는 경우가 많다. 반면 Java에서 변수명은 Camel Case로 작성한다.
DTO, VO 등의 객체를 생성할 때 컬럼명(snake_case)을 변수명(camelCase)으로 변환하기 위한 함수
CREATE OR REPLACE FUNCTION to_camel_case
(
p_snake_case USER_TAB_COLUMNS.COLUMN_NAME%TYPE
)
RETURN VARCHAR2
IS
v_underbar_index NUMBER := 0;
v_camel_case VARCHAR2(4000) := LOWER(p_snake_case);
BEGIN
LOOP
SELECT INSTR(v_camel_case, '_')
INTO v_underbar_index
FROM DUAL;
EXIT WHEN v_underbar_index IS NULL OR v_underbar_index = 0;
SELECT SUBSTR(v_camel_case, 0, v_underbar_index - 1) || INITCAP(SUBSTR(v_camel_case, v_underbar_index + 1))
INTO v_camel_case
FROM DUAL;
END LOOP;
RETURN v_camel_case;
END;
사용 예시
SELECT to_camel_case(COLUMN_NAME)
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES';

'데이터베이스 > Oracle' 카테고리의 다른 글
| [PL/SQL] 동적쿼리 (EXECUTE IMMEDIATE) (0) | 2023.07.11 |
|---|---|
| [OracleDB] 두 개의 테이블에서 조인 조건으로 사용할 수 있는 컬럼을 가져오는 함수 (0) | 2023.06.15 |
| [OracleDB] SELECT절을 위한 컬럼명 생성 함수 (0) | 2023.06.15 |
| [OracleDB] 실행계획 (Execution Plan) (0) | 2023.06.15 |
| [OracleDB] Group By (0) | 2023.06.14 |