Više o funkcijama stvaranja i zatvaranja veze

Možete odrediti PL/SQL funkcije za sustav Publisher za izvršavanje kad se uspostavi veza s izvorom podataka JDBC (funkcija prije procesa) ili se zatvori (funkcija poslije procesa).

Funkcija mora vratiti Booleovu vrijednost. Ova značajka podržana je samo za Oracle baze podataka.

Ova dva polja omogućuju administratoru postavljanje korisničkih kontekstualnih atributa prije nego što se uspostavi veza s bazom podataka, a zatim odbacivanje atributa nakon što program za izvlačenje prekine vezu.

Sistemska varijabla :xdo_user_name može se upotrijebiti kao bind varijabla kako bi se korisničko ime za prijavu proslijedilo u PL/SQL funkcijske pozive. Postavljanje konteksta za prijavu korisnika na ovaj način omogućuje vam da zaštitite podatke na razini izvora podataka (a ne na razini SQL upita).

Na primjer, pretpostavimo da imate sljedeću funkciju uzorka:

FUNCTION set_per_process_username (username_in IN VARCHAR2)
   RETURN BOOLEAN IS
     BEGIN
     SETUSERCONTEXT(username_in);
     return TRUE;
   END set_per_process_username

Za pozivanje ove funkcije pri svakom uspostavljanju veze s bazom podataka unesite sljedeće u polje Funkcija prije procesa: set_per_process_username(:xdo_user_name)

Još jedna upotreba uzorka može biti umetanje retka u LOGTAB tablicu svaki put kad korisnik uspostavi ili prekine vezu:

CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2) 
RETURN BOOLEAN AS
   BEGIN
   INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode);
   RETURN true;
   END BIP_LOG;

U polje Funkcija prije procesa unesite: BIP_LOG(:xdo_user_name)

Kad se nova veza uspostavi s bazom podataka, prijavljena je u LOGTAB tablici. Vrijednost SMODE definira aktivnost kao ulaz ili izlaz. Ako i ovu funkciju pozovete kao Funkciju poslije procesa vratit će se rezultati slični rezultatima koji su prikazani u tablici u nastavku.