LENGTH : 문자의 길이를 반환한다.
LENGTHB : 문자의 바이트 수를 반환한다.
SELECT LENGTH ('오라클서버'),LENGTH('Oracle Server')
FROM DUAL;
SELECT LENGTHB ('오라클서버'),LENGTHB('Oracle Server')
FROM DUAL;
LPAD,RPAD : 입력받은 크기만큼 공간을 확보한다. 만일, 입력된 문자가 있다면 문자로 대체된다.
SELECT LPAD ('오라클',20,'★'),RPAD ('오라클',20,'★')
FROM DUAL;
LTRIM, RTRIM : 전체 문자열에서 입력받은 값과 일치하지 않는 값이 나올 때까지 순차적으로 검색한다. 일치하지 않는 값이 나오면 그 이후의 문자열을 출력한다.
SELECT LTRIM ('KOREAKORACEORACLE','KOREA'), RTRIM('KOREAKORACEORACLE','KOREA')
FROM DUAL;
만일, 별도의 입력값을 가지지 않는다면, 그 문자열의 공백만을 제거하게 된다.
SELECT LTRIM(' Oracle Server '),RTRIM(' Oracle Server '),TRIM(' Oracle Server ')FROM dual;
SELECT 'Oracle '||' Server',RTRIM('Oracle ')||LTRIM(' Server')
FROM dual;
TRANSLATE : 해당할 문자열 중 변환되어질 값과 변환되는 값을 입력받아 매칭되는데로 변환한다.
SELECT '02-2638-0101',TRANSLATE('02-2638-0101','0123456789','영일이삼사오륙칠팔구')
FROM DUAL;
SELECT 'Oracle Server MS-Sql Server', REPLACE('Oracle Server MS-Sql Server','Server','서버')
FROM dual;
사원 테이블을 만들어 보자.
CREATE TABLE tbl_sawon(
sano NUMBER(5),
saname VARCHAR2(20),
jubun VARCHAR2(13),
hiredate DATE
)tablespace users;
INSERT into tbl_sawon values(1001,'홍길동','7510091234567','1997-01-03');
INSERT into tbl_sawon values(1002,'엄정화','6912252234567','2000-03-12');
INSERT into tbl_sawon values(1003,'이영애','7312252234567','2002-09-12');
INSERT into tbl_sawon values(1004,'이연이','0010254234567','2004-11-12');
INSERT into tbl_sawon values(1005,'홍반장','0109253234567','2005-07-12');
INSERT into tbl_sawon values(1006,'김석훈','7709251234567','2005-07-12');
COMMIT;
SELECT * FROM tbl_sawon;
위의 문자열 함수들을 이용하여 홍씨를 황씨로, 이씨를 리씨로 바꿔보자.
UPDATE tbl_sawon
SET saname = REPLACE (saname,'홍','황')
WHERE saname LIKE '홍%';
UPDATE tbl_sawon
SET saname = ('리'|| LTRIM(saname,'이'))
WHERE LTRIM(saname) LIKE '이__';
--또는
UPDATE tbl_sawon
SET saname = ('리'|| SUBSTR(saname,2))
WHERE LTRIM(saname) LIKE '이__';
댓글 없음:
댓글 쓰기