문자열 처리 함수(Character Functions)

CONCAT(char1, char2)

CONCAT 함수는 Concatenation의 약자로 두 문자를 결합하는 역할을 합니다.
"
||" 연산자와 같은 역할을 합니다.







SQL>SELECT CONCAT('Oracle', ' Korea') NAME FROM dual ;

                NAME
   -------------
   Oracle Korea


INITCAP(char)


주어진 문자열의 첫 번째 문자를 대문자로 변환시켜 줍니다.

SQL>SELECT INITCAP('kim jung sick') NAME FROM dual ;

             NAME
 -------------
  Kim jung sick


LOWER(char)


문자열을 소문자로 변환 시켜 줍니다.


UPPER(char)

문자열을 대문자로 변환 시켜 줍니다.

SQL>SELECT LOWER('KIM JUNG SICK') NAME FROM dual ;

            NAME
-------------
  kim jung sick
SQL>SELECT UPPER('kim jung sick') NAME FROM dual ;

            NAME
--------------
KIM JUNG SICK


LPAD(char1, n [,char2])


  왼쪽에 문자열을 끼어 놓는 역할을 합니다. n은 반환되는 문자열의 전체 길이를 나타내며, char1의 문자열이 n보다 클 경우 char1을 n개 문자열 만큼 반환합니다.

SQL>SELECT LPAD('JUNG-SICK', 10, '*') NAME FROM dual ;

          NAME
------------
 *JUNG-SICK


RPAD(char1, n [,char2])


LPAD와 반대로 오른쪽에 문자열을 끼어 놓는 역할을 합니다.
SQL>SELECT RPAD('JUNG-SICK', 10, '*') NAME FROM dual ;

          NAME
------------
  JUNG-SICK*


SUBSTR(char, m ,[n])


  SUBSTR함수를 이용하여 m 번째 자리부터 길이가 n개인 문자열을 반환한 합니다. m이 음수일 경우에는 뒤에서 M번째 문자부터 반대 방향으로 n개의 문자를 반환합니다.
SQL>SELECT SUBSTR('JUNG-SICK', 3, 3) NAME FROM dual ;

          NAME
-----------
            NG-
-- 뒤에서부터 자를
SQL>SELECT SUBSTR('JUNG-SICK', -3, 3)
NAME FROM dual ;

        NAME  
-----------
          ICK


LENGTH(char1)


문자열의 길이를 리턴 합니다.
SQL>SELECT LENGTH('JUNG-SICK') TEST FROM dual ;

      TEST
   ----------
           9


REPLACE(char1, str1, str2)


REPLACE는 문자열의 특정 문자를 다른 문자로 변환 합니다.

SQL> SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL;
 
Changes
--------------
BLACK and BLUE
 
 
 
SQL> SELECT REPLACE('JACK and JUE','JA','BL')
"Changes" FROM DUAL
 
Changes
------------
BLCK and JUE
 
 
-- 대소문자를 구분한다는 것을 알수 있습니다.
SQL>SELECT REPLACE('JACK and JUE','j','BL')
"Changes" FROM DUAL
 
Changes
------------
JACK and JUE


INSTR

 - 문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환합니다.
 - 지정한 문자열이 발견되지 않으면 0이 반환 됩니다.
 

-- 지정한 문자 OK가 발견되지 않아서 0이 반환 됩니다.
SQL>SELECT INSTR('CORPORATE FLOOR','OK')  "Instring" FROM DUAL
 
  Instring
----------
         0


-- OR이 있는 위치 2를 반환 합니다. 왼쪽부터 비교를 한다는 것을 알 수 있습니다.
SQL>SELECT INSTR('CORPORATE FLOOR','OR')  "Instring" FROM DUAL
 
  Instring
----------
         2
 

-- 왼쪽에서 3번째부터 시작을 해서 비교를 합니다. 2번째 OR의 위치가 반환 됩니다.
SQL>SELECT INSTR('CORPORATE FLOOR','OR', 3)  "Instring" FROM DUAL
 
  Instring
----------
         5


-- 왼쪽에서 3번째부터 시작을 해서 비교를 하는데  OR이 두 번째 검색되는 지점의 위치를 반환 합니다.
SQL> SELECT INSTR('CORPORATE FLOOR','OR', 3, 2)  "Instring" FROM DUAL;
 
  Instring
----------
       14
 


TRIM


 - 특정한 문자를 제거 합니다.  
 - 제거할 문자를 입력하지 않으면 기본적으로 공백이 제거 됩니다.
 - 리턴값의 데이터타입은 VARCHAR2 입니다.
 

-- 0을 제거 합니다.
SQL>SELECT TRIM(0 FROM 0009872348900)  "TRIM Example" FROM DUAL;
 
TRIM Example
------------
98723489
 
 
-- 어떤 문자도 입력하지 않으면 기본적으로 공백이 제거 됩니다.  
-- TRIM을 사용한 위에 예제와 사용하지 않은 아래 예제의 결과 값이 다르게 나오는 것을 알 수 있습니다.

SQL>SELECT NVL(TRIM ('  '),'공백')  "TRIM Example"  FROM DUAL
 
TRIM Example
------------
공백
 
 
SQL>SELECT NVL('  ','공백')  "TRIM Example" FROM DUAL
 
TRIM Example
------------
 

 


LTRIM

SQL>SELECT LTRIM('xyxXxyLAST WORD','xy') "LTRIM example"  FROM DUAL;
 
LTRIM example
------------
XxyLAST WORD
 
 
RTRIM


SQL>SELECT RTRIM('BROWNINGyxXxy','xy') "RTRIM example"     FROM DUAL;

RTRIM examp
-----------
BROWNINGyxX
Character Functions
CHR
CONCAT
INITCAP
LOWER
LPAD
LTRIM
NLS_INITCAP
NLS_LOWER
NLSSORT
NLS_UPPER
REPLACE
RPAD
RTRIM
SOUNDEX
SUBSTR
TRANSLATE
TREAT
TRIM
UPPER
ASCII
INSTR
LENGTH

검색 중에 우연히 발견했습니다.

원본은 네이버 어느 카페 자료인거 같은데 형변환 관련된 오라클 함수들이 잘 나와 있네요..


----------------------------------------------------------------------------

이번에 소개해드릴 내용은 SELECT와 여러가지의 연산자와 함수들을 간단히 이용한

데이터를 변환시키는 방법 입니다.

먼저 데이터의 형(Data type)에 대해 공부를 하신후 이어서

여러가지 문자열 처리 함수, 수치형 처리 함수, 날짜데이터 처리용 함수 등에 대해서

차근차근 보실 겁니다. ^_^

비교적 간단하며 어렵지 않으니 쉽게 보실 수 있으실 겁니다..

 

오라클의 데이터 형은 이렇게 하나의 표로 보실 수 있습니다.

사용자 삽입 이미지

간단히 살펴 보시면....   CHAR형은  CHAR(10)의 형으로 적혀야 하며..

NUMBER형은 NUMBER 나 NUMBER(5, 3) 의 형으로 적혀야 한다는걸 아실 겁니다.

일케 많은 데이터 형이 있고.. 이 데이터 형에 대해 간단히 알아 보도록 하지요..

 

- 생성되어 있는 데이터 형의 자료 요약.


코드 데이터 형설    명

1

VARCHAR2(size) 

문자열형이며 가변길이 자료형으로  1~4000 byte까지 저장 가능

입니다.

1

NVARCHAR2(size) 

문자열형이며 가변길이 자료형으로  1~4000 byte까지 저장 가능

입니다.  국가 코드에 의존적 입니다.

2

NUMBER(p,s) 

정확도와 크기를 가질 수 있습니다.

정확도는 1~38 까지이며 크기는 -84 ~ 127까지 입니다.

8

LONG 

2기가 까지 저장가능한 가변길이 문자열형 입니다.

12

DATE 

정형화된 날짜 데이터형으로

기원전 14712 1월 1일부터 319999년 12월 31일 까지 표현 가능 합니다.

23

RAW(size) 

이진 데이터의 길이를 의미 합니다.

2000 btte 까지 저장 가능하며 반드시 size를 지정 해야 합니다.

24

LONG RAW 

이진 데이터의 길이를 의미하며 2기가까지 저장 가능 합니다.

69

ROWID 

16진수의 수로 이루어지며 색인에 의해 구축되는 로우의

고유한 주소 입니다. 참고로 ROWID라는 가상의 컬럼에

소속 됩니다.

208

UROWID [(size)] 

16진수의 수로 이루어지며 색인에 의해 구축되는 로우의

논리적인 주소 입니다. 참고로 ROWID라는 가상의 컬럼에

소속 되며 size는 이 컬럼의 길이를 의미하게 됩니다.

96

CHAR(size) 

고정길이 문자열 형으로 1~2000 byte를 저장합니다.

96

NCHAR(size) 

고정길이 문자열 형으로 1~2000 byte를 저장합니다.

국가 코드에 의존적입니다.

112

CLOB 

정형화 되지 않은 문자열형 자료를 저장합니다.

최대 4기가 까지 저장이 가능 합니다.

112

NCLOB 

정형화 되지 않은 문자열형 자료를 저장합니다.

최대 4기가 까지 저장이 가능 합니다.

국가 코드에 의존적입니다.

113

BLOB 

정형화 되지 않은 이진 데이터를 저장하며 최대 4기가 까지

저장이 가능합니다.

114

BFILE 

정형화 되지 않은 이진 데이터를 데이터 베이스 외부에

저장하며 최대 4기가 까지 저장이 가능합니다.



대략적인 데이터 형에 대해서 알아 보셨습니다.

조금 골치가 아프 시다면 그러구나... 하고 넘어가셔도 무방하답니다. ^_^

앞으로 배우면서 참조하셔도 충분 하답니다.

 

이번엔 연산자에 대해서 알아 보시겠습니다. ^_^

오라클의 연산자 우선순위~

연산자

+, -

*, /

+, -, ||

=, !=, <, >, <=, >=, IS NULL, LIKE, BETWEEN, IN

NOT

AND

OR

간단히 예를 들어 본다면... 1+2*3은 값이 얼마가 될까요?

2*3이 먼저 계산이 되므로 1+5가 되어 값은 6이 될겁니다.

 

수치형 연산자.

+ , -, *, / 가 있습니다.  뻔한 이야기 인가요?

예를 보여 드리면..

 

SELECT ename, sal, sal*1.1 FROM emp;

 

이런 식이 되지요..

주로 수치형 데이터와 연관이 된다는 걸 아실 겁니다. ^_^

 

연결 연산자

연결연산자는 따악 1개 뿐입니다.  

바로 || 입니다.

역시나 간단한 예를 보여 드리면

 

SELECT '이름은 : ' || ename FROM emp;

 

이런 식이랍니다.


뭐 간단한 방법이지만 이런게 나중에 찾으려고 보면 의뢰로 시간이 걸리는지라 등록해놔야 나중에 편함....

실행창(도스창)에서

시작하기
oracle/oracle92/bin으로 이동,
lsnrctl start (엔터)
sqlplus /nolog (엔터)
SQL>connect sys/비밀번호 as sysdba; (엔터)
SQL>startup open; 이렇게 하면 시동.

종료는
sqlplus /nolog
SQL>connect sys/비밀번호 as sysdba;
SQL>shutdown immediate;

'프로그래밍Tips' 카테고리의 다른 글

[JavaScript]폼에서 한글입력,영문입력 지정하기  (0) 2007.02.21
[티스토리]기능 추가하기...  (0) 2007.01.26
오라클 Study  (0) 2007.01.03

상세보기

Introduction to Oracle: SQL*Plus and PL/SQL(SPL)


0. 소개(-11, 00:18:34)

1. 기본적인 SQL 문장 작성(-23, 00:41:50)

2. 데이터 제한과 정렬(-24, 00:42:31)

3. 단일행 함수(-35, 01:15:15)

4. 다중테이블로 부터 데이터 디스플레이(-19, 00:38:10)

5. 그룹 함수를 사용한 데이터 집계(-22, 00:35:47)

6. 서브쿼리(Subquery)(-13, 00:22:14)

7. 다중 열 서브쿼리(Subquery)(-9, 00:13:09)

8. 데이터 조작(-19, 00:26:44)

9. 트랜잭션(-14, 00:33:22)

10. 테이블 생성과 관리(-20, 00:47:24)

11. 제약조건 포함(-23, 00:55:43)

12. 뷰 생성(-22, 00:37:03)

13. 시퀀스(-13, 00:23:24)

14. 인덱스(-11, 00:21:22)

15. 동의어(-4, 00:03:54)

16. 사용자 접근 제어(-17, 00:38:33)

17. SQL*Plus명령(-17, 00:44:26)

18. PL/SQL 환경(-8, 00:32:34)

19. PL/SQL 변수 선언(-9, 00:25:54)

20. PL/SQL에서의 SELECT 문장(-13, 00:33:28)

21. IF 문(-14, 00:31:59)

22. PL/SQL 블록 구문과 지침(-9, 00:20:41)

23. 커서(cursor)(-14, 00:31:40)

24. 예외처리(-15, 00:45:56)

25. PL/SQL 레코드(-11, 00:36:05)

     

상세보기

Oracle Administration(ADM)


1. 오라클 구조의 구성요소(-21, 02:31:09)

2. Oracle 서버 시작(-14, 00:41:43)

 

3. 오라클 인스턴스 관리(-25, 02:50:45)

 

4. 데이터베이스 생성(-21, 01:43:37)

 

5. 데이터 딕셔너리 뷰 및 표준 패키지 생성(-19, 01:11:18)

 

6. 콘트롤 파일 관리(-8, 00:31:45)

 

7. 리두 로그 파일 관리(-28, 01:32:07)

 

8. 테이블스페이스와 데이터 파일 관리(-23, 01:45:25)

 

9. 스토리지 구조 및 관련성(-20, 01:25:14)

 

10. 롤백 세그먼트 관리(-27, 01:50:47)

 

11. 임시 세그먼트 관리(-11, 00:36:09)

 

12. 테이블 관리(-31, 02:03:29)

 

13. 인덱스 관리(-21, 01:43:00)

 

14. 데이터 무결성 관리(-21, 01:38:27)

 

15. 클러스터와 인덱스화된 테이블 사용(-20, 01:30:09)

 

16. 데이터 로딩 및 재구성(-32, 01:54:24)

 

17. 사용자 관리(-13, 00:46:49)

 

18. 프로파일 관리(-19, 00:52:51)

 

19. 권한 관리(-18, 00:54:30)

 

20. 롤 관리(-19, 00:59:52)

 

21. 감사(Auditing)(-14, 01:03:49)

 

22. 국가별 언어 지원(National Language Support)(-19, 00:30:49)

 
 

상세보기

Oracle Network Administration(NET)

 

1. 네트워크 개요(-19, 00:22:26)

 

2. 기본적인 NET8 구조(-22, 00:19:36)

 

3. Net8 서버측의 기본적인 구성(-20, 00:32:25)

 

4. Net8 클라이언트측의 기본적인 구성 (-20, 00:24:52)

 

5. Oracle Names 사용법 및 구성(-33, 00:30:59)

 

6. OEM 사용 및 구성을 위한 Oracle Intelligent Agent(-16, 00:08:27)

 

7. 다중 스레드 서버의 사용법 및 구성(-23, 00:25:12)

 

8. 접속 관리자의 사용법 및 구성(-15, 00:14:56)

 

9. 네트워크 환경 문제 해결(-17, 00:09:02)

 

10. 네트워크 환경에서의 보안(-19, 00:10:58)

 

11. Oracle8i에서 추가된 기능(-19, 00:31:14)

 
 

상세보기

Oracle Backup & Recovery Workshop(BRW)


1. 백업과 복구 고려사항(-9, 00:13:22)

2. 오라클 복구 구조와 프로세스(-15, 01:36:12)

3. 오라클 백업 및 복구 구성(-21, 00:39:40)

4. Oracle Recovery Manager없이 물리적 백업(-19, 00:33:37)

5. 장애의 유형과 문제해결(-20, 00:36:49)

6. 오라클 데이터베이스의 완전 복구(-23, 01:10:38)

7. Archiving 이용한 불완전 오라클 복구(-22, 00:47:16)

8. 오라클 EXPORT 및 IMPORT 유틸리티(-21, 00:34:00)

9. 오라클 Recovery Manager 개요(-22, 00:40:27)

10. 오라클 복구 카탈로그(Recovery Catalog) 유지(-29, 00:36:02)

11. Oracle Recovery Manager를 사용하는 물리적 백업(-38, 00:59:00)

12. RMAN을 사용한 복원과 복구(-9, 00:17:25)

13. 오라클 복구에 대한 추가 사항(-13, 00:27:07)

14. 오라클 대기(Standby) 데이터베이스(-16, 00:26:06)

15. 문제해결을 위한 Oracle 유틸리티(-25, 00:25:12)

상세보기

Oracle Performance Tuning Workshop(PTW)


0. 과정 소개(-2, 00:05:24)

1. 튜닝 개요(-7, 00:14:38)

2. 오라클 경고, 추적 파일 및 이벤트(-16, 00:31:23)

3. 유틸리티 및 동적 성능 뷰(-32, 00:33:40)

4. SQL 튜닝(-21, 00:45:00)

5. 공유 풀 튜닝(-29, 01:14:34)

6. 버퍼 캐쉬 튜닝(-20, 01:06:35)

7. 리두로그 버퍼 튜닝(-11, 00:31:09)

8. 데이터베이스 구성 및 I/O 이슈(-26, 00:59:35)

9. 오라클 블록의 효율적인 사용(-23, 01:06:58)

10. 정렬 작업 최적화(-13, 00:47:51)

11. 롤백 세그먼트 튜닝(-19, 00:50:40)

12. Lock 경합 감시 및 탐지(-17, 00:51:25)

13. 경합 이슈(-17, 00:42:03)

14. 다른 애플리케이션에 대한 튜닝 고려사항(-54, 01:29:02)

15. 운영체제 튜닝(-11, 00:19:05)

16. 로드 최적화(-13, 00:39:02)

상세보기

Java Programming(JAPL)

출처 : Tong - sbbokz님의 ORACLE통

'프로그래밍Tips' 카테고리의 다른 글

[티스토리]기능 추가하기...  (0) 2007.01.26
오라클 날짜형식 다루기...  (0) 2007.01.03
[JSP] Cookie  (0) 2006.12.05

+ Recent posts