오라클 실습 2. length와 RPAD를 이용해 이름의 빈 칸 채우기.
언뜻 들으면 간단한 것 같고, LPAD로 채웠을때의 결과값이, SELECT ENAME, LPAD( ENAME,9,'123456789' ) FROM EMP WHERE DEPTNO=10; 다음과 같이 예쁘게 출력되서, RPAD도 그럴 줄 알았다. 하지만 생각지도 못한 문제가 있었는데, RPAD가 문자열의 '시작'부터 채운다는 점이었다. SELECT ENAME, RPAD( ENAME, 9, '123456789' ) FROM EMP WHERE DEPTNO=10; 아니이런 ㅠㅠ 그렇기 때문에, 문자열로 설정한 '123456789'를, 문자열의 크기만큼 버리고, 그 이후를 붙였어야 했다. 문자열을 자를 수 있는 함수는, SUBSTR을 생각해보자. 문자열의 '크기' 를 알아낼 수 있는 함수는, LENGTH 함수이다...
2020. 3. 19.
오라클 실습 1. 지역번호 블러처리 하기.
지역번호의 노출을 피하기 위해(진짜는 아니지만) 지역번호를 '***'로 블러처리를 하기로 한다. 이 때, 참 곤란한 것이 있는데, 지역번호가 051, 041처럼 세 글자도 있지만, 02처럼 두 글자도 있다는 점이다. 물론.. 그걸 고려하지 않으면 참 쉬운 실습이다. SELECT TEL, REPLACE( TEL, SUBSTR(TEL,1,INSTR(TEL,')')-1), '***' ) TEL FROM STUDENT; 그러나, 이렇게 되면 보다시피 02 역시 세 글자 지역번호로 가려져버린다. 이것이 못내 아쉬우니, 바꿀 문자열이 동적으로 갯수가 변할 수 있도록 조취를 취하도록 한다. 별의 '갯수'를 조절할 수 있는 방향이 어느쪽일지 고민하다가 RPAD를 사용하기로 했다. RPAD로 문자열 '*' 을 지정한다...
2020. 3. 19.