Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1471 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Debug - Forcer le plantage dans cas particulier...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Debug - Forcer le plantage dans cas particulier...

n°803447
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-07-2004 à 16:45:06  profilanswer
 

Y'a moyen sous Oracle de forcer ce dernier à retourner une erreur lorsqu'une requête SELECT ne tape pas dans un champ ?
 
Ouais, c'est très con, mais en fait je viens d'apporter une modif conséquente à une certaines tables d'une base de données, et en plus de ma recherche dans le code, je voudrais que l'appli plante purement et simplement lorsqu'elle va tenter d'éxécuter une requête que je n'ai pas mis à jour (ça sera plus facile pour débuger, et au moins je suis sûr que je n'oublierai rien...)
 
C'est possible vous pensez ?
 
A noter que ce champ que j'ai rajouté est présent dans tous les index de toutes les tables...


Message édité par Arjuna le 22-07-2004 à 16:45:35
mood
Publicité
Posté le 22-07-2004 à 16:45:06  profilanswer
 

n°821287
riccardo59
Posté le 12-08-2004 à 12:00:51  profilanswer
 

tu peux utiliser les déclarations des exceptions:
error_name EXCEPTION;
PRAGMA EXCEPTION_INIT (constraint_violated, -xxxxx);
 
ou xxxxx correspond à un numéro d'erreur Oracle (number invalid, ....) Ces numéro sont référence dans tout bon bouquin ou site sur Oracle et son administration.
 
Ensuite, dans ton script:
BEGIN
   SELECT ..........
EXCEPTION WHEN error_name THEN
   insert into error_table(tesxt)values('Champ manquant');
END;
 
Cdt

n°821304
Arjuna
Aircraft Ident.: F-MBSD
Posté le 12-08-2004 à 12:07:57  profilanswer
 

Je ne suis pas sûr d'avoir compris ta réponse.
 
En fait, exemple pratique.
 
Dans ma table "EVE", j'ai quelques 5 000 000 de lignes.
L'ancien index unique était :
(TYPTIE, SIGTIE, TYPEVE, NUMEVE)
 
Seulement, afin de prévoir un mode multi-société, j'ai rajouté le champ CODSOC, qui est biensûr présent dans mon index unique.
 
Il en résulte des performances catastrophiques si je n'utilise pas ce champ dans ma clause WHERE (pas d'utilisation de l'index unique)
 
Je voudrais donc savoir si y'a moyen de forcer Oracle à retourner une erreur lorsque ce champ n'est pas présent dans la clause WHERE de n'importe quel type de requête (SELECT, INSERT, UPDATE, DELETE)
 
Car j'ai bien recherché dans tout mon code pour vérifier que mes requêtes sont mises à jour, mais je préfèrerais avoir une sécurité supplémentaire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Debug - Forcer le plantage dans cas particulier...

 

Sujets relatifs
Connaitre la version d'un dump oracle (8i ou9i)Type de donnée LONG dans SELECT Oracle
Sauvegarde BD oracle avec VB[Oracle] Droit lecture uniquement
[Oracle] Nombre d'instruction maximum d'un bloc d'éxecutionocilogon - attaquer une base oracle avec php
[ASP - Oracle] Je suis complètement chèvre ou quoi ?[C++] Bug en release et pas en debug (Visual C++)
Probleme d'acces Oracle Management ServerPlantage inexpliqué dès que je touche à un .h
Plus de sujets relatifs à : [Oracle] Debug - Forcer le plantage dans cas particulier...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR