오라클 성능 트러블슈팅의 기초 (2012년)
UTL_RAW, DBMS_STAT 0 0 42,652

by 구루비스터디 UTL_RAW DBMS_STAT PLSQL 패키지 [2023.09.05]


1.5.11 UTL_RAW

  • RAW 타입의 값을 분석해야 할 경우 사용하는 패키지이다.
 
SQL> select utl_raw.cast_to_number('C102') from dual;
SQL> select utl_raw.cast_to_varchar2('6D616E79') from dual;

  • 다음과 같이 응용도 가능하다.
 
SQL> select column_name, data_type, 
decode(data_type, 'NUMBER', utl_raw.cast_to_number(low_value)||'', 'VARCHAR2', utl_raw.cast_to_varchar2(low_value), low_value||'') as low_value,
decode(data_type, 'NUMBER', utl_raw.cast_to_number(high_value)||'', 'VARCHAR2', utl_raw.cast_to_varchar2(high_value), high_value||'') as high_value
from user_tab_cols where table_name = 'T1';

1.5.12 DBMS_STAT

  • 이 패키지는 통계 정보를 수집하고 제어하는 목적으로 사용된다. 이 패키지의 CONVERT_RAW_VALUE 프로시져를 사용하면 UTL_RAW 의 CAST_TO_[TYPE]함수와 거의 동일한 작업을 할 수 있다. 하지만, 프로시져이기 때문에 함수 형식으로 사용하려면 아래와 같이 사용자 정의 함수를 만들어야 한다.
 
SQL> create or replace function convert_me( p_value in raw, p_type in varchar2)
      return varchar2
      is
      v_number number;
      v_varchar2 varchar2(4000);
    begin
      if (p_type = 'NUMBER') then
        dbms_stats.convert_raw_value(p_value, v_number);
        return v_number||'';
        elsif (p_type = 'VARCHAR2') then
        dbms_stats.convert_raw_value(p_value, v_varchar2);
        return v_varchar2;
        else
        return p_value || '';
      end if;
    end;
    /

  • 다음과 같이 사용이 가능하다.
 
SQL> select convert_me('C102', 'NUMBER') from dual;
SQL> select convert_me('6D616E79', 'VARCHAR2') from dual;
SQL> select column_name, data_type,
convert_me(low_value, data_type) as low_value,
convert_me(high_value, data_type) as high_value 
from user_tab_cols where table_name = 'T1';

"데이터베이스 스터디모임" 에서 2012년에 "오라클 성능 트러블슈팅의 기초 " 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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