如题,感谢各位大虾鼎力相助!

解决方案 »

  1.   

    select * from dual@dblink
    看有错误没有。。呵呵
      

  2.   

    1楼的就可以了.使用dual表比其他表要好一些.
      

  3.   

    select * from tb@dblink
      

  4.   

    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as icdwf_04a
     
    SQL> 
    SQL> --创建一个函数
    SQL> CREATE OR REPLACE FUNCTION DbLinkIsOk(i_DbLinkName VARCHAR2) RETURN BOOLEAN IS
      2  BEGIN
      3    EXECUTE IMMEDIATE 'select * from dual@' || i_DbLinkName;
      4    RETURN TRUE;
      5  EXCEPTION
      6    WHEN OTHERS THEN
      7      RETURN FALSE;
      8  END;
      9  /
     
    Function created
    SQL> SET SERVEROUTPUT ON;
    SQL> --测试1
    SQL> BEGIN
      2    IF DbLinkIsOk('AA') THEN
      3      dbms_output.put_line('dblink连接正常');
      4    ELSE
      5      dbms_output.put_line('dblink连接异常');
      6    END IF;
      7  END;
      8  /
     
    dblink连接异常
     
    PL/SQL procedure successfully completed
    SQL> --测试2
    SQL> BEGIN
      2    IF DbLinkIsOk('testdblink') THEN
      3      dbms_output.put_line('dblink连接正常');
      4    ELSE
      5      dbms_output.put_line('dblink连接异常');
      6    END IF;
      7  END;
      8  /
     
    dblink连接正常
     
    PL/SQL procedure successfully completed
     
    SQL> 
      

  5.   

    select 1 from dual@<link_name>
    看看能不能返回结果