使用minus比对非LOB和LOB表的两个小脚本
来源:互联网 发布:u3d编程是什么语言 编辑:程序博客网 时间:2024/05/16 23:02
脚本写的比较简单,使用minus比较用户下的表数据,第一个脚本是比对非LOB字段的,第二个脚本比对有LOB字段的表。
基本原理就是
select * from xxxx@xx
minu
select * from xxxxx;
这样的语句。其中比对LOB字段使用dbms_lob.getlength获取lob字段的长度进行比对。
首先创建一个dblink,这里就不说了
第一个比对不含LOB的表:
sqlplus ggs/ggs <<EOFset feedback off pagesize 0 heading off verify off linesize 600 trimspool onspool tab.sqlcol a for a20col b for a30select 'select '||''''||owner||''' A,'||''''|| table_name||''' B'||',t.* from '||owner||'.'||table_name||'@dbverify t' ||' minus '||'select '||''''||owner||''' A,'||''''|| table_name||''' B'||',t.* from '||owner||'.'||table_name ||' t;' from dba_tables t where owner in ('TEST') and table_name not in (select table_name from dba_lobs where owner='TEST') and table_name not in (select table_name from long_type);spool off;!grep -v 'SQL>' tab.sql >tab.txt!sed 's/[ ]*$//g' tab.txt >tab.sql!rm -rf tab.txtspool minus_res.txt@tab.sqlspool offEOFexit
第二个比对含有LOB字段的表:
sqlplus ggs/ggs <<EOFset line 4000set pages 0set heading offset echo offset long 99999spool lob1.sqlselect 'select '||column_name_path || ' from ' || owner || '.' || table_name || '@dbverify minus '||'select '||column_name_path || ' from ' || owner || '.' || table_name || ';' from (select owner, table_name, column_name_path, row_number() over(partition by table_name order by table_name, curr_level desc) column_name_path_rank from (select owner, table_name, cnm, rank, level as curr_level, ltrim(sys_connect_by_path(cnm, ','), ',') column_name_path from (select owner, table_name, decode(data_type,'CLOB','dbms_lob.getlength('''||column_name||''')','BLOB','dbms_lob.getlength('''||column_name||''')',column_name) cnm, -- column_name, row_number() over(partition by table_name order by table_name, column_name) rank from dba_tab_columns where (owner,table_name) in (select owner,table_name from dba_lobs where owner='HIS45') order by table_name, column_name) connect by table_name = prior table_name and rank - 1 = prior rank)) where column_name_path_rank = 1;spool off! grep '^select ' lob1.sql > lob1.txt!sed 's/[ ]*$//g' lob1.txt >lob1.sql!rm -rf lob1.txtspool lob1_res.txt@lob1.sqlspool offEOF
0 0
- 使用minus比对非LOB和LOB表的两个小脚本
- 使用dbms_lob.compare比对lob字段
- LOB对象的使用
- LOB
- LOB
- 查询大对lob所对应的表;
- 创建带有lob字段的表or 添加lob字段
- ORACLE中LOB字段的使用和维护
- ORACLE中LOB字段的使用和维护
- 使用DBLINK访问LOB类型表
- 带有LOB字段的表迁移
- 含有LOB 字段表的迁移示例
- 含LOB的表实际容量计算方法
- oracle lob的存储
- lob类型的存放
- oracle中一个数据文件的最大值(非lob)
- mysql笔记四——TEXT、LOB类型的使用和存储过程的使用
- 让ThinkPHP3.2.3 支持对Oracle LOB数据的操作
- 容器Collection
- hdu 4966 (最小树形图)
- HDOJ 题目1251统计难题(字典树,模板)
- Dom编程(添加、删除附件)
- [LeetCode] Candy
- 使用minus比对非LOB和LOB表的两个小脚本
- Ubuntu中root用户和user用户的相互切换
- WAS 节点不同步解决办法
- hdu 4968 Improving the GPA 策略 2014 Multi-University Training Contest 9-1009
- cin中函数的作用(第5章)
- Cyclone 黑金动力的IIC教程
- QTP 11.05下载地址及其汉化+破解
- hdoj 2089 不要62 【打表】
- 黑马程序员—【开发工具】Sublime Text 代码编辑神器下载