먼저, 책에 있는 예제를 예로 들어볼 것이다.
EMP테이블에서 ENAME(직원의 이름)의 길이가 5이상 6이하에서
ENAME은 ALLEN의 경우 A****로 표기 되도록 하고, EMPNO(회원번호)는 1234의 경우 12**로 표기 되도록하라.
1) 나의 경우에는 RPAD 오른쪽으로 *을 붙여주는 함수를 사용하였다.
RPAD의 표현법은 다음과 같다.(대상이 되는 열이나 데이터, 데이터를 표현할 총 길이, 남은 길이의 표기될 문자)
2) LENGTH(COLUMN_NAME) 해당 컬럼 열의 문자 길이를 같이 혼합해준다.
3) 나머지 문자를 *로 대체해주어야 한다.
하지만 RPAD(ENAME, LENGTH(COLUMN_NAME), '*')로 써주게 되면 아무런 변화도 없을 것이다.
왜냐하면 ENAME과 LENGTH의 길이가 같으므로 *이 채워지지 않기 때문이다.
그래서 SUBSTR(EMPNO, 표현할 문자의 시작점, 표현할 문자의 끝점)을 사용해주면,
SUBSTR(EMPNO, 1, 2) 1234의 경우 12까지만 표현되어질 것이다.
ENAME도 위와 같은 방식으로 표현해주면 될 것이다.
BETWEEN 이상(조건문) AND 이하(조건문)
SELECT EMPNO
,RPAD(SUBSTR(EMPNO, 1, 2), LENGTH(EMPNO), '*') MASKING_EMPNO
,ENAME
,RPAD(SUBSTR(ENAME, 1, 1) ,LENGTH(ENAME), '*') MASKING_ENAME
FROM EMP
WHERE LENGTH(ENAME) BETWEEN 5 AND 6;
'개발자 첫걸음' 카테고리의 다른 글
[Oracle] ORA-01031 : insufficient privileges (0) | 2020.12.16 |
---|---|
[ORACLE] - 단일행 함수 DECODE / 2020.11.20 (0) | 2020.11.20 |
ERROR 28. PreparedStatement.setNull(1, 1111) java.sql.SQLException: 부적합한 열 유형 (0) | 2020.11.10 |
[Oracle] 설치부터 SPRING 연동까지 (2) - Oracle SQL Developer 설치 (0) | 2020.11.07 |
[Oracle] 설치부터 SPRING 연동까지 (1) (0) | 2020.11.07 |