---字符转二进制
utl_raw.cast_to_raw
---二进制转数字
utl_raw.cast_to_number
---二进制转字符
utl_raw.cast_to_varchar2
通常在统计信息中我们需要看直方图对应的low_value,high_value可以使用此函数转换
SQL> select d.low_value,d.high_value,utl_raw.cast_to_varchar2(d.low_value) low_value2,utl_raw.cast_to_varchar2(d.high_value) high_value2, d.num_distinct,d.num_nulls from dba_tab_col_statistics d where d.table_name = 'TAB_OBJ' and d.column_name='OBJECT_TYPE';
LOW_VALUE HIGH_VALUE LOW_VALUE2 HIGH_VALUE2 NUM_DISTINCT NUM_NULLS
-------------------- -------------------- ------------- -------------- ------------ ----------
434C5553544552 57494E444F57 CLUSTER WINDOW 23 0
转换指定的列为二进制形式
SQL> select object_name ,utl_raw.cast_to_raw(object_name) obj_raw from TAB_OBJ where rownum<5;
OBJECT_NAME OBJ_RAW
-------------------------- -----------------------------
C_USER# 435F5553455223
C_TS# 435F545323
C_OBJ# 435F4F424A23
C_FILE#_BLOCK# 435F46494C45235F424C4F434B23
参考:
https://docs.oracle.com/database/121/ARPLS/u_raw.htm#ARPLS71358