Announcement

Collapse
No announcement yet.

Durch Views referenzierte Spalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Durch Views referenzierte Spalten

    Wie finde ich denn die Namen von Spalten in den Tabellen, die durch Views referenziert werden?

  • #2
    Hallo Tarzan,

    das wird von dem DBMS System abhängen, das Du hier nicht angegeben hast.
    Jedes System hat in den System-Tabellen irgendwo die Definition der Views hinterlegt, worüber man die Tabellen + Felder ermitteln kann.

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf,

      zunächst geht es um Oracle.

      Tarzan68 (eigentlich Udo)

      Comment


      • #4
        Hallo Udo,

        frag doch hier mal im Oracle Forum nach, dann bekommst Du bestimmt schnell & kompetent Antwort.

        Olaf
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Hallo Udo,

          die Spalten der von einer View referenzierten Tabellen bekommst du mit:
          [highlight=sql]
          select t.column_name, t.data_type
          from sys.user_dependencies v ,
          sys.user_tab_columns t
          where v.name = 'DEINE_VIEW' and v.referenced_type = 'TABLE'
          and t.table_name = v.referenced_name
          [/highlight]

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Da ja nicht nur Spalten in einer View Verwendung finden können, ist vielleicht auch der View-Source interessant.

            Code:
            select text
              from user_views
             where view_name = 'XYZ'
            Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

            Comment


            • #7
              Prima, hilft schon deutlich weiter. Jetzt muss ich nur noch herausfinden, wie ich nur die referenzierten Spalten bekomme und nicht alle Spalten der referenzierten Tabellen.

              Comment


              • #8
                Hallo Udo,

                da wirst du wohl den Quelltext der View parsen müssen und wie du den bekommst hat ja DiddlMouse schon geschrieben.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Hallo DiddlMouse.

                  select text
                  from user_views
                  where view_name = 'XYZ'

                  Gibt es etwas ähnliches für Tabellen?

                  Grüßle
                  Udo

                  Comment


                  • #10
                    Originally posted by tarzan68 View Post
                    Hallo DiddlMouse.

                    select text
                    from user_views
                    where view_name = 'XYZ'

                    Gibt es etwas ähnliches für Tabellen?

                    Grüßle
                    Udo

                    Code:
                     
                    select *
                    from user_tab_columns
                    ;
                    !?!?!?!?
                    Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

                    Comment


                    • #11
                      Ah, schlecht von mir. Der "select text from user_views" liefert ja nicht das komplette (DDL-)Generierungs-Script für den View, sondern "lediglich" das Select-Statement. Mit "Gibt es was ähnliches für Tabellen?" hoffte ich, auch ein komplettes (DDL-)Generierungs-Script für die Tabellen bekommen zu können.

                      Comment


                      • #12
                        Originally posted by tarzan68 View Post
                        Ah, schlecht von mir. Der "select text from user_views" liefert ja nicht das komplette (DDL-)Generierungs-Script für den View, sondern "lediglich" das Select-Statement. Mit "Gibt es was ähnliches für Tabellen?" hoffte ich, auch ein komplettes (DDL-)Generierungs-Script für die Tabellen bekommen zu können.
                        Ne – dass gibt es in deinem Fall leider nicht. Da musst du dich schon einiger Dictionary-Views bedienen.
                        Meine Freie Interpretation: Zu einer View gibt es einen Source, da die sich nicht ausschließlich durch Spalten definiert, sonder auch durch komplexen SQL-String ( upper, lower, decode, case then else, substr, ……). Eine Tabelle hingegen, beschreibt sich durch beschränkte Möglichkeiten, wie, durch Spalten bzw. Objekten, Constraints,…
                        Dann noch die wichtigsten Views, mit den Informationen aus diesen, kannst du dir ein Create Table basteln

                        Code:
                         
                        SQL> desc user_tab_columns
                        Name                 Type          
                        -------------------- ------------- 
                        TABLE_NAME           VARCHAR2(30)  
                        COLUMN_NAME          VARCHAR2(30)  
                        DATA_TYPE            VARCHAR2(106) 
                        DATA_TYPE_MOD        VARCHAR2(3)   
                        DATA_TYPE_OWNER      VARCHAR2(30)  
                        DATA_LENGTH          NUMBER        
                        DATA_PRECISION       NUMBER        
                        DATA_SCALE           NUMBER        
                        NULLABLE             VARCHAR2(1)   
                        COLUMN_ID            NUMBER        
                        DEFAULT_LENGTH       NUMBER        
                        DATA_DEFAULT         LONG          
                        NUM_DISTINCT         NUMBER        
                        LOW_VALUE            RAW(32)       
                        HIGH_VALUE           RAW(32)       
                        DENSITY              NUMBER        
                        NUM_NULLS            NUMBER        
                        NUM_BUCKETS          NUMBER        
                        LAST_ANALYZED        DATE          
                        SAMPLE_SIZE          NUMBER        
                        CHARACTER_SET_NAME   VARCHAR2(44)  
                        CHAR_COL_DECL_LENGTH NUMBER        
                        GLOBAL_STATS         VARCHAR2(3)   
                        USER_STATS           VARCHAR2(3)   
                        AVG_COL_LEN          NUMBER        
                        CHAR_LENGTH          NUMBER        
                        CHAR_USED            VARCHAR2(1)   
                        V80_FMT_IMAGE        VARCHAR2(3)   
                        DATA_UPGRADED        VARCHAR2(3)   
                         
                        SQL> desc user_constraints
                        Name              Type        
                        ----------------- ------------
                        OWNER             VARCHAR2(30)       
                        CONSTRAINT_NAME   VARCHAR2(30)       
                        CONSTRAINT_TYPE   VARCHAR2(1) 
                        TABLE_NAME        VARCHAR2(30)       
                        SEARCH_CONDITION  LONG        
                        R_OWNER           VARCHAR2(30)
                        R_CONSTRAINT_NAME VARCHAR2(30)
                        DELETE_RULE       VARCHAR2(9) 
                        STATUS            VARCHAR2(8) 
                        DEFERRABLE        VARCHAR2(14)
                        DEFERRED          VARCHAR2(9) 
                        VALIDATED         VARCHAR2(13)
                        GENERATED         VARCHAR2(14)
                        BAD               VARCHAR2(3) 
                        RELY              VARCHAR2(4) 
                        LAST_CHANGE       DATE        
                        INDEX_OWNER       VARCHAR2(30)
                        INDEX_NAME        VARCHAR2(30)
                        INVALID           VARCHAR2(7) 
                        VIEW_RELATED      VARCHAR2(14)
                         
                        SQL> desc user_cons_columns
                        Name            Type           
                        --------------- -------------- 
                        OWNER           VARCHAR2(30)   
                        CONSTRAINT_NAME VARCHAR2(30)   
                        TABLE_NAME      VARCHAR2(30)   
                        COLUMN_NAME     VARCHAR2(4000) 
                        POSITION        NUMBER         
                         
                        SQL> desc user_indexes
                        Name                    Type            
                        ----------------------- --------------  
                        INDEX_NAME              VARCHAR2(30)    
                        INDEX_TYPE              VARCHAR2(27)    
                        TABLE_OWNER             VARCHAR2(30)    
                        TABLE_NAME              VARCHAR2(30)    
                        TABLE_TYPE              VARCHAR2(11)    
                        UNIQUENESS              VARCHAR2(9)     
                        COMPRESSION             VARCHAR2(8)     
                        PREFIX_LENGTH           NUMBER          
                        TABLESPACE_NAME         VARCHAR2(30)    
                        INI_TRANS               NUMBER          
                        MAX_TRANS               NUMBER          
                        INITIAL_EXTENT          NUMBER          
                        NEXT_EXTENT             NUMBER          
                        MIN_EXTENTS             NUMBER          
                        MAX_EXTENTS             NUMBER          
                        PCT_INCREASE            NUMBER          
                        PCT_THRESHOLD           NUMBER          
                        INCLUDE_COLUMN          NUMBER          
                        FREELISTS               NUMBER          
                        FREELIST_GROUPS         NUMBER          
                        PCT_FREE                NUMBER          
                        LOGGING                 VARCHAR2(3)     
                        BLEVEL                  NUMBER          
                        LEAF_BLOCKS             NUMBER          
                        DISTINCT_KEYS           NUMBER          
                        AVG_LEAF_BLOCKS_PER_KEY NUMBER         
                        AVG_DATA_BLOCKS_PER_KEY NUMBER         
                        CLUSTERING_FACTOR       NUMBER         
                        STATUS                  VARCHAR2(8)    
                        NUM_ROWS                NUMBER         
                        SAMPLE_SIZE             NUMBER         
                        LAST_ANALYZED           DATE           
                        DEGREE                  VARCHAR2(40)   
                        INSTANCES               VARCHAR2(40)   
                        PARTITIONED             VARCHAR2(3)    
                        TEMPORARY               VARCHAR2(1)    
                        GENERATED               VARCHAR2(1)    
                        SECONDARY               VARCHAR2(1)    
                        BUFFER_POOL             VARCHAR2(7)    
                        USER_STATS              VARCHAR2(3)    
                        DURATION                VARCHAR2(15)   
                        PCT_DIRECT_ACCESS       NUMBER         
                        ITYP_OWNER              VARCHAR2(30)   
                        ITYP_NAME               VARCHAR2(30)   
                        PARAMETERS              VARCHAR2(1000) 
                        GLOBAL_STATS            VARCHAR2(3)    
                        DOMIDX_STATUS           VARCHAR2(12)   
                        DOMIDX_OPSTATUS         VARCHAR2(6)    
                        FUNCIDX_STATUS          VARCHAR2(8)    
                        JOIN_INDEX              VARCHAR2(3)    
                         
                        SQL> desc user_ind_columns
                        Name            Type           
                        --------------- -------------- 
                        INDEX_NAME      VARCHAR2(30)   
                        TABLE_NAME      VARCHAR2(30)   
                        COLUMN_NAME     VARCHAR2(4000) 
                        COLUMN_POSITION NUMBER         
                        COLUMN_LENGTH   NUMBER         
                        CHAR_LENGTH     NUMBER         
                        DESCEND         VARCHAR2(4)
                        Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

                        Comment

                        Working...
                        X