Bonjour

j'ai la fonction ci-dessous qui teste l'existence d'un DB_LINK.

Ma première question est : qu'est-ce qu'un DB_LINK exactement ? (De ce que j'en sais actuellement c'est plus ou moins une chaîne de connexion à une base ?)

Ma seconde est : si le DB_LINK est trouvé, la fonction sort avec TRUE mais le CURSOR n'est pas fermé. Est-ce que si je ferme le curseur après le FETCH je peux encore tester le %FOUND ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FUNCTION FB_TST_DBLINK (P_DBLINK ZSYS.A_DBK%TYPE)
 RETURN BOOLEAN
IS
 
CURSOR cur_dblink (p_dblink in zsys.a_dbk%type) IS
SELECT sysdate from dual@p_dblink;
 
rec_dblink cur_dblink%rowtype;
 
BEGIN
 
OPEN cur_dblink(p_dblink);
 
FETCH cur_dblink INTO rec_dblink;
	IF cur_dblink%found THEN
		RETURN TRUE;
	END IF;
CLOSE cur_dblink;
 
RETURN FALSE;
 
EXCEPTION
WHEN OTHERS
     pck_g_mes.pb_cre_mes_exc ('fb_tst_dblink');
END FB_TST_DBLINK;
Merci.