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

Oracle Discussion :

la clause IF EXISTS sous Oracle


Sujet :

Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut la clause IF EXISTS sous Oracle
    Bonjour tout le monde

    mon problème est que je veux réaliser ce bout de code dans ma procédure,
    en fait je cherche ç inclure un contrôle technique d'existence de la contrainte avant de la supprimer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BEGIN
    IF EXISTS(SELECT constraint_name FROM USER_CONSTRAINTS WHERE (constraint_name='Nom_contrainte' and TABLE_NAME=Nom_table'))
    Then execute immediate'ALTER TABLE '||nomschema||'.DIM_EXPLOITATION DROP CONSTRAINT  Nom_contrainte';
    END IF;
    et je reçois cette erreur

    Numéro de ligne = 6 Numéro de colonne = 1 Texte d'erreur = PL/SQL: Statement ignored

    j'ai cherché sur le forum, j'ai trouvé que la clause EXISTS est utilisé sous WHERE, mais je n'ai pas reussi à trouver un moyen de l'adapter à mon besoin exprimé plus haut.

    merci d'avance pour toute aide

    Cordialement

  2. #2
    Expert confirmé 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
    Par défaut
    Lire la documentation, y compris des exemples ça aide toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Declare
      l_Bidon  Varchar2(1);
    Begin
      Select Null
        Into l_Bidon
        From Dual
       Where Exists (Select Null
                       From user_constraints
                      Where constraint_name = 'CONS_NAME' 
                        And table_name      = 'TABLE'
                     )
      -- Si je suis la c'est que la contrainte existe
      Execute Immediate 'Alter TABLE ...'); -- Attention ça va faire un commit implicit
    Exception
      When NO_DATA_FOUND Then
        Null; -- c'est OK la contrainte n'existe pas
    End;

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut
    Merci beaucoup pour votre réponse, ça marche

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

Discussions similaires

  1. test existence vue sous oracle
    Par locs dans le forum PL/SQL
    Réponses: 16
    Dernier message: 08/01/2009, 13h50
  2. Clause ASSERT() sous Oracle
    Par Yoh dans le forum Oracle
    Réponses: 4
    Dernier message: 22/10/2007, 15h30
  3. clause LIMIT sous oracle
    Par youp_db dans le forum SQL
    Réponses: 2
    Dernier message: 07/06/2007, 12h55
  4. [DEBUTANT] IF EXISTS sous oracle
    Par tripper.dim dans le forum SQL
    Réponses: 2
    Dernier message: 18/05/2007, 11h12
  5. [Oracle 9i] Optimisation clause not exists
    Par mjolymelot dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/08/2006, 17h20

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