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 :

copier la structure d'une table sans les données


Sujet :

SQL Oracle

  1. #1
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut copier la structure d'une table sans les données
    Y a-t-il mieux que cette requête ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE T_CIBLE
    AS
    SELECT *
      FROM T_SOURCE
     WHERE 1 = 0;
    Car cela suppose que T_SOURCE (qui peut être énorme) va être lue entièrement pour voir si la condition est remplie.

  2. #2
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 132
    Points
    132
    Par défaut
    En utilisant dbms_metadata?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT dbms_metadata.get_ddl( 'TABLE', '....' ) FROM DUAL;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 60
    Points
    60
    Par défaut
    Si il n'y a pas de besoin d'automatisation :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE table_name (field datatype , [...] )

    D'autre part si ta table est vraiment enorme elle est surement partitionnee :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE table_name AS 
    SELECT * 
    FROM source_table PARTITION (partition_name) 
    WHERE 1=0

    Cela evitera le full scan.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 391
    Points
    18 391
    Par défaut
    Le WHERE 1=0 empêche toute lecture de la table :
    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
    select *
      from sys.all_objects
     where 1 = 0;
     
    -- La première ligne du plan :
    SELECT STATEMENT  ALL_ROWS
      Cost: 0  Bytes: 119  Cardinality: 1
     
    --Autotrace :
    Description                            Value
    -------------------------------------- -----
    recursive calls                            0
    db block gets                              0
    consistent gets                            0
    physical reads                             0
    redo size                                  0
    bytes sent via SQL*Net to client        1043
    bytes received via SQL*Net from client   180
    SQL*Net roundtrips to/from client          1
    sorts (memory)                             0
    sorts (disk)                               0

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 60
    Points
    60
    Par défaut
    Haha parfois le probleme c'est qu'il n'y a pas de probleme

    Maintenant que j'y pense il est vrai que je ne me souviens pas avoir eu de problemes de performance sur ce genre de requete meme sur des tables enormes.

    Enfin bref, cool d'avoir une confirmation visuelle !
    Thanks.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2013, 12h14
  2. [OC]Bcp out d'une table sans les blancs de de fin
    Par armor92 dans le forum Sybase
    Réponses: 4
    Dernier message: 07/12/2006, 16h10
  3. Bcp out d'une table sans les blancs de fin de chaine
    Par armor92 dans le forum Outils
    Réponses: 3
    Dernier message: 07/12/2006, 13h41
  4. Copie d'une table sans les enregistrements
    Par jmde dans le forum Access
    Réponses: 13
    Dernier message: 06/10/2006, 01h10
  5. [SQL SVR 2K]Copier la structure d'une table
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2006, 11h59

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