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

ORA_HASH

문법

MAIN

ora_hash::=
Description of ora_hash.gif follows

그림 설명
 

목적

MAIN

ORA_HASH함수는 주어진 표현에 대한 해쉬 값을 계산하는 함수이다. 이 함수는 데이터의 부분 집합 분석 이나, 랜덤 샘플 생성과 같은 조작에 유용하다.

함수는 NUMBER값을 반환한다.

예제

MAIN

다음 예제는 sh.sales 테이블에서 고객 ID와 제품 ID의 각 조합에 대한 해쉬값을 생성하여, 해쉬값을 최대 100개 bucket에 분할하고, 첫번째 bucket(bucket 0)에 amount_sold값의 합계를 반환한다. 세번째 인수 (5)는 해쉬 함수에 대한 seed값을 지정한다. 이 seed값을 변화함에 따라 같은 쿼리에 대하여 다른 해쉬 결과를 획득할수 있다.

SELECT SUM(amount_sold) FROM sales
   WHERE ORA_HASH(CONCAT(cust_id, prod_id), 99, 5) = 0;

SUM(AMOUNT_SOLD)
----------------
            7315

다음 예제는 10개의 buckets(0에서 9) 지정에 의해 sh.sales 테이블에서 데이터의 subset을 검색하여서, bucket 1로 부터 데이터를 반환한다. 기대되는 subset은 행의 약 10% 이다. (sales 테이블은 960 행)

SELECT * FROM sales
   WHERE ORA_HASH(cust_id, 9) = 1;

   PROD_ID    CUST_ID TIME_ID   C   PROMO_ID QUANTITY_SOLD AMOUNT_SOLD
---------- ---------- --------- - ---------- ------------- -----------
      2510       6950 01-FEB-98 S       9999             2          78
      9845       9700 04-FEB-98 C       9999            17         561
      3445      33530 07-FEB-98 T       9999             2         170
. . .
       740      22200 13-NOV-00 S       9999             4         156
      9425       4750 29-NOV-00 I       9999            11         979
      1675      46750 29-NOV-00 S       9999            19        1121
97 rows selected.