Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2007, 16h13   #1
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Par défaut [Forms] pll fonction distante ORA-04067

Problème Oracle 9.2.0.6 :
Base 1 : Une fonction F_TEST() qui select 2 tables et renvoie un varchar2
Base 2 : DBLINK vers Base 1
Une Forme : TRIGGER ON-ERROR appelle une fonction F_ERROR dans une librairie PLL
Une Pll : Fonction F_ERROR appelle F_TEST()

1/ J'ai créé un public synonym F_TEST for F_TEST@BASE1
=> ORA-04067 lorsque loggué sur Base2

2/ sous TOAD, un appel F_TEST marche.

3/ Si je déporte le code de F_ERROR (pll) dans le ON-ERROR (fmb)
=> ca marche !!

4/ Si je crée la fonction sur Base2 (synonym sans le dblink)
=> ca marche (normal)

Avez vous une idée ?
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h22   #2
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
comment appelles tu ta fonction ?

à partir du fmb tu peux faire :

Code :
toto := fct_test (args ) ;
par contre, la bibli n'étant ( pas connectée !) il faudrait peut être saisir

Code :
SELECT fct_test (args ) INTO toto FROM dual;

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 16h39   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Citation:
Envoyé par taska
par contre, la bibli n'étant ( pas connectée !) il faudrait peut être saisir

Code :
SELECT fct_test (args ) INTO toto FROM dual;
CDLT.
La bibli est forcemment connectée, sinon le select from dual ne marcherait pas.
Le code de la bibli est
Code :
MESSAGE('ERREUR:' || F_TEST(145));
Je ne peux pas modifier le code de la bibli (multi appli)
Code :
1
2
SELECT f_test(145) INTO v_char FROM dual; 
message('Erreur:' || v_char)
Faudrait que je teste avec une copie de la bibli modifée comme ceci.

Le souci c'est que ca marche très bien sur la Base1, mais pas sur la base2 en dblink.
Quelle différence entre une bibli et une forme ?
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 18h54   #4
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
Apparement cela ne vient pas de la PLL;

J'ai trouvé ceci sur metalink :

Citation:
In Forms 6i and higher referencing a synonym to a database linked procedure / function will always fail. The reason for this is discussed in a number of bugs. For example:

Bug 2718293 Abstract: NOT ABLE TO EXECUTE THE FUNCTION/PROCEDURE THROUGH DB LINK FROM FORMS

Bug 5027172 Abstract: RUNTIME ERRORS ORA-4062/ORA-3113 AND ORA-2019 RELATED TO SYNONYM W/ DBLINK
which wasBug 5027172 Abstract: RUNTIME ERRORS ORA-4062/ORA-3113 AND ORA-2019 RELATED TO SYNONYM W/ DBLINK
which was closed as a duplicate of
Bug 508327 Abstract: RPC: CLIENT-SIDE PROBLEM: SYNONYM-->FOO@DBLINK; WORKED WITH PL/SQL V1 ON CLIENT;
Citation:
Bug 5027172 - Runtime Errors Ora-4062/Ora-3113 And Ora-2019 Related To Synonym W/ Dblink

Whenever form references a procedure / package that references a synonym with a database link, at runtime on of the following errors are received:
ORA-4062 timestamp/signature of %s has been changed (When compiled against a local package / synonym and run against a database with a synonym that includes a DB link)

Citation:
Available workarounds:

---------------------

Do not a synonym for packages, functions, procedures with a DBLINK. Define
each of the necessary packages, functions, procedures locally.

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 09h32   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Merci.

En fait sur un autre prog, un developpeur avait d'autres soucis sur une procédure, on a créé une fonction, pareil.

Je vais demander au dba d'avoir un accès à Métalink.. ca me manque.

Je vais aussi chercher pourquoi ma premiere fonction a marché.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h13.


 
 
 
 
Partenaires

Hébergement Web