기술 정보
home
채널 소개
home

Hash 변환시 최대 문자열 크기 조정 방법

문서 유형
기술 정보
분야
튜닝
키워드
Hash
Varchar type
65532 byte
적용 제품 버전
6F

개요

Tibero6 FS06 환경에서 Varchar type 문자열 데이터를 hash 변환시, 최대 문자열의 크기는 4000 byte 입니다. 본 문서에서는 Varchar type 최대 크기인 65532 byte 까지 hash 변환 할 수 있는 방법에 대해 안내합니다.

방법

참고 아래와 같은 환경에서 테스트한 값을 예시로 안내합니다.
OS : Linux 64bit (RHEL7.4)
Tibero version : Tibero6 FS06 CS1709

1. Hash 변환시 최대 문자열 크기 확인 (4000 byte)

SQL> SELECT DBMS_CRYPTO.HASH(RPAD('A',4000,'B'),1) FROM DUAL; DBMS_CRYPTO.HASH(RPAD('A',4000,'B'),1) -------------------------------------------------------------------------------- 2B6DA0BA4E070442B90F492899860F22 1 row selected. SQL> SELECT DBMS_CRYPTO.HASH(RPAD('A',4001,'B'),1) FROM DUAL; TBR-11025: Data is too long for the column.
SQL
복사

2. 사용자 정의 함수 생성

CREATE OR REPLACE FUNCTION F_HASH(v_varchar2 varchar2) RETURN VARCHAR2 IS v_result varchar2(100); BEGIN v_result := DBMS_CRYPTO.HASH(TO_CLOB(v_varchar2),1); RETURN v_result; END; /
SQL
복사

3. Varchar type 최대 크기인 65532 byte 로 Hash 변환 수행

3.1. Varchar type 최대 크기 65532 Byte 문자열 생성

SQL> select lengthb(RPAD('A',(65532),'B')) FROM DUAL; LENGTHB(RPAD('A',(65532),'B')) ------------------------------ 65532
SQL
복사

3.2. Hash 변환 확인

위에서 생성한 f_hash 함수를 이용하여 65532 Byte 문자열이 hash 변환됨을 확인합니다.
SQL> select f_hash (RPAD('A',(65532),'B')) FROM DUAL; F_HASH(RPAD('A',(65532),'B')) -------------------------------------------------------------------------------- B972C40F3ED59EB3B1449C56D0502CE8
SQL
복사
추가로, 다양한 값을 hash 변환해 정상 동작 여부를 확인할 수 있습니다.
SQL> select f_hash (RPAD('A',(65532),'B')) FROM DUAL UNION ALL 2 select f_hash (RPAD('A',(65532),'C')) FROM DUAL UNION ALL 3 select f_hash (RPAD('B',(65532),'C')) FROM DUAL UNION ALL 4 select f_hash (RPAD('B',(65531),'C')) FROM DUAL; F_HASH(RPAD('A',(65532),'B')) -------------------------------------------------------------------------------- B972C40F3ED59EB3B1449C56D0502CE8 B55DC64917FD7CA4F855AE96EB6E2664 2ECCE37AD197694ECB7C90E310F96320 3CBCE91C0F95DE2B0147D96F50D40626
SQL
복사