Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 나는 어디로?
- 라이브러리 vs 패키지
- 가장 인기있는 파이썬 패키지
- robux
- 종합과세
- 상업시설용지 분양
- Google vs MicorSoft
- 오라클 데이터베이스 내장함수
- 가장 인기있는 파이썬 라이브러리
- 주택임대사업자
- 갤럭시탭 with Pen
- 임대소득외 추가소득이 있을 경우
- chatgpt vs bard
- chatgpt 100% 신뢰금지
- 공개서적
- 파이썬 TypeError
- 다주택임대
- 소형주택 세액감면
- 전세보증보험
- bard 100% 신뢰금지
- PostgreSQL
- 주상복합용지 분양
- Google vs OpenAI
- 가장 많이 사용되는 파이썬 라이브러리
- 오피스텔투자
- 가장 많이 사용되는 파이썬 패키지
- 2룸 오피스텔 투자
- 종합소득세
- Python
- 데이터 리터러시
Archives
All thing of the world!
Oracle ORA_HASH 설명 : 오라클 함수 본문
1. 함수의 목적
Oracle ORA_HASH는 파라미터로 들어온 표현식에 대한 오라클 해시(hash)로직값을 계산하는 함수이다.
본 함수는 오라클 해쉬함수의 랜덤한 값을 이용하여 다양하게 활용가능하다.
꽤 유용한 함수이나 존재를 몰라 사용하지 않는 것 같다. 적극 사용을 권장한다.
2. 샘플을 통한 개념 퀵뷰
EMPLOYEES의 EMPLOYEE_ID를 가지고 max_bucket 2, seed_value 5로 ORA_HASH함수로 값을 만들어 ORA_HASH컬럼으로 출력한다.
SELECT EMPLOYEE_ID, ORA_HASH(EMPLOYEE_ID, 2, 5) "ORA_HASH'
FROM EMPLOYEES
ORDER BY 1
;
max_buket이 2라서 출력되어 나온 값이 0,1,2로 출력되며, 최대 2를 넘지 않는다.
DISTINCT로 확인하면 아래와 같다.
SELECT DISTINCT ORA_HASH
FROM
(SELECT EMPLOYEE_ID, ORA_HASH(EMPLOYEE_ID, 2, 5) "ORA_HASH"
FROM EMPLOYEES)
ORDER BY 1
;
3. 사용방법
4. 함수 PARAMETER 설명
[expr]
expr 인수는 해시 값을 계산할 컬럼을 정의하는 입력 파라미터이다.
expr이 나타내는 데이터 길이에는 제한이 없으나, LONG 또는 LOB 유형은 불가능하다.
NESTED 테이블 유형이외 사용자 정의 오브젝트 유형은 불가능하다.
[max_bucket]
optional 파라미터로, max_bucket 인수는 해시 함수가 반환할 최대 버킷 값을 정의한다.
0에서 4294967295 사이의 값을 지정할 수 있다. 기본값은 최대값인 4294967295이다.
쉽게 말하면 출력되서 나오는 값의 종류를 지정한다고 보면 된다.
[seed_value]
optional 파라미터로, seed_value 인수를 사용하면 Oracle이 동일한 데이터 세트에 대해 여러가지 다양한 결과를 생성할 수 있다.
expr과 seed_value의 조합에 해시 함수를 적용하며, 0에서 4294967295 사이의 값을 지정할 수 있다.
기본값은 0이다.
5. 다양한 샘플표현
example1) "2. 샘플을 통한 개념 퀵뷰"의 다른 파라미터를 그대로 두고, seed_value만 6으로 변경하면 리턴되는 BUKET값이 달라진다.
SELECT EMPLOYEE_ID, ORA_HASH(EMPLOYEE_ID, 2, 6 ) "ORA_HASH"
FROM EMPLOYEES
ORDER BY 1
;
example2) sh.sales 테이블에 cust_id와 prod_id의 각 조합에 대한 해시 값을 생성하고 해시값을 최대 100 개의 버킷으로 나누고 첫 번째 버킷(버킷 0)에 amount_sold 값의 합계를 반환한다.
세 번째 인수(5)는 해시 함수의 시드값을 제공하며, 시드 값을 변경하면 동일한 쿼리에 대해 다른 해시 결과를 얻을 수 있다.
SELECT SUM(amount_sold)
FROM sales
WHERE ORA_HASH(CONCAT(cust_id, prod_id), 99, 5) = 0;
SUM(AMOUNT_SOLD)
----------------
989431.14
'IT > Oracle DBMS' 카테고리의 다른 글
Oracle PERCENTILE_CONT 설명 : 오라클 함수 (0) | 2021.03.30 |
---|---|
Oracle REGR_*(선형회귀함수) 설명 : 오라클 함수 (0) | 2021.03.30 |
Oracle REGEXP_COUNT 설명 : 오라클 함수 (0) | 2021.03.30 |
Oracle JSON_VALUE 설명 : 오라클 함수 (0) | 2021.03.30 |
Oracle JSON_TABLE 설명 : 오라클 함수 (0) | 2021.03.30 |
Comments