Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

NLSSORT

문법

MAIN

nlssort::=
Description of nlssort.gif follows

그림 설명
 

목적

MAIN

NLSSORT함수는 char 소트에 이용되는 bytes의 문자열을 반환한다.

char과 'nslparam'의 데이터형은 CHAR,VARCHAR2,NCHAR,NVARCHAR2를 취한다. 반환되는 문자열은 RAW데이터형이다.

'nlsparam'의 값은 이 형태를 가질수 있다.

'NLS_SORT = sort'

sort는 언어상 소트 순서 또는 BINARY 중에 하나이다. 만약 'nlsparam'을 생략하면, 이 함수는 세션에 대하여 기본적 소트 순서를 이용한다. 만약 BINARY를 지정하면, 이 함수는 char을 반환한다.

만약 'nlsparam'을 지정했다면, 접미사 -ai를 추가하여 accent-insensitive(엑센트 기호유무가 필요없는) 소트를 하거나,-ci를 추가하여 case-insensitive(대소문구분이 없는) 소트를 실시할수있다.

accent- 와 case-insensitive 소트에 대해서는 Oracle Database Globalization Support Guide 참조.

이 함수는 CLOB 데이터를 직접적으로 지원하지 않는다. 그러나, CLOB는 암묵적 데이터 변환을 통해서 인수로 전달될 수 있다.

 

NLSSORT 함수는 입력 문자열을 소팅하여 문자열을 반환. 단어의 withe space나 문자가 알파 문자열이 아니더라도 상관없다. nlsparam는 ‘nls_sort = sort'와 같은 형식을 가지며, 여기서 sort는 linguistic sort sequence나 binary중의 하나이다.

예제

MAIN

이 함수는 문자열의 이진수 값 보다는 언어 소트 기준을 기본으로 한 소트와 비교를 지정할수 있다. 다음 예제는 2개의 값을 포함한 test 테이블을 생성하고, 어떻게 값이 NLSSORT함수에 의해 순서화 되어지는가를 볼수있다.

CREATE TABLE test (name VARCHAR2(15));
INSERT INTO test VALUES ('Gaardiner');
INSERT INTO test VALUES ('Gaberd');
INSERT INTO test VALUES ('Gaasten');

SELECT * FROM test ORDER BY name;

NAME
---------------
Gaardiner
Gaasten
Gaberd

SELECT * FROM test ORDER BY NLSSORT(name, 'NLS_SORT = XDanish');

NAME
---------------
Gaberd
Gaardiner
Gaasten
다음 예제는 비교 연산으로 NLSSORT 함수를 이용하는 방법을 보인다.

The following example shows how to use the NLSSORT function in comparison operations:

SELECT * FROM test WHERE name > 'Gaberd';

no rows selected

SELECT * FROM test WHERE NLSSORT(name, 'NLS_SORT = XDanish') > 
NLSSORT('Gaberd', 'NLS_SORT = XDanish');

NAME
---------------
Gaardiner
Gaasten

만약 빈번하게 동일한 언어 소트 기준을 사용하는 비교 연산으로 이용한다면, 더 효율적 대안을 고려하자: NLS_COMP파라미터(데이터 베이스용이나 현재 세션 어느쪽이든)에 ANSI를 설정하고, 원하는 소트 기준으로 세션에 대해 NLS_SORT 파라미터를 설정한다. 오라클 데이터 베이스는 현재의 세션 에서 모든 소팅과 비교 연산에 대하여 기본적으로 소트 기준을 이용한다.

ALTER SESSION SET NLS_COMP = 'ANSI';
ALTER SESSION SET NLS_SORT = 'XDanish';

SELECT * FROM test WHERE name > 'Gaberd';

NAME
---------------
Gaardiner
Gaasten