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 /
看有错误没有。。呵呵
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>
看看能不能返回结果