或者换一种说法
我的库里面有个表A
远程数据库orcl也有这表A
当表A被插入数据的时候 
给远程数据库orcl的表A同步这条数据
当orcl异常的时候就吧这条数据保存到日志库里面去这个需求 要怎么完成

解决方案 »

  1.   

    你DBLINK建立的有问题,报错不是说明了
      

  2.   

    对啊
    我就希望当dblink有问题的时候执行插入我本地的日志表里面去啊
      

  3.   

    我模拟了下你的上面的代码运行正常,看你的报错原因可能是ORA-00604: 递归 SQL 级别 1 出现错误 导致的。
    解决ORA-00604: 递归 SQL 级别 1 出现错误的方法是:
    该错误最常见的原因是数据库文件\oracle\product\10.2.0\admin\orcl\pfile\init.ora中的参数open_cursors值太小。可以修改init.ora文件,open_cursors的值一般为255,我的是300。修改完后,关闭下ORACLE,再重新启动。你试下,不知道行不行。
      

  4.   

    考虑过自治事物么,可以直接在你的触发器exception中调用一个使用了自治事物的存储过程,实现将异常数据插入到你本地库的log表里面,不知道这样是否符合你的要求。
      

  5.   

    自洽事务是吧?
    我去看看资料的.刚开始弄oracle的数据库
      

  6.   

    看懂了,不行,这里的主要问题是我触发器中的错误不能捕捉,而不是写不到日志表中去.
    我根本跳不到exception上面去
      

  7.   

     你捕获exception时候  直接捕获 others 也捕获不到么?这样:
    exception
      when others  then
       ... end ;
      

  8.   

    yes,网络断掉的话 直接不能编译,连着网络编好再断网的话,再重新编译会报错
    不编译直接运行则报超时异常
      

  9.   

    DECLARE
     num number;
     BEGIN
         BEGIN
           EXECUTE IMMEDIATE 'select count(*) from dual@os_ns';
                   dbms_output.put_line('ok');    
           EXCEPTION
               WHEN OTHERS THEN
                 dbms_output.put_line('timeout');       
                  raise;
          END;
          
          DBMS_OUTPUT.put_line('continue....');
     END;这样应该能抓取到dblink连接不通异常,然后抛出,可否满足你的需要
      

  10.   

    编译错误ORA-12170 tns:连接超时.....
      

  11.   

    关注这个: ORA-12170: TNS: 连接超时,你对@orcl5数据库有监听吗?测试一下连得上不?    继续关注。
      

  12.   

    http://bbs.csdn.net/topics/390762611#new_post
      

  13.   

    没积分发问题
    级联表 比如省市选择,有ID,PARENT_ID和NAME字段,其中NAME值类似于“河北省”,“唐山市”。
    请问如何通过sql语句实现为每条记录增加一列FULL_NAME,例如 “河北省-唐山市”。