ORA-22992: 无法使用从远程表选择的 LOB 定位器

执行:

    insert into incomesec.tp_ts_bill_info_b select * from incomesec.tp_ts_bill_info_b@DB_SYDB_LINK;insert

报错:ORA-22992: 无法使用从远程表选择的 LOB 定位器 


当出现这个错误的时候,那是因为你跨库连接查询中的这个表存在BLOB类型的字段

所以一定要注意,所有表中存在blob类型字段,
1.不能用 select * from 连接的表
2.不能将blob类型的字段出现在脚本中。。
如果这些blob类型的字段一定要导过来。。
可以先建立临时表再插入本地表。。
方法如下.在pl/sql中执行
第一步建临时表
create global temporary table foo
( X BLOB )
on commit delete rows;
第二步 插入本地表

insert into foo select blobcolumn from remoteTable@dl_remote ;


如果是把数据从一个库迁移到另一个库,还可以直接写个游标:


create or replace package body incomesec.PKG_INDB_CBSS is

  -- Private type declarations
  procedure in_db(v_resultcode out varchar2,
                  v_resultinfo out varchar2) is
     v_sql        varchar2(4000);

  Cursor objCur is
      select a.owner,a.obj_name,a.obj_links,a.ubj_name
      from u_param.td_sm_cbss_tables a;
  v_objCur      objCur%rowtype;
begin
     open objCur;
     loop
       fetch objCur
          into v_objCur;
        exit when objCur%notfound;
      v_sql:='drop table u_param.'||v_objCur.Ubj_Name||'';
       execute immediate v_Sql;
       commit;


       begin
       v_sql:='create table u_param.'||v_objCur.Ubj_Name||'
       as select * from '||v_objCur.Owner||'.'||v_objCur.Obj_Name||'@'||v_objCur.Obj_Links||'';
         execute immediate v_sql;
         commit;
       exception
         when others then
        rollback;
        v_resultcode := v_objCur.Obj_Name;
        v_resultinfo := SQLERRM;
        --DBMS_OUTPUT.put_line(v_resultinfo);
        return;
         end;
      end loop;
  close objCur;
end;


procedure in_db1(v_resultcode out varchar2,
                  v_resultinfo out varchar2) is
     v_sql        varchar2(4000);


  Cursor objCur is
      select * from all_tables a where a.OWNER = 'INCOMESEC' AND A.TABLE_NAME IN ('TF_F_USER_ZHIHUI_MID5_1','TF_F_USER_ZHIHUI_MID6_1','TF_F_USER_ZHIHUI_MID7_1','ZYN_TS_OP_CONTRACT_AUDIT','TS_S_JF_PARAM','TS_SY_RATE_GUO','TS_OF_WO_FAMILY_DEPART_NAME','TP_TS_USER_B','TP_TS_BILL_REPORT_LS','TP_TS_BILL_REPORT_B','TP_TS_BILL_INFO_LS','TP_TS_BILL_INFO_DETAIL_LS','TP_TS_BILL_INFO_DETAIL_B','TP_TS_BILL_INFO_B') order by table_name;
  v_objCur      objCur%rowtype;
begin
     open objCur;
     loop
       fetch objCur
          into v_objCur;
        exit when objCur%notfound;
        
      v_sql:='alter table INCOMESEC.'||v_objCur.table_name||' nologging';
       execute immediate v_Sql;
       commit;        
      v_sql:='delete from INCOMESEC.'||v_objCur.table_name||'';
       execute immediate v_Sql;
       commit;
       begin
       v_sql:='insert /*+append*/ into INCOMESEC.'||v_objCur.table_name||'
        select * from '||v_objCur.Owner||'.'||v_objCur.table_name||'@DB_SYDB_LINK';
         execute immediate v_sql;
         commit;
         
       v_sql:='alter table INCOMESEC.'||v_objCur.table_name||' logging';
       execute immediate v_Sql;
       commit;
       
       exception
         when others then
        --insert into table_bak values (v_objCur.table_name);
        v_resultcode := v_objCur.table_name;
        v_resultinfo := SQLERRM;
         end;
      end loop;
  close objCur;
end;


end PKG_INDB_CBSS;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle是当今各领域中应用比较广泛的一个大型关系型数据库产品,它以其所拥有的稳定、可伸缩性强以及安全可靠等特性受到越来越多的系统开发人员的青睐,正成为企业开发信息系统的首选产品。同其他数据库管理系统相比,Oracle产品较为庞大而复杂,因此,令许多数据库管理系统的学习者在Oracle面前止步不前,究其原因,主要是无法掌握Oracle技术的脉络。本书正是根据作者在高校和各种数据库培训班执教多年的教学经验,结合开发应用Oracle数据库的实践经验编撰而成的,书中编排的内容次序非常适合于读者学习和把握Oracle的脉络,书中所选择的问题都是在实际开发应用Oracle过程中经常遇到和所要解决的。通过学习解决这些问题的方法,可以使读者比较深入地认识和掌握Oracle技术的内涵,快速地进入开发角色。本书共分11章。第1章Oracle的安装卸载与使用环境,主要包括Oracle安装环境及方法,安装后的基本环境及服务,Oracle卸载,还包括验证数据库的安装,系统临时空间不足、监听服务无法启动以及Oracle默认帐户/口令等问题的精讲。第2章 Oracle体系结构,包括Oracle数据库逻辑结构和数据库物理结构以及Oracle文件的目录结构等。在案例精讲中对数据块校验、的移动、数据文件丢失或损坏、丢失控制文件、数据文件更名以及数据库内文件的复制传输等问题的解决做了全面细致的讲解。第3章SQL及PL/SQL的运行环境及其他开发工具。第4章 Oracle数据字典管理与数据类型。包括数据字典的分类、使用方法以及各种对象的具体查询等做了详细的介绍。第5章 数据库对象的创建与使用。主要包括各种类型的创建以及适用情形,如外部、分区、嵌套、全局临时等;完整性约束的管理;索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对压缩、约束的使能与失能、的层次结构查询、防止删除及对象、提取创建外键约束的脚本以及在线重新定义结构的方法做了详细讲解。第6章 PL/SQL程序设计。介绍了PL/SQL中常用的函数、异常处理等,还有对随机数生成、分析函数、多合并、多插入等问题的解决方法。第7章 子程序和触发器,包括函数、存储过程、包以及触发器等。对子程序的调用者权限、管道函数、传递触发器标识:new和:old以及自治事务也给出了具体的解决方法。第8 章 LOB与面向对象的数据管理. 第9章 Oracle的监听器和网络设置。包括Oracle网络体系结构,Oracle Net参数文件的管理,监听器与网络连接配置等。针对应用中经常出现问题,如保护与设置监听器,监听器远程管理,端口号,客户机与服务器的连接,外部过程调用,不能解析服务名以及没有监听器等都给出了详细的解决方法。第10章 数据库管理,包括导出数据库模式的DDL脚本,管理Oracle数据库实例的方法、数据恢复与Flashback以及更改数据库字集等具体方法。第11章 数据库的安全管理。包括加密Oracle子程序,存储应用程序用户名和口令,禁止修改删除数据库对象,Oracle数据加密以及丢失SYSMAN及资料档案库用户口令的解决方法。书中给出了丰富的图,多数图例是作者根据多年实践总结出来的,图示简练准确,易于理解,并附有解决问题的具体步骤方法和相应的脚本。读者对象:面向各种培训班学员,高校相关专业的学生, Oracle应用开发人员以及Oracle数据库的学习者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值