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

Langage SQL Discussion :

Création table à partir table dans autre base


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Création table à partir table dans autre base
    Bonjour,

    je dispose de 2 bases de données sous Oracle 9.2.

    Je souhaite recréer toutes les tables de ma base 1 dans ma base 2 mais sans les données.

    Comment puis-je procéder ?
    J'ai essayé via une procédure via un DBLINK mais cela ne fonctionne pas : erreur de compilation

    Line: 15 Column: 2 Error: PLS-00103: Symbole "CREATE" rencontré à la place d'un des symboles suivants :

    begin case declare end exit for goto if loop mod null pragma
    raise return select update while with <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> <<
    close current delete fetch lock insert open rollback
    savepoint set sql execute commit forall merge
    <a single-quoted SQL string> pipe
    Procedure dans la base 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCEDURE            "CREATION_TABLES" is
    s_nom_table     VARCHAR(100);
    CURSOR c0
    IS
    select table_name p_table_name from user_tables@BASE1 order by 1;
    begin
    FOR rec_c0 IN c0 LOOP
     
        s_nom_table := rec_c0.p_table_name;
        create table s_nom_table as (select * from s_nom_table@BASE1 where rownum = 0); 
    END LOOP;
    end;
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 102
    Points : 28 387
    Points
    28 387
    Par défaut
    Il faut sans doute passer par EXECUTE IMMEDIATE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE IMMEDIATE 'CREATE TABLE ' || s_nom_table || ' AS (SELECT * FROM ' ||  s_nom_table || '@BASE1 WHERE rownum = 0)

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    merci pour cette réponse je n'avais pas cherché de ce côté !

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

Discussions similaires

  1. emploi du temps à partir d'une table se trouvant dans une base de données
    Par tntneo dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/04/2008, 17h03
  2. Création d'une table à partir d'une autre table en VB6
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/07/2007, 14h22
  3. Réponses: 1
    Dernier message: 20/06/2006, 19h19
  4. Réponses: 4
    Dernier message: 03/06/2006, 12h45
  5. Créer une table à partir d'une autre dans un script
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/06/2005, 10h55

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