Oracle 检查 表记录中是否有乱码的 存储过程

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 22:08 点击:

 

HelloJin 同学说他们的OGG 同步的数据可能有乱码,要整个方法检测一下。 讨论了半天,没有找到什么好方法,只能每个表,每条记录的去做查询,然后进行比较。

 

判断的过程如下:

view plain

/* Formatted on 2011/10/11 10:45:33 (QP5 v5.163.1008.3004) */ 

CREATE OR REPLACE PROCEDURE lank_test (pv_tbname   IN VARCHAR2, 

                                           pv_owner    IN VARCHAR2) 

IS 

   num        NUMBER; 

   p_flag     NUMBER; 

   p_flag2    NUMBER; 

   p_col      VARCHAR2 (30); 

   p_str      VARCHAR2 (1000); 

   p_tbname   VARCHAR2 (30); 

   p_owner    VARCHAR2 (30); 

BEGIN 

   p_tbname := pv_tbname; 

   p_owner := pv_owner; 

 

   --  p_tbname:='LANK_F1'; 

   --  p_owner:='SYS'; 

   --dbms_output.put_line(p_tbname||p_owner); 

   SELECT COUNT (*) 

     INTO p_flag 

     FROM dba_tab_columns 

    WHERE table_name = p_tbname AND owner = p_owner; 

 

   -- dbms_output.put_line('Total:'||p_flag); 

   WHILE p_flag > 0 

   LOOP 

      SELECT column_name 

        INTO p_col 

        FROM dba_tab_columns 

       WHERE table_name = p_tbname AND COLUMN_ID = p_flag AND owner = p_owner; 

 

      -- dbms_output.put_line(p_str); 

      EXECUTE IMMEDIATE 

            'select count(*) from  ' 

         || p_owner 

         || '.' 

         || p_tbname 

         || ' where asciistr(' 

         || p_col 

         || ') like ''%??%'' or asciistr(' 

         || p_col 

         || ') like ''%\FFFD%''  ' 

         INTO p_flag2; 

 

      IF p_flag2 > 0 

      THEN 

         DBMS_OUTPUT.put_line ( 

            p_owner || '.' || p_tbname || ' Have:' || p_flag || ',' || p_col); 

 

         INSERT INTO resout 

              VALUES (p_owner, 

                 &n

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Table函数使用简介
      • Oracle数据库Constraint约束的常用操作及异常处理
      • Bulk Collect性能分析(zz)
      • export/import的使用
      • OCP043第十五讲 Database Security
      • ORACLE10gr2数据导入MySQL方案
      • oracle 让sys用户可以使用isqlplus
      • 在oracle数据库下使用iSQL*Plus DBA访问数据库
      • Oracle行列转换小结
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1