{"id":3136,"date":"2021-10-07T00:05:52","date_gmt":"2021-10-07T08:05:52","guid":{"rendered":"https:\/\/www.gudusoft.com\/?page_id=3136"},"modified":"2026-07-12T02:06:47","modified_gmt":"2026-07-12T10:06:47","slug":"oracle-data-lineage-tool","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/de\/oracle-datenherkunftstool\/","title":{"rendered":"Oracle-Datenherkunft: Analyse von PL\/SQL-gespeicherten Prozeduren und Paketen"},"content":{"rendered":"<p><strong>Oracle-Datenherkunft<\/strong> Die Datenherkunftsanalyse ist eine spaltenbasierte Abbildung des Datenflusses in einer Oracle-Umgebung: Sie zeigt, welche Quelltabellen und -spalten die jeweiligen Zieltabelle, Sichten oder materialisierten Sichten speisen und welche PL\/SQL-Pakete, Prozeduren, Funktionen und Trigger diese Datenbewegungen durchf\u00fchren. Da die Transformationslogik in den meisten Oracle-Umgebungen in PL\/SQL und nicht in eigenst\u00e4ndigen Abfragen implementiert ist, erfordert eine pr\u00e4zise Herkunftsanalyse ein Tool, das PL\/SQL als prozedurale Sprache und nicht nur Oracle SQL analysiert. <a href=\"https:\/\/www.gudusoft.com\/de\/sql-datenherkunftstool\/\">Gudu SQLFlow<\/a> Es enth\u00e4lt einen dedizierten PL\/SQL-Parser, der genau das tut, einschlie\u00dflich dynamischem SQL, das mit <code>SOFORT AUSF\u00dcHREN<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#eef7fb;padding-top:24px;padding-bottom:24px\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>Testen Sie es mit Ihrem eigenen Code:<\/strong> F\u00fcgen Sie den Inhalt eines Oracle-Pakets in das folgende Feld ein: <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=oracle-data-lineage-tool\" target=\"_blank\" rel=\"noreferrer noopener\">kostenloser SQLFlow-Lineage-Visualisierer<\/a>W\u00e4hlen Sie den Oracle-Dialekt aus und sehen Sie sich den Spalten- und Prozeduraufrufgraphen an, den er erzeugt.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Warum die Datenherkunftsanalyse in Oracle schwieriger ist als das Parsen von SELECT-Anweisungen<\/h2>\n\n\n\n<p>Oracle-Datenbanken sind im besten Sinne alt: Viele Produktionsumgebungen enthalten Gesch\u00e4ftslogik aus zwanzig oder mehr Jahren, die gr\u00f6\u00dftenteils aus PL\/SQL besteht. N\u00e4chtliche Ladevorg\u00e4nge, Aktualisierungen des Datenbank-Marts, Abgleichsjobs und Audit-Trails sind als Pakete implementiert, die Prozeduren aufrufen, welche wiederum Funktionen aufrufen, wobei dabei Trigger ausgel\u00f6st werden. Ein Lineage-Tool, das nur PL\/SQL versteht, ist daher unerl\u00e4sslich. <code>W\u00c4HLEN<\/code>, <code>EINF\u00dcGEN<\/code>, Und <code>ANSICHT ERSTELLEN<\/code> Er sieht nur die d\u00fcnne Oberfl\u00e4che eines solchen Anwesens und \u00fcbersieht dabei die meisten dahinter liegenden Logiken.<\/p>\n\n\n\n<p>Der technische Grund daf\u00fcr ist, dass PL\/SQL nicht SQL ist. Es handelt sich um eine blockstrukturierte prozedurale Sprache mit eigener Grammatik: Deklarationen, Kontrollfluss, Cursor, Ausnahmebehandlungsroutinen, Paketspezifikationen und Prozedurr\u00fcmpfe. SQL-Anweisungen sind in diese Struktur eingebettet, und ihre Ein- und Ausgaben flie\u00dfen \u00fcber Variablen, Parameter und Cursor-Schleifen. Die Extraktion der Befehlshistorie aus PL\/SQL bedeutet, die prozedurale Schicht zu analysieren, Werte darin zu verfolgen und die eingebetteten SQL-Anweisungen miteinander zu verkn\u00fcpfen. Eine reine SQL-Grammatik kann dies nicht leisten, weshalb generische Extraktoren f\u00fcr die Befehlshistorie typischerweise Prozedurr\u00fcmpfe vollst\u00e4ndig \u00fcberspringen oder beim ersten Versuch scheitern. <code>BEGINNEN<\/code> Block.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ein dedizierter PL\/SQL-Parser, kein SQL-Parser mit Erweiterungen<\/h2>\n\n\n\n<p>SQLFlow basiert auf <a href=\"https:\/\/www.sqlparser.com\/\">Allgemeiner SQL-Parser<\/a>, ein kommerzielles SQL-Compiler-Frontend, das seit Mitte der 2000er-Jahre entwickelt und anhand von rund 13.600 dialektspezifischen Testdaten validiert wurde. F\u00fcr Oracle bietet es zwei Funktionen: einen Oracle-SQL-Parser f\u00fcr Abfragen, DDL und Sichten sowie einen separaten prozeduralen Parser f\u00fcr PL\/SQL. Der PL\/SQL-Parser verarbeitet die Objekttypen, in denen die Oracle-Transformationslogik implementiert ist.<\/p>\n\n\n\n<ul><li><strong>Pakete:<\/strong> Die Analyse umfasst alle Prozeduren und Funktionen des Pakets sowie einen Aufrufgraphen \u00fcber die Paketgrenzen hinweg.<\/li>\n<li><strong>Verfahren und Funktionen:<\/strong> Die Herkunft wird \u00fcber Prozedurparameter und tempor\u00e4re Tabellen verfolgt, sodass ein Wert, der als Argument eingegeben wird und in einer Tabelle landet, von Anfang bis Ende verbunden ist.<\/li>\n<li><strong>Ausl\u00f6ser:<\/strong> Logik auf Zeilenebene, die Daten kopiert oder transformiert <code>EINF\u00dcGEN<\/code>, <code>AKTUALISIEREN<\/code>, oder <code>L\u00d6SCHEN<\/code> erscheint im Stammbaum und bleibt somit ein unsichtbarer Nebeneffekt.<\/li>\n<li><strong>Dynamisches SQL:<\/strong> Anweisungen, die zur Laufzeit zusammengestellt und ausgef\u00fchrt werden mit <code>SOFORT AUSF\u00dcHREN<\/code> werden aufgel\u00f6st und analysiert, anstatt \u00fcbersprungen zu werden.<\/li><\/ul>\n\n\n\n<p>Zus\u00e4tzlich zur Analyse einzelner Objekte rendert SQLFlow eine interaktive <strong>Anrufdiagramm<\/strong>Welche Prozeduren welche anderen aufrufen, \u00fcber Paketgrenzen hinweg? In einer Codebasis, in der <code>etl_driver.run_nightly<\/code> Verzweigt sich in ein Dutzend Paketprozeduren; der Aufrufgraph hilft dabei, diejenige zu finden, die tats\u00e4chlich die Tabelle schreibt, die Sie interessiert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Beispiel: R\u00fcckverfolgung der Herkunft durch eine Paketprozedur<\/h2>\n\n\n\n<p>Hier ein vereinfachtes, aber repr\u00e4sentatives Beispiel: eine Paketprozedur, die einen t\u00e4glichen Umsatz-Mart aus dem Staging-Bereich l\u00e4dt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE OR REPLACE PACKAGE BODY sales_etl AS PROCEDURE load_revenue_mart(p_load_date IN DATE) IS BEGIN DELETE FROM mart.revenue_daily WHERE day_id = TO_CHAR(p_load_date, &#039;YYYYMMDD&#039;); INSERT INTO mart.revenue_daily (day_id, region_name, total_amount) SELECT TO_CHAR(o.order_date, &#039;YYYYMMDD&#039;), r.region_name, SUM(o.amount) FROM staging.orders o JOIN dim.region r ON r.region_id = o.region_id WHERE o.status = &#039;SHIPPED&#039; AND TRUNC(o.order_date) = TRUNC(p_load_date) GROUP BY TO_CHAR(o.order_date, &#039;YYYYMMDD&#039;), r.region_name; END load_revenue_mart; ENDE sales_etl;<\/code><\/pre>\n\n\n\n<p>SQLFlow liest den Paketinhalt und meldet pro Ausgabespalte: <code>mart.revenue_daily.total_amount<\/code> wird gespeist von <code>staging.orders.amount<\/code> durch <code>SUMME<\/code>; <code>region_name<\/code> kommt von <code>dim.region.region_name<\/code> \u00fcber die Verbindung auf <code>region_id<\/code>; <code>Tages-ID<\/code> wird abgeleitet von <code>staging.orders.order_date<\/code> durch <code>TO_CHAR<\/code>Es wird auch festgehalten, dass <code>o.status<\/code>, <code>o.order_date<\/code>und der Parameter <code>p_load_date<\/code> das Ergebnis durch die <code>WO<\/code> Klausel, und dass das Verfahren innerhalb der <code>sales_etl<\/code> Das Paket im Aufrufdiagramm. Multipliziert man dies mit den Hunderten von Prozeduren in einem Immobilienunternehmen, erh\u00e4lt man die Abh\u00e4ngigkeits\u00fcbersicht, die in der manuellen Dokumentation nie aktuell gehalten wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dynamisches SQL: Der blinde Fleck bei EXECUTE IMMEDIATE<\/h2>\n\n\n\n<p>Oracle-Teams greifen st\u00e4ndig auf dynamisches SQL zur\u00fcck: Sie laden partitionierte Tabellen, wenden DDL aus Prozeduren an und erstellen Anweisungen, deren Ziel von einer Konfigurationszeile abh\u00e4ngt. Genau bei solchem Code scheitern die meisten F\u00e4lle der Datenherkunftsanalyse:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>v_sql := &#039;INSERT INTO mart.revenue_archive (day_id, region_name, total_amount) SELECT day_id, region_name, total_amount FROM mart.revenue_daily WHERE day_id = :d&#039;; EXECUTE IMMEDIATE v_sql USING v_day_id;<\/code><\/pre>\n\n\n\n<p>SQLFlow l\u00f6st das dynamische SQL innerhalb der Prozedur auf und analysiert die zusammengesetzte Anweisung, sodass der Ablauf von <code>mart.revenue_daily<\/code> hinein <code>mart.revenue_archive<\/code> wird abgefangen, anstatt stillschweigend fallen gelassen zu werden. Wenn Ihr Nachlass verwendet <code>SOFORT AUSF\u00dcHREN<\/code> Dies ist die einzige M\u00f6glichkeit, die man \u00fcberpr\u00fcfen sollte, bevor man einem Herkunftsanalysetool vertraut: F\u00fchren Sie eine Ihrer eigenen dynamischen SQL-Prozeduren damit aus und pr\u00fcfen Sie, ob die Zieltabelle \u00fcberhaupt im Graphen erscheint.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Direkte und indirekte Abstammung im Oracle-Code<\/h2>\n\n\n\n<p>SQLFlow unterscheidet <strong>direkte Abstammung<\/strong> (Der Wert einer Quellspalte landet in einer Zielspalte) <strong>indirekte Abstammung<\/strong> (eine Spalte steuert das Ergebnis durch eine <code>WO<\/code> Pr\u00e4dikat, <code>VERBINDEN<\/code> Zustand, <code>GRUPPE NACH<\/code>oder aggregieren, ohne in der Ausgabe zu erscheinen). Im obigen Beispiel <code>Bestellungen.Status<\/code> Die Daten erreichen den Markt nie, doch eine \u00c4nderung der Werte w\u00fcrde alle darin enthaltenen Zahlen ver\u00e4ndern. Die beiden Beziehungstypen lassen sich im Diagramm separat umschalten, sodass die Wirkungsanalyse Filterabh\u00e4ngigkeiten gezielt ein- oder ausschlie\u00dfen kann. Die meisten Konkurrenzprodukte bilden diese Unterscheidung nicht ab, wodurch ihre Wirkungsanalyse entweder zu eng gefasst (fehlende Filterspalten) oder zu ungenau ist (alles ist mit allem verbunden).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Oracle-Code in SQLFlow einbinden<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Eingabemethode<\/th><th>Wann man es verwendet<\/th><\/tr><\/thead><tbody>\n<tr><td>F\u00fcgen Sie SQL oder PL\/SQL ein.<\/td><td>Schnelle \u00dcberpr\u00fcfungen eines einzelnen Pakets, einer Prozedur oder eines Skripts im Browser<\/td><\/tr>\n<tr><td>Dateien hochladen<\/td><td>Massenanalyse von exportiertem DDL- und PL\/SQL-Quellcode<\/td><\/tr>\n<tr><td>Live-JDBC-Verbindung<\/td><td>Schema-Metadaten, Ansichtsdefinitionen und gespeicherter Code werden direkt aus der Datenbank abgerufen.<\/td><\/tr>\n<tr><td>Grabit-Metadatenextraktion<\/td><td>Metadaten werden mit dem Grabit-Begleittool extrahiert und an SQLFlow \u00fcbergeben.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Egal welchen Weg Sie w\u00e4hlen, SQLFlow f\u00fchrt eine statische Analyse des SQL- und PL\/SQL-Textes sowie der Schema-Metadaten durch. Es liest niemals die Zeilen Ihrer Tabellen. F\u00fcr Banken und andere regulierte Oracle-Unternehmen ist die <a href=\"https:\/\/www.gudusoft.com\/de\/sqlflow-on-premise-version\/\">On-Premise-Edition<\/a> Es l\u00e4uft als Docker- oder Kubernetes-Container innerhalb Ihres Netzwerks, auch vollst\u00e4ndig isoliert, sodass der Quellcode Ihre Infrastruktur niemals verl\u00e4sst. Im Enterprise-Bereich scannt es im Batch-Verfahren Datenbanken mit \u00fcber 100 Datenbanken und mehr als einer Million Spalten, unterst\u00fctzt inkrementelle Scans und Exportadapter f\u00fcr DataHub, Microsoft Purview und OpenMetadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Oracle-Migrationen und gemischte Systemlandschaften<\/h2>\n\n\n\n<p>Die Datenherkunft ist besonders wertvoll, wenn Oracle-Umgebungen vor einer wichtigen Herausforderung stehen: der Migration. Bevor Workloads zu Snowflake, BigQuery oder Databricks migriert werden, zeigt der Datenherkunftsgraph, welche Pakete die ben\u00f6tigten Berichte liefern, welche Tabellen nicht mehr verwendet werden und in welcher Reihenfolge Objekte migriert werden m\u00fcssen. Nach der Migration stellt die erneute Analyse auf der neuen Plattform sicher, dass keine Daten verwaist sind. SQLFlow analysiert 39 Dialekte mit dialektspezifischen Grammatiken, sodass dasselbe Tool beide Phasen der Migration abdeckt.<\/p>\n\n\n\n<p>Nur wenige gro\u00dfe Systeme nutzen ausschlie\u00dflich Oracle. Die gleiche prozedurale Analysetiefe ist verf\u00fcgbar f\u00fcr <a href=\"https:\/\/www.gudusoft.com\/de\/sql-server-datenherkunft\/\">SQL Server T-SQL-Abstammung<\/a>und Lagerplattformen wie <a href=\"https:\/\/www.gudusoft.com\/de\/teradata-datenherkunft\/\">Teradata<\/a> Sie verf\u00fcgen \u00fcber eigene dialektspezifische Parser. Ein einziges Stammbaum-Repository kann den gesamten Bestand umfassen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wo Open-Source-Parser passen<\/h2>\n\n\n\n<p>Open-Source-Projekte wie <code>sqllineage<\/code> Und <code>sqlglot<\/code> Sie eignen sich hervorragend zum Parsen einzelner Abfragen und sind m\u00f6glicherweise alles, was Sie zum Extrahieren der Tabellenhierarchie aus eigenst\u00e4ndigen SELECT- und INSERT-Anweisungen ben\u00f6tigen. Die L\u00fccke bei Oracle-Anwendungen liegt in der prozeduralen Ebene: Paketstrukturen, Parameterfluss, Trigger und \u2026 <code>SOFORT AUSF\u00dcHREN<\/code> Genau diese Konstrukte sind f\u00fcr universelle SQL-Parser nicht ausgelegt, und in einer Oracle-Umgebung befindet sich dort der Gro\u00dfteil der Transformationslogik. Die ehrliche Bewertung erfolgt empirisch: Nehmen Sie Ihr gr\u00f6\u00dftes Datenpaket, f\u00fchren Sie es durch Ihre Test-Tools und z\u00e4hlen Sie, wie viele der Zieltabelle jedes Tool findet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">H\u00e4ufig gestellte Fragen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Kann SQLFlow die Herkunft von Oracle-Prozeduren und -Paketen nachverfolgen?<\/h3>\n\n\n<p>Ja. SQLFlow verf\u00fcgt \u00fcber einen separaten PL\/SQL-Parser, der unabh\u00e4ngig vom Oracle SQL-Parser Pakete, Prozeduren, Funktionen und Trigger analysiert. Die Datenherkunft wird \u00fcber Prozedurparameter und tempor\u00e4re Tabellen nachverfolgt, und ein interaktiver Aufrufgraph visualisiert die Prozeduraufrufe \u00fcber verschiedene Pakete hinweg.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unterst\u00fctzt SQLFlow die Ausf\u00fchrung von dynamischen SQL-Anweisungen (EXECUTE IMMEDIATE)?<\/h3>\n\n\n<p>Ja. Dynamisches SQL, das innerhalb von PL\/SQL-Prozeduren zusammengesetzt ist, wird aufgel\u00f6st und analysiert, anstatt \u00fcbersprungen zu werden, sodass Anweisungen, die mit <code>SOFORT AUSF\u00dcHREN<\/code> Sie tragen ihre Quell-Ziel-Fl\u00fcsse zum Herkunftsgraphen bei.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ben\u00f6tigt SQLFlow Zugriff auf meine Oracle-Daten?<\/h3>\n\n\n<p>Nein. SQLFlow f\u00fchrt eine statische Analyse von SQL- und PL\/SQL-Code durch und liest optional Schema-Metadaten \u00fcber JDBC. Es liest niemals Tabellenzeilendaten. Bei der On-Premise-Edition bleibt selbst der SQL-Text innerhalb Ihres Netzwerks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ist die Spaltenherkunftsanalyse von Oracle in der kostenlosen Version verf\u00fcgbar?<\/h3>\n\n\n<p>Ja. <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=oracle-data-lineage-tool\">SQLFlow Cloud<\/a> Es gibt eine kostenlose Version: F\u00fcgen Sie Oracle SQL- oder PL\/SQL-Code in den Browser ein und erhalten Sie Spaltenhierarchiediagramme. Die Premium-Version kostet $49,99\/Monat; die On-Premise-Version $500\/Monat oder einmalig $4.800 pro ausgew\u00e4hltem Datenbanktyp. Siehe <a href=\"https:\/\/www.gudusoft.com\/de\/preisgestaltung\/\">Preisgestaltung<\/a> f\u00fcr weitere Details.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kann ich Oracle-Herkunftsdaten in einen Datenkatalog exportieren?<\/h3>\n\n\n<p>Ja. Lineage-Exporte als JSON, CSV oder PNG sind \u00fcber eine REST-API abfragbar, und Enterprise-Bereitstellungen beinhalten Exportadapter f\u00fcr DataHub, Microsoft Purview und OpenMetadata, sodass SQLFlow als PL\/SQL-f\u00e4hige Lineage-Engine hinter dem bereits laufenden Katalog dienen kann.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#60d5f6;padding-top:32px;padding-bottom:32px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Entdecken Sie die verborgene Datenherkunft in Ihrem PL\/SQL-Code.<\/h2>\n\n\n<p>F\u00fcgen Sie einen Pakettext in den kostenlosen Visualisierer ein oder sprechen Sie mit uns \u00fcber das Scannen Ihrer gesamten Oracle-Umgebung vor Ort.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=oracle-data-lineage-tool\" target=\"_blank\" rel=\"noreferrer noopener\">Testen Sie SQLFlow kostenlos<\/a><\/div>\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/de\/kontakt\/\">Fordern Sie eine Enterprise-Demo an<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@graph\": [\n        {\n            \"@type\": \"SoftwareApplication\",\n            \"name\": \"Gudu SQLFlow\",\n            \"applicationCategory\": \"DeveloperApplication\",\n            \"applicationSubCategory\": \"Oracle Data Lineage Tool\",\n            \"operatingSystem\": \"Web, Linux, Windows, macOS\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/oracle-data-lineage-tool\\\/\",\n            \"description\": \"Oracle data lineage tool with a dedicated PL\\\/SQL parser: analyzes packages, procedures, functions, and triggers, resolves EXECUTE IMMEDIATE dynamic SQL, and produces column-level lineage diagrams and procedure call graphs.\",\n            \"featureList\": \"PL\\\/SQL package and procedure analysis, trigger lineage, EXECUTE IMMEDIATE dynamic SQL resolution, procedure call graph, column-level lineage, direct vs indirect lineage, JDBC metadata import, DataHub\\\/Purview\\\/OpenMetadata export\",\n            \"softwareVersion\": \"8.2.3\",\n            \"offers\": [\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Free\",\n                    \"price\": \"0\",\n                    \"priceCurrency\": \"USD\"\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Premium\",\n                    \"price\": \"49.99\",\n                    \"priceCurrency\": \"USD\",\n                    \"priceSpecification\": {\n                        \"@type\": \"UnitPriceSpecification\",\n                        \"price\": \"49.99\",\n                        \"priceCurrency\": \"USD\",\n                        \"billingIncrement\": 1,\n                        \"unitText\": \"MONTH\"\n                    }\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow On-Premise\",\n                    \"price\": \"4800\",\n                    \"priceCurrency\": \"USD\"\n                }\n            ],\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow trace lineage through Oracle stored procedures and packages?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow has a dedicated PL\\\/SQL parser, separate from its Oracle SQL parser, that analyzes packages, procedures, functions, and triggers. Lineage is traced through procedure parameters and temp tables, and an interactive call graph shows procedure-to-procedure invocations across packages.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow handle EXECUTE IMMEDIATE dynamic SQL?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Dynamic SQL assembled inside PL\\\/SQL procedures is resolved and analyzed rather than skipped, so statements built with EXECUTE IMMEDIATE contribute their source-to-target flows to the lineage graph.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow need access to my Oracle data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow performs static analysis of SQL and PL\\\/SQL code and optionally reads schema metadata over JDBC. It never reads table row data. With the On-Premise edition, even the SQL text stays inside your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Is Oracle column-level lineage available in the free version?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow Cloud has a free tier: paste Oracle SQL or PL\\\/SQL in the browser and get column-level lineage diagrams. Premium is $49.99\\\/month; On-Premise is $500\\\/month or $4,800 one-time per selected database type.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I export Oracle lineage to a data catalog?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Lineage exports as JSON, CSV, or PNG, is queryable over a REST API, and enterprise deployments include export adapters for DataHub, Microsoft Purview, and OpenMetadata, so SQLFlow can serve as the PL\\\/SQL-aware lineage engine behind the catalog you already run.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Oracle data lineage is the column-level map of how data moves through an Oracle estate: which source tables and columns feed each target table, view, or materialized view, and which PL\/SQL packages, procedures, functions, and triggers do the moving. Because in most Oracle shops the transformation logic lives in PL\/SQL rather than in standalone queries, accurate lineage requires a tool that parses PL\/SQL as a procedural language, not just Oracle SQL. Gudu SQLFlow ships a dedicated PL\/SQL parser that does exactly that, including dynamic SQL built with EXECUTE IMMEDIATE. Test it on your own code: paste an Oracle package body\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/pages\/3136"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/comments?post=3136"}],"version-history":[{"count":95,"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/pages\/3136\/revisions"}],"predecessor-version":[{"id":6755,"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/pages\/3136\/revisions\/6755"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/de\/wp-json\/wp\/v2\/media?parent=3136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}