在看字段的直方图时,高值和低值看不明白,需要转换一下,转换如下。 sqlgt; select column_name, num_distinct n_d,
在看字段的直方图时,高值和低值看不明白,,需要转换一下,转换如下。
sql> select column_name,
num_distinct n_d,
low_value o_low_value,
display_raw(low_value, data_type) low_value,
high_value o_high_value,
display_raw(high_value, data_type) high_value
from user_tab_cols
where table_name = 't'
and (column_name='owner' or column_name='object_id'
or column_name='created');
column_nam n_d o_low_valu low_value o_high_val high_value
---------- ------ ---------- ---------- ---------- ----------
owner 22 4249 bi 584442 xdb
object_id 51136 c103 2 c3071535 62052
created 1395 7869081e0e3319 30-8月-05 7872021c0c152c 28-2月-14
create or replace function display_raw (rawval raw, type varchar2)
return varchar2
is
cn number;
cv varchar2(32);
cd date;
cnv nvarchar2(32);
cr rowid;
cc char(32);
begin
if (type = 'number') then
dbms_stats.convert_raw_value(rawval, cn);
return to_char(cn);
elsif (type = 'varchar2') then
dbms_stats.convert_raw_value(rawval, cv);
return to_char(cv);
elsif (type = 'date') then
dbms_stats.convert_raw_value(rawval, cd);
return to_char(cd);
elsif (type = 'nvarchar2') then
dbms_stats.convert_raw_value(rawval, cnv);
return to_char(cnv);
elsif (type = 'rowid') then
dbms_stats.convert_raw_value(rawval, cr);
return to_char(cnv);
elsif (type = 'char') then
dbms_stats.convert_raw_value(rawval, cc);
return to_char(cc);
else
return 'unknown datatype';
end if;
end;