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 :

Erreur sur DROP constraint


Sujet :

PL/SQL Oracle

  1. #1
    Membre éclairé

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Billets dans le blog
    1
    Par défaut Erreur sur DROP constraint
    bonjour j'ai une table supplier qui contient plusieurs contraints.J'ai voulu faire un curseur pour supprimer toutes les contraintes.voici la requete de suppression des contraintes
    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
    19
    20
     
    declare
    nom varchar2(255);
     
    cursor cur is select constraint_name from user_constraints where table_name='SUPPLIER';
    BEGIN
    open cur;
    loop
    fetch cur into nom;
    exit when cur%notfound;
    execute immediate 'alter table '|| SUPPLIER ||' drop contraint '||nom;
    end loop;
     close cur;
    EXCEPTION
      WHEN OTHERS THEN
        IF SQLCODE != -2443 THEN
          RAISE;
        END IF;
     
    end;
    voici mon message d'erreur
    Erreur commençant à la ligne 1 de la commande :
    declare
    nom varchar2(255);

    cursor cur is select constraint_name from user_constraints where table_name='SUPPLIER';
    BEGIN
    open cur;
    loop
    fetch cur into nom;
    exit when cur%notfound;
    execute immediate 'alter table '||SUPPLIER ||' drop contraint '||nom;
    end loop;
    close cur;
    EXCEPTION
    WHEN OTHERS THEN
    IF SQLCODE != -2443 THEN

    RAISE;
    END IF;

    end;
    Rapport d'erreur :
    ORA-06550: Ligne 10, colonne 35 :
    PLS-00357: Référence de Table, Vue ou Séquence 'SUPPLIER' non autorisée dans ce contexte
    ORA-06550: Ligne 10, colonne 1 :
    PL/SQL: Statement ignored
    06550. 00000 - "line %s, column %s:\n%s"
    *Cause: Usually a PL/SQL compilation error.
    *Action:
    nb:j'ai tjrs ce pb avec une autre table meme n'ayant qu'une seul contrainte.cad
    PLS-00357: Référence de Table, Vue ou Séquence non autorisée dans ce contexte

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Execute immediate exécute une chaine de caractère

    que vaut la variable SUPPLIER dans le code suivant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'alter table '|| SUPPLIER ||' drop contraint '||nom;

    Il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'alter table SUPPLIER drop contraint '||nom;
    et pour info, il vaut mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ;
    BEGIN
    FOR r IN (select constraint_name from user_constraints where table_name='SUPPLIER')
    loop
    execute immediate 'alter table SUPPLIER drop contraint '|| r.constraint_name;
    end loop;
    EXCEPTION
      WHEN OTHERS THEN
        IF SQLCODE != -2443 THEN
          RAISE;
        END IF; 
    end;

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 132
    Par défaut
    Et si tu essayais avec drop constraint au lieu de drop contraint ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  2. [VBS] Erreur sur "AddWindowsPrinterConnection"
    Par Admin dans le forum VBScript
    Réponses: 5
    Dernier message: 27/03/2004, 16h15
  3. Erreur sur serveur lié
    Par k-lendos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2004, 15h21
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

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