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

Administration Oracle Discussion :

copie une table


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Points : 22
    Points
    22
    Par défaut copie une table
    bonjour à tous,
    est ce possible de créer une copie d'une table a àpartir d'un package
    par ex :
    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
     
    create or replace package statscopie
    as
     procedure copie_tab;
    end statscopie;
    /
     
    create or replace package body statscopie
    as
      procedure copie_tab
       is
        begin
          drop table cp_stats$snapshot;
          create table cp_stats$snapshot
          as
          select * from stats$snapshot;
      end copie_tab;
    end statscopie;
    /
    show errors;
    merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    ou mais seulement en sql dynamique (cf http://sheikyerbouti.developpez.com/execute_immediate/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EXECUTE IMMEDIATE('drop table cp_stats$snapshot');
    EXECUTE IMMEDIATE('create table cp_stats$snapshot as select * from stats$snapshot');

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    merci beaucoup OraFrance
    est ce que quand il execute ce ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        EXECUTE IMMEDIATE('drop table cp_stats$snapshot');
    il retournera erreur c'est la table n'existe pas ?

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Oui il te retournera le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ERROR at line 1:
    ORA-00942: table or view does not exist
    ORA-06512: at line 2

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Voila ce que tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    BEGIN
    BEGIN
    SELECT 1 FROM dual
    WHERE EXISTS (SELECT 1 FROM user_tables
                              WHERE table_name = 'CP_STATS$SNAPSHOT');
     
    EXECUTE IMMEDIATE('drop table cp_stats$snapshot'); 
     
    EXCEPTION
    WHEN NO_DATA_FOUND THEN null; -- on fait rien 
    END;
     
    EXECUTE IMMEDIATE('create table cp_stats$snapshot as select * from stats$snapshot');
    END;

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    merci beaucoup
    j'ai plusieurs tables à supprimer don j'ai créé un package qui contient deux procedures une qui va supprimer les tables on utilisant un cursor puis je l'appelle dans la 2ème procedure qui va les copies

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

Discussions similaires

  1. Copie de fichiers XLS dans une table
    Par sebvita dans le forum Oracle
    Réponses: 3
    Dernier message: 28/12/2005, 09h13
  2. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24
  3. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54
  4. Copie des données d'une table d'une base Interbase 6
    Par Djedjeridoo dans le forum InterBase
    Réponses: 6
    Dernier message: 02/02/2004, 09h39
  5. Dédoublonnage pdt copie une table a une autre
    Par Krevette dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/10/2003, 14h26

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