2016-04-20 40 views
1

Ich muss meine Datenreihe von vorne nach hinten visualisieren (welche Tabellen zu welchen Tabellen etc. gehen), indem ich im Wesentlichen meinen gesamten gespeicherten Proc-Code verarbeite. Gibt es ein kostenloses Tool, das dies tut, oder irgendwelche Bibliotheken in Java/C#, die das können?Oracle Data Lineage von gespeicherten Procs

Antwort

1

Wenn ich richtig verstehe, möchten Sie sehen, welche Tabellen welche anderen usw. Es handelt sich also um ein hierarchisches/rekursives Problem.

In Oracle, können Sie dies mit dem CONNECT-BY/START-WITH Operator lösen, indem die Metadaten Abfrage der Primärschlüssel und relationaly-Einschränkungen und Benutzer SYS_CONNECT_BY_PATH, um eine lesbare Zeichenfolge aus ihm enthalten:

WITH tabrels AS (
    SELECT t.table_name, pk.constraint_name PrimKey, rel.table_name referenced_by 
    FROM all_tables t 
    LEFT JOIN all_constraints pk ON pk.constraint_type = 'P' AND pk.table_name = t.table_name 
    LEFT JOIN all_constraints rel ON rel.r_constraint_name = pk.constraint_name 
    WHERE t.owner ='**<your schema owner here>**' 
     AND (rel.table_name IS NULL OR t.table_name <> rel.table_name) -- exclude self-references 
    ) 
SELECT LEVEL, substr(sys_connect_by_path(tr.table_name,' <- '), 5) datapath 
    FROM tabrels tr 
    CONNECT BY NOCYCLE tr.referenced_by = PRIOR tr.table_name 
    START WITH tr.referenced_BY IS NULL 
    ORDER SIBLINGS BY tr.table_name 
+0

Dank oratom. Leider geht es nicht nur um pk/fk- oder fact/dimension-Beziehungen, sondern z. Im Data Warehousing von der Quelle zur Tabelle mache ich möglicherweise mehrere Joins und Vereinigungen und platziere Daten in Quellen, exponiere diese in Sichten und verwende dann die Sichten für mehr Joins zur Präsentationsschicht usw. Diese "Fluss" - Information wird im Wesentlichen in geschrieben PL/SQL gespeicherte Procs. – Ronbear

0

Es scheint mehr für mich wie eine klassische Datenflussanforderung, die von Oracle PL/SQL oder anderen Arten von Programmiercode viel schwerer zu bekommen ist. Ich empfehle, https://getmanta.com zu überprüfen. Es handelt sich um eine einzigartige Data Lineage-Lösung mit Schwerpunkt auf der Programmierung von Code wie Oracle Stored Procedures.

Verwandte Themen