IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Faire planter ma procédure


Sujet :

PL/SQL Oracle

  1. #1
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut Faire planter ma procédure
    Bonjour à tous,

    Oui, vous avez bien lu, là où tout le monde chercher à résoudre des plantages, moi j'aimerai que ca plante justement, et je sais pas comment m'y prendre.


    J'utilise la procédure suivante :

    1-j'extrais une liste de contrat de ma table extraction

    2-Boucle sur la liste des contrats
    • j'extrais des informations sur ces contrats que je stock dans un curseur
    • je met à jour ma table extraction = OK pour chaque contrat correctement extrait
    Fin de la bouche

    3-Je parcours ce curseur pour ecrire un fichier

    4-Je commit


    Alors je précise tout de suite, on est pas la pour revoir mon algorithme, je ne cherche absolument pas à modifier le code qui n'est pas le mien, c'est vraiment un cas de test de plantage que je cherche.

    Je voudrais que ca plante entre 3 et 4, c'est à dire, soit ca plante pendant l'ecriture du fichier (mais faut que l'écriture ait commencé tout de même) soit que ca plante au moment du commit...

    Et ce que vous auriez une idée de comment je peux faire ca ?

    Merci d'avance.

    Steven

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Pour faire planter (pour test je suppose ?), vous pouvez provoquer une exception de votre choix à l'aide de la commande RAISE au moment opportun.

    Ici je provoque l'apparition de l'erreur prédéfinie ORA-00600 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
        ORA600 exception;
        pragma exception_init(ORA600, -600);
    begin
        raise ORA600;
    end;
    /
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    C'est une bonne idée, merci
    mais je ne peux pas modifier le code. Il s'agit d'un test d'intégration, et donc l'idée serait vraiment de me mettre dans un cas où soit l'écriture de mon fichier, soit le commit plante.

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Créez un fichier assez grand pour attendre la limite du système d'exploitation.
    Pour le commit je ne pense pas que vous pouvez vraiment tester sans intervenir dans le code. La seule solution que je vois sera d'empêcher le logwriter d'écrire les enregistrements de redo log restantes....
    Et le but d'un tel test est au moins irraisonnable.

  5. #5
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Ha, c'est une bonne idée ca ^^
    je vais saturer l'espace disk pour que l'ecriture fichier plante... c'est exactement ce que je veux, car au final, je vais n'avoir qu'un bout de fichier...
    merci pour cette idée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire planter son programme Cobol ?
    Par faluma dans le forum Cobol
    Réponses: 11
    Dernier message: 10/01/2008, 12h25
  2. Réponses: 1
    Dernier message: 14/08/2007, 11h14
  3. Le css peut il faire planter un ordi ?
    Par 12monkeys dans le forum Windows XP
    Réponses: 7
    Dernier message: 12/01/2007, 13h42
  4. Comment faire une fonction - procédure
    Par Madmac dans le forum C
    Réponses: 14
    Dernier message: 12/08/2006, 09h57
  5. Est il possible de faire planter un système Unix
    Par Patrick PETIT dans le forum Administration système
    Réponses: 15
    Dernier message: 15/06/2004, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo