Bonjour,
Nota : je suis débutant sur bdd Oracle.
Le contexte :
J'ai récupéré une "application".
En gros, c'est une base Oracle relais qui récupère des données d'applications et qui fourni d'autres applications. Le tout grace à des .bat et des .sql qui utilisent CFT, sqlldr et sqlplus. Une centaine de tables, autant de vues, une quarantaine de .bat et le double de .SQL. Cool...![]()
Ah, j'oubliais, le précédent développeur à décider qu'il n'y aurait pas ni identifiants ni clés primaires de définies dans les tables...
On peut visualiser certaines données grace à une application web créé par CodeOnTime (http://codeontime.com/).Certaines tables sont même en écriture !
Ah...oui, c'est bien, mais la MOA vient de s'apercevoir que l'on peut faire des doublons.
Je doit donc faire une "business rule" en SQL dans CodeOnTime avant l'insertion/modification pour éviter les doublons. La doc de COT ne connait quasiment que SQL Server (moi aussi d'ailleurs !).
Donc le script de test avant insertion/modification est:
:ENTITE_PC et :SETID correpondent au données que je veux Ajouter/Modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 begin declare Existe Decimal; begin select count(*) into :Existe from MaTable where ENTITE_PC= :ENTITE_PC and SETID = :SETID; IF :Existe > 0 then :BusinessRules_PreventDefault :=1; :Result_Focus :='Le Machin ' + :ENTITE_PC + ' ' + :SETID +' existe déjà.'; :Result_ShowViewMessage := 'Erreur lors de lexécution de la commande ' + :Arguments_CommandName ; End if; end; end;
:BusinessRules_PreventDefault, :Result_Focus, :Result_ShowViewMessage et :Arguments_CommandName sont propres à COT et indique , s'il y eu une erreur; les messages d'erreur ainsi que le type de "command" (insert ou update).
Ca fonctionne dans SQLDevelopper, mais dans l'application WEB j'ai cette erreur :
J'ai tracé le code généré par COT dans Visual Studio et les variables sont bien envoyées en paramétres à la requête.ORA-01008: toutes les variables ne sont pas liées
Si quelqu'un pouvait m'aiguiller, mes deux collegues connaissnt Oracle sont en congés jusqu'a fin août, et je doit faire une MEP le 2 septembre![]()
Partager