/* Character function */
/* concat(char1, char2) or || : 문자열 연결*/
select concat('Hello','Bye'), concat('Good','Bad')
from dual;
select 'Hello'||'Bye', 'Good'||'Bad'
from dual;
/* initcap(char) : 첫문자 대문자 변환 */
select initcap('good mornig')
from dual;
select initcap('good/bad mornig')
from dual;
/* Lower(char) : 소문자로 변환 */
select lower('GOOD')
from dual;
/* Upper(char) : 대문자로 변환 */
select upper('good')
from dual;
/* Lpad(expr1,n,expr2) : expr1을 n만큼 왼쪽으로 늘려서 반환 */
select lpad('good',6) "LAPD1",
lpad('good',6,'@') "LPAD2",
lpad('good',8,'L') "LPAD3"
from dual;
/*
Rpad(expr1,n,expr2) : expr1을 n만큼 오른쪽으로 늘려서 반환
한글은 한글자를 2byte로 계산하여 나머지를 늘임
*/
select rpad('good',6) "RPAD1",
rpad('good',7,'#') "RPAD2",
rpad('good',8,'L') "RPAD3",
rpad('안녕',7,'#') "RPAD4"
from dual;
/* Ltrim(char,set) : char에서 set으로 지정된 물자를 왼쪽에서 제거 */
select ltrim('goodbye')
from dual;
select ltrim('goodbye',' ')
from dual;
select ltrim('goodbye','g'), ltrim('goodbye','o'), ltrim('goodbye','go')
from dual;
/* Rtrim(char,set) : char에서 set으로 지정된 물자를 오른쪽에서 제거 */
select rtrim('goodbye')
from dual;
select rtrim('goodbye','go')
from dual;
select rtrim('goodbye','e'), rtrim('goodbye','ye')
from dual;
/* Substr(char,pos,leng) : 문자열 일부 반환 */
select substr('good morning john',8,4)
from dual;
select substr('good morning john',8)
from dual;
select substr('good morning john',-4)
from dual;
select substr('good morning john',-4,2) /*pos가 음수이므로 문자열 끝에서부터 2자리 가져옴*/
from dual;
select substr('good morning john',-4,0) /*length가 0이므로 결과 없음*/
from dual;
/* Substrb(char,pos,byte) : 문자열 일부 반환 */
select substrb('good morning john',8,4) /*byte 수 만큼 가져옴*/
from dual;
/* Replace(char,src_str,rep_str) : 문자열 일부를 대체해서 반환 */
select replace('good morning Tom','morning','evenning')
from dual;
/* Translate(expr,frm_str,to_str) : 문자자체를 일대일로 대응, 변환 */
select replace('You are not alone', 'You', 'We') replaces,
/*결과 We are not alone*/
translate('You are not alone', 'You', 'We')translates
/*결과 We are net alene : 문자'o'를 'e'로 변환*/
from dual;
/* Trim([Leading,Trailing,Both],[trim_chr][FROM]trim_src) :
trim_src에서 trim_chr을 앞,뒤 혹은 모두에서 제거한 결과 반환 */
select trim(leading from 'good')
from dual;
select length(trim(leading from ' good '))
from dual; /*앞(왼쪽)의 공백 삭제하므로 결과 5출력*/
select length(trim(trailing from ' good '))
from dual; /*뒤(오른쪽)의 공백 삭제하므로 결과 5출력*/
select length(trim(both from ' good '))
from dual; /*양쪽의 공백 삭제하므로 결과 4출력*/
select trim(leading 'g' from 'good')
from dual; /*왼쪽의 g를 삭제하므로 결과 ood출력*/
select trim(trailing 'd' from 'good')
from dual; /*오른쪽의 d를 삭제하므로 결과 ood출력*/
select trim(both 'g' from 'good')
from dual; /*양쪽의 g를 삭제하므로 결과 ood출력*/
/* ASCII(char) : ASCII코드 값 반환 */
select ascii('A')
from dual;
/* Instr(string,src_str,pos,occur) : 특정 문자열의 위치를 찾아 반환 */
select instr('good morning john','or',1)
from dual;
select instr('good morning john','n', 1,3)
from dual;
/* Length(char) : 문자열 길이 반환 */
select length('good')
from dual;