oracle 查看列统计信息中 low_value

-- 准备环境  
create table t1(id int,name varchar2(10));  
begin  
  for i in 1001..100000 loop  
    insert into  t1 values(i,'china'||to_char(i));  
  end loop;  
  commit;  
end; 

-- 收集信息
begin
  dbms_stats.gather_table_stats(ownname => 'LOGE',tabname => 'SMALL',cascade => true);
end;

-- 创建函数
create or replace function f_display_raw(rawval raw, type varchar2)
  return varchar2 is
  cn  number;
  cv  varchar2(32);
  cd  date;
  cnv nvarchar2(32);
  cr  rowid;
  cc  char(32);
  cbf binary_float;
  cbd binary_double;
begin
  if (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 = 'NUMBER') then
    dbms_stats.convert_raw_value(rawval, cn);
    return to_char(cn);
  elsif (type = 'BINARY_FLOAT') then
    dbms_stats.convert_raw_value(rawval, cbf);
    return to_char(cbf);
  elsif (type = 'BINARY_DOUBLE') then
    dbms_stats.convert_raw_value(rawval, cbd);
    return to_char(cbd);
  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(cr);
  elsif (type = 'CHAR') then
    dbms_stats.convert_raw_value(rawval, cc);
    return to_char(cc);
  else
    return 'UNKNOWN DATATYPE';
  end if;
end;
/

-- 查看
select a.column_name,
       display_raw(a.low_value, b.data_type) as low_val,
       display_raw(a.high_value, b.data_type) as high_val,
       b.data_type
  from user_tab_col_statistics a, user_tab_cols b
 where a.table_name = 'T1'
   and a.table_name = b.table_name
   and a.column_name = b.column_name;
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值