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 :

copier une vue sous un autre nom


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut copier une vue sous un autre nom
    Bonjour,
    J'ai voulu copier une vue sous un autre nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Create view mc_rev_trx_vue_arc as
    select *
      from rev_trx_vue_arc
    Ce qui c'est passé c'est un select des champs de la vue initial.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select ..., ... from rev_trx_vue_arc
    C'est pas ce que la vue initial fait dans sont script?

    Je voudrais créer une copie réel de la vue sous un autre nom.
    Est-ce possible?

    Merci beaucoup!

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Pourquoi tu ne crée pas une vue avec le même select sous-jacent ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Salut,
    Pour récupérer le script de ta vue initiale, tu peux utiliser cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT text FROM all_views WHERE view_name = 'tavue'

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut Re
    Pour répondre à billhary c'est parcque je n'ai aucune idée du select de la vue initial.
    Au bureau ils ne possèedent pas de logiciel comme SQLDevelopper qui me permet de voir le script des vues ou autres... Ils ont juste SQL PLUS et GOLDEN.

    Bonjour Snipah,
    J'ai testé la commande sur SQL PLUS
    SELECT text FROM all_views WHERE view_name = 'tavue'
    Mais la réponse est ''aucune ligne sélectionnée''

    Quand je fais un desc de la vue, elle me rapporte toutes les colonnes de la vue donc elle existe?

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    Pour retrouver la source de ta vue, essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC')
    FROM dual;

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut re
    J'ai testé et voilà ce qui arrive?
    Mais je fais un desc et elle est bien là?

    SQL> SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC')
    2 from dual;
    SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC')
    *
    ERROR à la ligne 1 :
    ORA-31603: objet "REV_TRX_VUE_ARC" de type VIEW introuvable dans le schéma "REVU04"
    ORA-06512: à "SYS.DBMS_SYS_ERROR", ligne 105
    ORA-06512: à "SYS.DBMS_METADATA", ligne 2805
    ORA-06512: à "SYS.DBMS_METADATA", ligne 4333
    ORA-06512: à ligne 1


    SQL> desc REV_TRX_VUE_ARC;
    Nom Null ? Type
    ------------------------------- -------- ----
    CODE_DA VARCHAR2(4)
    NO_TRX VARCHAR2(10)
    NO_CLIEN NUMBER(8)
    CODE_CLASS_CPTE_CLIEN VARCHAR2(2)
    DATE_SAISI VARCHAR2(10)
    HMS VARCHAR2(8)
    DATE_COMPT VARCHAR2(10)
    CODE_TYPE_TRX VARCHAR2(4)
    DESCR_ABREG VARCHAR2(15)
    CLE VARCHAR2(8)
    NUMERO VARCHAR2(40)
    MNT_TRX NUMBER
    SOLDE_CLIEN_APRES NUMBER(13,2)
    CODE_NATUR_CPTE_CLIEN VARCHAR2(1)
    FORME_APPEL VARCHAR2(8)
    VARIA_GLOBA_DA VARCHAR2(23)
    VARIA_GLOBA_CLE VARCHAR2(29)
    AN_EXERC VARCHAR2(4)
    CODE_PERIO VARCHAR2(2)
    NO_UAR VARCHAR2(4)
    REF VARCHAR2(50)
    COM VARCHAR2(240)
    TYPE_CARTE VARCHAR2(1)
    NO_COMMA_COE NUMBER
    CODE_UTILI VARCHAR2(6)

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    La vue doit appartenir à un schéma différent de celui avec lequel tu travailles.
    Pour connaître son propriétaire, essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select owner,view_name from all_views where view_name='REV_TRX_VUE_ARC';

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    Ensuite en fonction de la valeur pour owner, retente la fonction dbms_metadata.getddl avec un paramètre supplémentaire indiquant ce propriétaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC','OWNER')
    FROM dual;
    Pour plus de précision, voici la description de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      FUNCTION get_ddl (
                    object_type     IN  VARCHAR2,
                    name            IN  VARCHAR2,
                    schema          IN  VARCHAR2 DEFAULT NULL,
                    version         IN  VARCHAR2 DEFAULT 'COMPATIBLE',
                    model           IN  VARCHAR2 DEFAULT 'ORACLE',
                    transform       IN  VARCHAR2 DEFAULT 'DDL')
            RETURN CLOB;

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Citation Envoyé par billharry Voir le message
    La vue doit appartenir à un schéma différent de celui avec lequel tu travailles.
    Pour connaître son propriétaire, essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select owner,view_name from all_views where view_name='REV_TRX_VUE_ARC';
    Si < SELECT text FROM all_views WHERE view_name = 'tavue' > ne lui a renvoyé aucune ligne, il ne devrait pas en avoir non plus avec cette requête, sinon la première lui aurait au moins renvoyé un champs vide.
    A moins qu'il n'ait pas remplacé 'tavue' de l'exemple par le nom de sa vue, mais j'en doute

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut re
    Pas évident de trouver une vue, équipé comme je suis!
    Merci de m'aider.
    On ne la voit pas encore.


    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
     SQL> SELECT owner,view_name FROM all_views WHERE view_name='REV_TRX_VUE_ARC';
     
    OWNER                          VIEW_NAME
    ------------------------------ ------------------------------
    REVF                           REV_TRX_VUE_ARC
    REVF50                         REV_TRX_VUE_ARC
     
    SQL> SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC','REVF')
      2  FROM dual;
    SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC','REVF')
           *
    ERROR à la ligne 1 :
    ORA-31603: objet "REV_TRX_VUE_ARC" de type VIEW introuvable dans le schéma "REVF"
    ORA-06512: à "SYS.DBMS_SYS_ERROR", ligne 105
    ORA-06512: à "SYS.DBMS_METADATA", ligne 2805
    ORA-06512: à "SYS.DBMS_METADATA", ligne 4333
    ORA-06512: à ligne 1

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Si celle ci t'a renvoyé un résultat, retente ça, qui devrait te renseigner directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select text from all_views where view_name='REV_TRX_VUE_ARC';
    Ou alors quelque chose m'échappe

  12. #12
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    Il semble y avoir 2 vues portant le même nom mais appartenant à 2 schémas différents.

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut RE
    Un gros merci!
    J'ai un résultat et du texte!!!
    Je trouve ça bizarre que j'ai le select mais pas de from???
    Surtout qu'il y a un préfix de table T1.
    Ça pas l'air au complet mais c'est peut-être le scipt qui est bizarre.
    Pourtant elle fonctionne dans l'application FORMS.
    Je crois que je vais essayer encore car on peux surement pas faire rien de plus car ça doit marcher d'habitude.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> SELECT text FROM all_views WHERE view_name='REV_TRX_VUE';
     
    TEXT
    --------------------------------------------------------------------------------
    SELECT T1.CODE_DA,
           T1.NO_TRX,
           T1.NO_CLIEN,
           T1.CODE_CLASS_CP
     
    SELECT T1.CODE_DA,
           T1.NO_TRX,
           T1.NO_CLIEN,
           T1.CODE_CLASS_CP

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> set long 4000;
    SQL> SELECT text FROM all_views WHERE view_name='REV_TRX_VUE';
    Ca devrait être plus complet

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par Marcel Chabot Voir le message

    SQL> SELECT owner,view_name FROM all_views WHERE view_name='REV_TRX_VUE_ARC';

    OWNER VIEW_NAME
    ------------------------------ ------------------------------
    REVF REV_TRX_VUE_ARC
    REVF50 REV_TRX_VUE_ARC

    SQL> SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC','REVF')
    2 FROM dual;
    SELECT dbms_metadata.get_ddl('VIEW', 'REV_TRX_VUE_ARC','REVF')
    *
    ERROR à la ligne 1 :
    ORA-31603: objet "REV_TRX_VUE_ARC" de type VIEW introuvable dans le schéma "REVF"
    ORA-06512: à "SYS.DBMS_SYS_ERROR", ligne 105
    ORA-06512: à "SYS.DBMS_METADATA", ligne 2805
    ORA-06512: à "SYS.DBMS_METADATA", ligne 4333
    ORA-06512: à ligne 1
    Nouvelle tentative avec le package dbms_metadata, qui est la façon officielle pour avoir les scripts SQL de création d'objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DBMS_METADATA.GET_DDL(object_type,object_name,owner)
    FROM ALL_OBJECTS
    WHERE OBJECT_TYPE = 'VIEW' AND OWNER = 'REVF' AND OBJECT_NAME='REV_TRX_VUE_ARC'

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut RE
    Je m'excuse de mon manque de compétence en SQL
    J'écrivais un set line 2000 au lieu et c'est pour ça que je voyais pas tout.
    Effectivement SET long 4000 règle mon problème

    Un gros merci pour m'avoir aidé!!!!

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

Discussions similaires

  1. Copier une feuille vers un autre classeur dont le nom change
    Par Jimmatdycol dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 09/09/2013, 09h34
  2. Copier un fichier excel sous un autre nom en supprimant les formules
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2011, 12h19
  3. Réponses: 1
    Dernier message: 10/05/2010, 14h44
  4. [A-03] copier un champ sous un autre nom
    Par AndréPe dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 22/01/2009, 16h18
  5. copier un signet et le coller sous un autre nom
    Par A@Lah dans le forum VBA Word
    Réponses: 2
    Dernier message: 17/01/2008, 18h05

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