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

SQL Oracle Discussion :

comment supprimer une colonne et une ligne ds SQL+sous oracle 8.0.5.0.0


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut comment supprimer une colonne et une ligne ds SQL+sous oracle 8.0.5.0.0
    bonjour,
    je suis nouveau dans ce forum et j'aimerai bien vous remercier pour ce site qui est vraiment super et trés interessant.
    alors comme je suis un débutant en base de donnée j'arrive pas a supprimer une colonne que j'ai déja crée et idem pour une ligne voici ce que j'ai fait comme commande
    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
     
    SQL> desc etudiant
    Name Null? Type
    ------------------------------- -------- ----
    NOM NOT NULL VARCHAR2(30)
    PRENOM VARCHAR2(30)
    DATE_NAISSANCE DATE
    ANNEE DATE
    SPECIALITE VARCHAR2(40)
    NOTE NUMBER(8,2)
     
    SQL> ALTER TABLE etudiant DROP COLUMN annee;
    ALTER TABLE etudiant DROP COLUMN annee
    *
    ERREUR à la ligne 1:
    ORA-00905: Mot-clé absent
    alors si quelqu'un peux m'aider s'il vous plait ou me donner une suggestion et merci d'avance pour votre aide.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Bonjour.

    Cette commande n'est valable qu'à partir d'Oracle 9i.
    --> voir ce guide

    Une solution, si cette table n'est pas liée à une autre, est de la recréer:
    --> créer une table "etudiant2" sans la colonne annee, droper la table "etudiant", la recréer à l'identique de "etudiant2".

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci de votre réponse mais j'ai déja pensé à ta solution le pb qu'il ya que a chaque fois ke je vais commettre une erreur je dois supprimer la table et la refaire une deuxieme fois et s'elle contient plusieurs données ce serai une perte de temps n'est ce pas alors je trouve que c'est pas pratique de faire ca
    et merci encore pr ton idée

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Malheureusement, je ne vois pas d'autre option. Il faut dire qu'on ne crée pas des tables toutes les 5 minutes, et encore moins en se trompant.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oracle 8.0.5 ? Cette version date de 1998.
    Pourquoi travailler avec ce produit qui n'est plus supporté par l'éditeur ?

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    c'est simple parcequ'on utilise cette version dans notre école et on aura un exam dans cette version tu comprends maitenant alors qsi tu connais un tutoriel sur cette version je serai trés reconnaissant et merci pour votre réponse

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Goldoz vous a donné la solution.

    Vous pouvez trouver la documentation Oracle 8.1.7 sur http://tahiti.oracle.com/, mais ce n'est pas la même version.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci infiniment mais je pense que je viens de trouver une solution sur le net.
    voila ce qu'il faut faire:
    premierement
    On crée la table test par exemple , mettre quelques index
    /*
    || Creation et remplissage de la table d'ou on veut extirper une colonne
    || Creation de quelques index, juste pour voir ;-)
    || N'oublions pas de la créer dans un endroit non SYSTEM
    */
    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
    21
    22
     
    set echo on 
    drop table tab_col_drop; 
    create table tab_col_drop ( 
    nom varchar2(20), 
    prenom varchar2(35), 
    age number, 
    naiss date); 
    insert into tab_col_drop (nom, prenom, age, naiss) 
    values ('Caulea','Radu', 39, to_date('28-06-1960','DD-MM-YYYY')); 
    insert into tab_col_drop (nom, prenom, age, naiss) 
    values ('Caulea','Stefan', 2, to_date('30-08-1997','DD-MM-YYYY')); 
    insert into tab_col_drop (nom, prenom, age, naiss) 
    values ('Caulea','Andreea', 2, to_date('30-08-1997','DD-MM-YYYY')); 
    insert into tab_col_drop (nom, prenom, age, naiss) 
    values ('Caulea','Alexandra', 7, to_date('30-09-1993','DD-MM-YYYY')); 
    create index IDX_col_drop_prenom on tab_col_drop (prenom); 
    create index IDX_col_drop_nom on tab_col_drop (nom); 
    create index IDX_col_drop_age on tab_col_drop (age); 
    create index IDX_col_drop_naiss on tab_col_drop (naiss); 
    select index_name, table_name, tablespace_name 
    from user_indexes where table_name = 'TAB_COL_DROP';
    deuxièment:
    Désactiver une colonne, dropper les colonnes désactivées, dropper directement une colonne
    /*
    || 1) Nous désactivons une colonne, ensuite nous droppons (;-))
    || les colonnes non utilisées
    || 2) Drop d'une autre colonne
    || 2) Satelitement, suivi des index
    */

    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
    21
    22
    23
    24
     
    set echo on 
    -- rendons invisible une colonne 
    alter table tab_col_drop set unused column age; 
    -- est-elle invisible ? 
    desc tab_col_drop; 
    -- comment savoir que la table a des colonnes non utilisées ? 
    select * from user_unused_col_tabs; 
    -- l'index est maintenu ? 
    select index_name, table_name, tablespace_name 
    from user_indexes where table_name = 'TAB_COL_DROP'; 
    -- achevons-la ! 
    alter table tab_col_drop drop unused columns; 
    desc tab_col_drop; 
    -- supprimons une colonne 
    alter table tab_col_drop drop column naiss; 
    -- verification 
    desc tab_col_drop; 
    select index_name, table_name, tablespace_name 
    from user_indexes where table_name = 'TAB_COL_DROP'; 
    Doc 
    Les index sont effacés, donc ! 
    Ca marche ;-) 
    #
    Et voilà c'est la recette la plus adéquate pour notre probleme s'il s'agit bien entendu de la version d'oracle 8.0.5.0.0

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tab_col_drop DROP COLUMN naiss;
    A priori, cela ne fonctionne pas avant 9i. Tu as essayé ton code?

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    oui tu as raison je viens de tester ça mais ça marche toujours pas.
    alors je n'ai cas utiliser la methode que tu m'as proposé et merci pour ton interet.
    merci bien et passe une exellente soirée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2011, 08h50
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Comment faire un "remplacer" dans une colonne d'une table ?
    Par arnaudperfect dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/02/2008, 12h32
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. [C#][Débutant] Comment récuperer la valeur d'une colonne d'une grille
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/04/2006, 05h40

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