暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

关于oracle绑定变量及统计信息中最值的转换

原创 杜伟 2024-05-28
129

在查看统计信息时,最值都是被转义存储的,不能直观的看出具体数值或字符,需要进行转换,通常转换有以下方式:

命令窗口中执行:

var x date;     --针对date类型的列
exec dbms_stats.convert_raw_value('78710A0913182B',:x);
select :x from dual;


var x number;           --针对ID类型
exec dbms_stats.convert_raw_value('C4034B5932',:x);
select :x from dual;


var x char;            --针对char类型的列
exec dbms_stats.convert_raw_value('584442',:x);
select :x from dual;

在查看执行计划时,TIMESTAMP类型的变量不能直接看出具体数值,需要转换,通常转换的方式

select to_timestamp(                                        --或者使用to_date函数
to_char( to_number( substr( p_str, 1, 2 ), 'xx' ) - 100, 'fm00' ) ||
to_char( to_number( substr( p_str, 3, 2 ), 'xx' ) - 100, 'fm00' ) ||
to_char( to_number( substr( p_str, 5, 2 ), 'xx' ), 'fm00' ) ||
to_char( to_number( substr( p_str, 7, 2 ), 'xx' ), 'fm00' ) ||
to_char( to_number( substr( p_str, 9, 2 ), 'xx' )-1, 'fm00' ) ||
to_char( to_number( substr( p_str,11, 2 ), 'xx' )-1, 'fm00' ) ||
to_char( to_number( substr( p_str,13, 2 ), 'xx' )-1, 'fm00' ), 'yyyymmdd hh24miss' )
from (select '&raw_timestamp' p_str from dual);

注意:当索引字段类型是date类型,而绑定变量输入的是TIMESTAMP,此时索引用不了,需要将变量类型从timestamp类型改成date类型才能使用上索引!
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论