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 29/01/2007, 12h22   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 75
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 75
Points : 11
Points : 11
Par défaut [Forms 10g] Problème lors de l'exécution d'un trigger

Bonjour,

Après migration en 10g, la requête ci-dessous
Code :
1
2
3
4
5
6
 
SELECT c_etab,c_guichet,c_compte,c_cle_compte,l_dom_bq
INTO 	:decomptes.c_etab,:decomptes.c_guichet,
	:decomptes.c_compte,:decomptes.c_cle,:decomptes.l_etab
FROM solde
WHERE c_nls=:admin.c_nls;
où les 5 variables :decomptes.c_etab, :decomptes.c_guichet, ... représentent des champs basés d'un bloc de données basé

remonte le message
Citation:
FRM-40735 : Le déclencheur ON-ERROR a détecté une exception ORA-06502 non traitée
Celle-ci fonctionnait parfaitement sous Forms 4.5

Y a-t-il une contre-indication sous Forms 10g de remplir des blocs basés à partir d'une requête SQL ?? ...

Merci pour votre aide.

Si vous avez besoin davantage de précision, n'hésitez pas.

Bonne journée.

Fabien DUBOIS
duboisfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 12h25   #2
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Il s'agit d'un dépassement de capacité : vérifiez que chaque variable de la clause INTO est du type ET de d'une profondeur suffisante pour la colonne correspondante du SELECT.
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 13h13   #3
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 75
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 75
Points : 11
Points : 11
C'est en parfaite adéquation tant au niveau du type que de la profondeur de champ.

Ce qui est curieux, c'est que le message apparaît 5 fois à l'écran, apparemment pour chaque valorisation dans le INTO
duboisfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 14h25   #4
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Et pour la variable suivante ?
D'autre part, si vous exécutez cette requête avec les valeurs des variables substituées sous SQLPlus, cela produit-il le même message d'erreur ?
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 14h46   #5
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 75
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 75
Points : 11
Points : 11
Aucun pb avec le type et la profondeur de la variable c_nls.

Sous SQLPlus, la requête s'exécute bien.

Par ailleurs, j'ai remarqué qu'en passant la propriété 'Element de bloc de données' de 'yes' à 'no' pour chacun des 5 éléments du bloc Decompte entrant dans la clause INTO, le message n'apparaîssait plus.

Avez-vous une explication ???

Ma solution n'est de toute façonpas pérenne puisque à l'ouverture de mon écran ces 5 champs sont remplis lors de l'exéction d'un ordre EXECUTE_QUERY sur la table DECOMPTE.

J'espère que ça va vous mettre sur la voix.

Merci
duboisfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 15h12   #6
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Pour moi il y a une contradiction dans ce que vous dîtes :
Citation:
Envoyé par duboisfa
où les 5 variables :decomptes.c_etab, :decomptes.c_guichet, ... représentent des champs basés d'un bloc de données basé
et

Citation:
Envoyé par duboisfa
j'ai remarqué qu'en passant la propriété 'Element de bloc de données' de 'yes' à 'no' pour chacun des 5 éléments du bloc Decompte entrant dans la clause INTO, le message n'apparaîssait plus
Vous comprenez que cette propriété détermine l'origine des valeurs de ces items.
Si vous positionnez à 'Non' et que vous n'affectez pas une valeur explicitement alors, lors de l'exécution de votre requête, les variables du bloc doivent être à NULL.
Pour vous en convaincre, afficher le contenu de vos variables de blocs avant l'exécution de la requête ou utilisez le déboggueur.
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 15h21   #7
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 75
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 75
Points : 11
Points : 11
Parfaitement d'accord avec ton explication, c'était juste pour faire un test.

Ceci dit, je viens de remarquer quelque chose de plus étrange encore. En exécutant mon trigger sous Windows à partir de Forms Builder 10g, aucun message d'erreur n'apparaît. Par contre, à partir de mon serveur d'applis Oracle Forms&Reports Services 10g sous Linux, le message d'erreur s'affiche.

Une idée là-dessus ??

Merci.
duboisfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 17h33   #8
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 75
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 75
Points : 11
Points : 11
Vous n'avez pas de piste ??
duboisfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 17h37   #9
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Votre dernier post me rend perplexe.
Mes connaissances ne sont pas assez pointues pour vous répondre.
Je ne saurais que trop vous conseiller que de fouiller sur Metalink ou sur internet...
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 22h05   #10
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
en Forms 9i , il faut utiliser :name_in , copy ...

http://sheikyerbouti.developpez.com/...0g/?page=Chap7

allez, un p'tit effort ....


CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 09h29   #11
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
Pas du tout, tu peux continuer à utiliser les :decompte.item := en forms 9 et 10.. heureusement sinon je te dis pas l'enfer des migrations.

Bref, duboisfa on va reprendre du début :
Donne le nom du trigger et le code complet.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h12.


 
 
 
 
Partenaires

Hébergement Web