Oracle SQL 강좌
기타 함수들 12 11 99,999+

by 구루비 DUMP GREATEST LEAST UID USERENV VSIZE [2002.01.20]


DUMP

DUMP는 바이트 크기와 해당 데이터 타입 코드를 반환 한다.

 
-- 16대신 8을 넣으면 8진수로, 10를 넣으면 10진수로 변환이 된다.
-- Len은 ename의 해당 byte 수 이다.
SQL> SELECT ename, DUMP(ename, 16) "16진수"
     FROM emp
     WHERE ename = 'ALLEN';

ename   16진수
------  ------------------------------
ALLEN   Typ=1 Len=5: 41,4c,4c,45,4e
    

GREATEST

GREATEST 함수는 검색 값 중에서 가장 큰 값을 반환 한다.

 
SQL> SELECT GREATEST(10, 100, 5, -7) FROM DUAL;

GREATEST(10,100,5,-7)
---------------------
                  100        --가장 큰 수는 100이겠죠..
    

LEAST

LEAST 함수는 GREATEST 함수와 반대로 가장 작은 값을 반환 한다.

 
SQL> SELECT LEAST(10, 100, 5, -7) FROM DUAL;  

LEAST(10,100,5,-7)
------------------
                -7
    

UID, USER

UID는 현재 사용자의 유일한 ID 번호를 반환하고, USER는 현재 오라클 사용자를 VARCHAR2형식으로 반환 한다.

 
SQL> SELECT USER, UID FROM DUAL;

USER          UID
------------- ------
SCOTT         32
    

USERENV

USERENV 함수는 현재 세션의 환경 정보를 반환 한다.

  • - ENTRYID : 사용 가능한 Auditing entry Identifier를 반환.
  • - LABEL : 현재 세션의 Label을 반환.
  • - LANGUAGE : 현재 세션에서 사용중인 언어와 테리토리 값을 반환.
  • - SESSIONID : Auditing(감사) Session ID를 반환.
  • - TERMINAL : 현재 세션 터미널의 OS ID를 반환.
 
SQL> SELECT USERENV('LANGUAGE') FROM DUAL;

USERENV('LANGUAGE')
------------------------
KOREAN_KOREA.KO16KSC5601
    

VSIZE

해당 문자의 BYTE 수를 반환, 해당 문자가 NULL 이면 NULL 값 반환

 
SQL> SELECT VSIZE(ename), ename
     FROM emp
     WHERE deptno = 30;

VSIZE(ENAME) ENAME
------------ ----------
           5 ALLEN
           4 WARD
           6 MARTIN
           5 BLAKE
    

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/1029

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by lindol [2005.10.26 13:52:28]
USERENV의 테리토리 값이 무엇인지요?

by smile [2005.11.09 20:15:44]
퍼갑니다. ^^

by 이연두 [2006.03.17 17:21:07]
정식이오빠! 고마워요~~

by 김연준 [2006.08.04 17:19:32]
DUMP function에서
Typ은 1만 나오던데..무엇을 의미하는지 잘 모르겠네용
--> Typ은 데이터타입을 정의합니다.

DataType 정의입니다.

Typ DATATYPE
1 VARCHAR2(size) [BYTE | CHAR]
1 NVARCHAR2(size)
2 NUMBER(p,s)
8 LONG
12 DATE
23 RAW(size)
24 LONG RAW
69 ROWID
96 CHAR(size)[BYTE | CHAR]
96 NCHAR(size)
112 CLOB
112 NCLOB
113 BLOB
114 BFILE
180 TIMESTAMP (fractional_seconds_precision)
181 TIMESTAMP (fractional_seconds_precision) WITH TIME ZONE
182 INTERVAL YEAR (year_precision) TO MONTH
183 INTERVAL DAY (day_precision) TO SECOND (fractional_seconds_precision)
208 UROWID [(size)]
231 TIMESTAMP (fractional_seconds_precision) WITH LOCAL TIME ZONE

by 쌩유~ [2006.11.23 17:32:08]
퍼가욤^^

by 초짜 [2008.10.29 10:59:23]
dual이 먼가요??

by 현 [2008.10.30 09:33:16]
dual 은 아무 의미 없이 사용하는 더미 테이블입니다.

by 왕초보 [2008.11.20 09:43:51]
ㅎㅎ 감사합니다 프로그램 오류시 입력한값이 컬럼보다 크다는 에러가 발생하면 VSIZE문으로 확인하면 되겠군요 ㅎㅎ 지금것 눈으로 찾는다고 고생했다는 ㅜㅜ

by 돌이맹이 [2012.02.28 13:42:49]
잘 보고 갑니다

by 까망소 [2012.12.18 17:45:18]

"DataType 정의" 에 대한 설명 등... 감사합니다. ^^*

by 요타바이트 [2016.05.11 23:43:11]

잘보고갑니다

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입