oracle 时间戳_Oracle时间戳类型内部表示的转换方式

本文介绍了在监控和排查SQL性能问题时,如何处理时间戳类型绑定变量的转换。通过Oracle的dbms_stats.convert_raw_value存储过程,可以将内部表示的时间戳转换为日期、数字等类型。举例展示了将字符串转换为日期并打印的PL/SQL代码块,有助于理解此过程在SQL性能分析中的应用。
摘要由CSDN通过智能技术生成

监控或者排查SQL性能问题的时候,可能会抓到一条带绑定变量的语句,此时往往会根据对应绑定变量的值,做更深入的分析,例如数据分布、隐式转换等。

但如果是个时间戳类型的字段,绑定变量显示的值可能就是形如78780610033C01的一个字符串,我们怎样将他转成可识别的时间戳?

此时,dbms_stats中的convert_raw_value存储过程,就起到了作用,

Convert the internal representation of a minimum or maximum value into a datatype-specific value

https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_stats.htm#ARPLS68494

像直方图中的最大最小值、绑定变量中的时间戳类型,利用这个存储过程都可以将这些Oracle内部存储的值转换成BINARY_FLOAT、BINARY_DOUBLE、DATE、NUMBER和VARCHAR2等类型,

f0f9fd8e2f00f498c9faba81471d98f6.png

如下所示,convert_raw_value将字符串转换成日期类型存储到v_x变量中,通过to_date格式化,dbms_output.put_line打印出来,

SQL> set serveroutput onSQL> declare  2    v_x date;  3    v_result varchar2(100);      4    begin  5      dbms_stats.convert_raw_value('78780610033C01',v_x);  6      select to_char(v_x,'yyyy-mm-dd hh24:mi:ss') into v_result from dual;  7      dbms_output.put_line(v_result);  8    end;  9  /2020-06-16 02:59:00PL/SQL procedure successfully completed.

近期的热文:

《Oracle的批量插入操作》

《数据库结构文档的生成利器》

《主键约束索引的奇葩现象》

《如何判断应用系统性能好不好?》

《Oracle Cloud创建19c数据库》

《SQL工具集-格式化结果的SQL》

《如何捕获问题SQL解决过度CPU消耗的问题》

《如何查看JVM运行的堆内存情况》

《Oracle删除字段的方式和风险,你都了解么?》

《登录缓慢的诡异问题》

《公众号600篇文章分类和索引》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值