zoukankan      html  css  js  c++  java
  • 查找乱码字符串的SQL

    昨天系统导数据库,一不小心把nls_language设错了,结果导出来的函数和过程里面的中文字符串中的字符都变成问号了(?)。

    结果业务部门报告,好多报表里面的内容都变成问号了,这下麻烦了。

    首要问题,是要把有这种问题的函数和过程找出来,但是系统中的函数和过程有好多啊,将近一千个,有人说要大家每个人分几个,用眼睛看,那可不行啊,会累死人的,哈哈。

    想想办法吧,记得Oracle的函数和过程每行的文本都是存在一个系统表中的,而且,有问题的函数和过程会有一个特点,就是里面的字符串都变成了'???'的形式,只不过里面的问号的数量不一定。

    那种形式正好可以让正则表达式发挥作用,而且还记得Oracle提供了正则表达式的函数呢。

    确定了方向之后,说干就干,查了一下资料,所有的函数和过程都存储在User_Source这个表中。而Oracle还提供了REGEXP_Like函数。

    于是就有了下面的SQL:

    select distinct name, type from user_source where REGEXP_LIKE(text, '''\?{1,1000}''')

    一下子就把有问题的函数和过程名都找出来了。哈哈,省了不少功夫啊。

    总结一下,遇到问题的时候不要着急,不能依赖手工的工作。Oracle中的系统表和内置函数功能很强大,要充分利用。

  • 相关阅读:
    hibernate注解note
    hibernate的批量删除
    hibernate实现多表联合查询
    hibernate联合主键注解方式
    jsp之radio取值与赋值
    @Transient注解的使用
    工程师如何在工作中提升自己?(公众号)
    HTML中让表单input等文本框为只读不可编辑的方法
    ajax, jQuery, jQueryeasyUI
    关于easyui的问答(来自百度问答)
  • 原文地址:https://www.cnblogs.com/houbowei/p/1562119.html
Copyright © 2011-2022 走看看