爱问知识人 爱问教育 医院库

查找乱码字符串的SQL方法是什么呢?

首页

查找乱码字符串的SQL方法是什么呢?

查找乱码字符串的SQL方法是什么呢?

提交回答

全部答案

    2018-04-01 10:06:50
  •   昨天系统导数据库,一不小心把nls_language设错了,结果导出来的函数和过程里面的中文字符串中的字符都变成问号了(?)。
    结果业务部门报告,好多报表里面的内容都变成问号了,这下麻烦了。
    首要问题,是要把有这种问题的函数和过程找出来,但是系统中的函数和过程有好多啊,将近一千个,有人说要大家每个人分几个,用眼睛看,那可不行啊,会累死人的,哈哈。
       想想办法吧,记得Oracle的函数和过程每行的文本都是存在一个系统表中的,而且,有问题的函数和过程会有一个特点,就是里面的字符串都变成了'???'的形式,只不过里面的问号的数量不一定。 那种形式正好可以让正则表达式发挥作用,而且还记得Oracle提供了正则表达式的函数呢。
       确定了方向之后,说干就干,查了一下资料,所有的函数和过程都存储在User_Source这个表中。而Oracle还提供了REGEXP_Like函数。 于是就有了下面的SQL: select distinct name, type from user_source where REGEXP_LIKE(text, '''\?{1,1000}''') 一下子就把有问题的函数和过程名都找出来了。
      哈哈,省了不少功夫啊。 总结一下,遇到问题的时候不要着急,不能依赖手工的工作。Oracle中的系统表和内置函数功能很强大,要充分利用。

    w***

    2018-04-01 10:06:50

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):