Bonjour,

Environnement :weblogic 12c,forms12c,bd12c.

j'ai configuré le user et password en dur dans ma forme, dans trigger on-logon.
Le dba nous a demandé de trouver une autre solution à ce problème et de ne pas le codé en dur.
J'ai crée une procédure et un code dans trigger on-log ci-dessous.

j'ai egalement cree un fichier connection.ini où j'ai mis user,password et chaine de connection. j'ai placé ce fichier dans une directory sur le serveur de base de données,j'ai attribué les privilèges read,write à public.

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
 
create or replace PROCEDURE chema.Get_Connection_Info(Usr OUT Varchar2, Pwd OUT Varchar2, Conn OUT Varchar2) IS
FP UTL_FILE.FILE_TYPE; 
Tmp_Line Varchar2(4000);
BEGIN
FP := UTL_FILE.FOpen('directory_name','connection.ini', 'r');
Begin
Loop
UTL_FILE.Get_Line(FP, Tmp_Line);
Exit When Tmp_Line IS NULL;
If SubStr(Tmp_Line, 1, InStr(Tmp_Line, '=') - 1) = 'user_name' Then
Usr := SubStr(Tmp_Line, InStr(Tmp_Line, '=') + 1);
ElsIf SubStr(Tmp_Line, 1, InStr(Tmp_Line, '=') - 1) = 'password' Then
Pwd := SubStr(Tmp_Line, InStr(Tmp_Line, '=') + 1);
ElsIf SubStr(Tmp_Line, 1, InStr(Tmp_Line, '=') - 1) = 'connect_string'
Then
Conn := SubStr(Tmp_Line, InStr(Tmp_Line, '=') + 1);
End If;
End Loop;
Exception
When NO_DATA_FOUND Then
NULL;
End;
UTL_FILE.FClose(FP);
END;
Le contenu du trigger est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Declare
User_Name Varchar2(100);
Pwd Varchar2(100);
Conn_Str Varchar2(100);
Begin
Get_Connection_Info(User_Name, Pwd, Conn_Str);
Logon(User_Name || '@' || Conn_Str, Pwd);
End;
Le problème, c'est quand j'exécute la forme je recois les erreurs suivantes :frm-40735 ora-03114

Merci