ORACLE实际生产中小工具总结

               在日常的生产中,数据来源往往多种多样,今天就说说excel中的额数据吧,因为现在好多开发语言支持将数据导出到excel,但是有些不标准的做法会导致产生无法识别的特殊字符,在数据库中以?的形式存在,为我们数据的清洗带来了一定的麻烦,当特殊字符出现在字符串中,对实际音响不大,但是当特殊字符出现在数字类型的字段后,便会影响到实际的生产了,此时如何找出特殊字符就会很困难,因为无法识别具体是什么字符,所以我们就需要转换一下思路,将标准的数据找出来,然后用总得数据集出去标准的数据集,剩下的就是包含特殊字符的数据集了,那么如何找出标准的呢,好像也很难,那么好像有一个函数,正则表达式能解决问题,哈哈,真的可以,果断使用,具体的使用方法如下:select * from value_data p where p.line_num not in (select t.line_num from value_data t where REGEXP_LIKE(t.sale_num,‘(^[+-]?\d{0,}\.?\d{0,}$)‘))

              在日常的生产中,也有时候因为设计不当或者操作不当,会导致数据库的sessions死锁,这时候数据库就会等待,这时候数据库session之间的争用会严重影响实际的业务处理,所以必须快速准确的关闭死锁的session,

select sess.sid,
    sess.serial#,
    lo.oracle_username,
    lo.os_user_name,
    ao.object_name,
    lo.locked_mode
    from v$locked_object lo,
    dba_objects ao,
    v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;

alter system kill session ‘46,53‘;

通过以上两个操作,就可以快速准确的将死锁session关闭。

               数据库的分页,这个不用说,大家应该都会用到的,记录一下吧select * from(select rownum no ,t.line_num,t.ven_cust from value_data t) where no>1 and no <11

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。