DBMS_XPLAN.FORMAT_* 함수

2021. 12. 17.·Oracle/PLSQL

DBMS_XPLAN 패키지에는 숫자 값의 포맷팅할 수 있는 다수의 함수가 포함되어 있습니다. 참고로 이 함수들은 문서화되지 않았습니다.

 

FORMAT_NUMBER, FORMAT_NUMBER2 함수는 숫자 값을 1000 기준의 SI 단위 문자 값으로 포맷팅합니다. SI 단위는 대문자로 표시됩니다.

-- 1
SELECT POWER (10, ROWNUM) AS c1
     , DBMS_XPLAN.FORMAT_NUMBER  (POWER (10, ROWNUM)) AS c2
     , DBMS_XPLAN.FORMAT_NUMBER2 (POWER (10, ROWNUM)) AS c3
  FROM XMLTABLE ('1 to 10');

         C1 C2     C3   
----------- -----  -----
         10 10       10 
        100 100     100 
       1000 1000      1K
      10000 10000    10K
     100000 100K    100K
    1000000 1000K     1M
   10000000 10M      10M
  100000000 100M    100M
 1000000000 1000M     1G
10000000000 10G      10G

10 행이 선택되었습니다.

 

FORMAT_SIZE, FORMAT_SIZE2 함수는 숫자 값을 1024 기준의 SI 단위 문자 값으로 포맷팅합니다. SI 단위는 소문자로 표시됩니다.

-- 2
SELECT POWER (8, ROWNUM) AS c1
     , DBMS_XPLAN.FORMAT_SIZE  (POWER (8, ROWNUM)) AS c2
     , DBMS_XPLAN.FORMAT_SIZE2 (POWER (8, ROWNUM)) AS c3
  FROM XMLTABLE ('1 to 10');

        C1 C2    C3
---------- ----- -----
         8 8        8
        64 64      64
       512 512    512
      4096 4096     4k
     32768 32768   32k
    262144 256K   256k
   2097152 2048K    2m
  16777216 16M     16m
 134217728 128M   128m
1073741824 1024M    1g

10 행이 선택되었습니다.

 

FORMAT_TIME_S 함수는 초 단위의 숫자 값을 HH:MI:SS 형식의 문자 값으로 포맷팅합니다. 표시 가능한 최대 값은 999:59:59로 보입니다. FORMAT_TIME_S 함수 대신 NUMTODSINTERVAL 함수를 사용하면 초 단위의 숫자 값을 INTERVAL DAY TO SECOND 타입으로 변환할 수 있습니다.

-- 3
SELECT POWER (6, ROWNUM) AS c1
     , DBMS_XPLAN.FORMAT_TIME_S (POWER (6, ROWNUM)) AS c2
     , SUBSTR (NUMTODSINTERVAL (POWER (6, ROWNUM), 'SECOND'), 8, 12) AS c3
  FROM XMLTABLE ('1 to 10');

      C1 C2         C3          
-------- ---------- ------------
       6 00:00:06   000 00:00:06
      36 00:00:36   000 00:00:36
     216 00:03:36   000 00:03:36
    1296 00:21:36   000 00:21:36
    7776 02:09:36   000 02:09:36
   46656 12:57:36   000 12:57:36
  279936 77:45:36   003 05:45:36
 1679616 466:33:36  019 10:33:36
10077696 999:59:59  116 15:21:36
60466176 999:59:59  699 20:09:36

10 행이 선택되었습니다.
저작자표시 비영리 변경금지 (새창열림)
'Oracle/PLSQL' 카테고리의 다른 글
  • UPDATE 문의 RETURNING INTO 절 개선
  • 단순 CASE 문 평가식 개선
  • PL/SQL 오브젝트 컴파일 시 ORA-29275 에러 발생
  • 숫자 값을 SI 단위로 표시
정희락
정희락
2007년부터 Oracle Database 성능 최적화에 주력해 왔으며, 현재 한국오라클 Engineered Systems Solution Engineering 팀에서 Solution Engineer로 근무하고 있습니다. 이 블로그는 개인적인 연구 목적으로 운영되며, Oracle 사의 공식 입장을 대변하지 않습니다.
  • 정희락
    TunA
    정희락
  • 전체
    오늘
    어제
    • 분류 전체보기 (197) N
      • Oracle (169) N
        • SQL (32)
        • PLSQL (10)
        • Performance (73) N
        • Administration (37) N
        • Installation (3)
        • Utilities (1)
        • JSON (8)
        • Vector (5) N
      • Exadata (15)
      • SQL*Plus (2)
      • Linux (5)
      • Resources (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 도서

    • 불친절한 SQL 프로그래밍
    • 불친절한 PL/SQL 프로그래밍
  • 링크

    • Connor McDonald
    • Frits Hoogland
    • Jonathan Lewis
    • Julian Dontcheff
    • Julian Dyke
    • Kun Sun
    • Maria Colgan
    • Martin Bach
    • Mike Dietrich
    • Tanel Poder
  • 공지사항

  • 인기 글

  • 태그

    12c
    19c
    21c
    23ai
    case study
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정희락
DBMS_XPLAN.FORMAT_* 함수
상단으로

티스토리툴바