{"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\/es\/herramienta-de-linaje-de-datos-de-oracle\/","title":{"rendered":"Linaje de datos de Oracle: An\u00e1lisis de procedimientos almacenados y paquetes PL\/SQL"},"content":{"rendered":"<p><strong>Linaje de datos de Oracle<\/strong> Es el mapa a nivel de columna que muestra c\u00f3mo se mueven los datos en un entorno Oracle: qu\u00e9 tablas y columnas de origen alimentan cada tabla, vista o vista materializada de destino, y qu\u00e9 paquetes, procedimientos, funciones y disparadores PL\/SQL realizan la transferencia. Dado que en la mayor\u00eda de los entornos Oracle la l\u00f3gica de transformaci\u00f3n reside en PL\/SQL en lugar de en consultas independientes, un linaje preciso requiere una herramienta que analice PL\/SQL como un lenguaje procedimental, no solo Oracle SQL. <a href=\"https:\/\/www.gudusoft.com\/es\/herramienta-de-linaje-de-datos-sql\/\">Flujo de SQL de Gudu<\/a> Incluye un analizador PL\/SQL dedicado que hace exactamente eso, incluyendo SQL din\u00e1mico construido con <code>EJECUTAR INMEDIATAMENTE<\/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>Pru\u00e9balo con tu propio c\u00f3digo:<\/strong> pegar el cuerpo de un paquete de Oracle en el <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\">Visualizador de linaje SQLFlow gratuito<\/a>Seleccione el dialecto de Oracle y vea el linaje a nivel de columna y el gr\u00e1fico de llamadas a procedimientos que produce.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 el linaje de datos de Oracle es m\u00e1s dif\u00edcil que analizar sentencias SELECT.<\/h2>\n\n\n\n<p>Las bases de datos Oracle son antiguas en el mejor sentido: muchos entornos de producci\u00f3n contienen veinte o m\u00e1s a\u00f1os de l\u00f3gica empresarial acumulada, y la mayor parte es PL\/SQL. Las cargas nocturnas, las actualizaciones de mart, los trabajos de conciliaci\u00f3n y las pistas de auditor\u00eda se implementan como paquetes que llaman a procedimientos que llaman a funciones, con disparadores que se activan en el proceso. Una herramienta de linaje que solo entiende <code>SELECCIONAR<\/code>, <code>INSERTAR<\/code>, y <code>CREAR VISTA<\/code> Ve la delgada superficie de tal propiedad y pasa por alto la mayor parte de la l\u00f3gica subyacente.<\/p>\n\n\n\n<p>La raz\u00f3n t\u00e9cnica es que PL\/SQL no es SQL. Es un lenguaje procedimental estructurado en bloques con su propia gram\u00e1tica: declaraciones, flujo de control, cursores, manejadores de excepciones, especificaciones de paquetes y cuerpos. Las sentencias SQL est\u00e1n integradas dentro de esa estructura, y sus entradas y salidas fluyen a trav\u00e9s de variables, par\u00e1metros y bucles de cursores. Extraer el linaje de PL\/SQL significa analizar la capa procedimental, rastrear los valores a trav\u00e9s de ella y conectar las sentencias SQL integradas entre s\u00ed. Una gram\u00e1tica exclusivamente SQL no puede hacer esto, raz\u00f3n por la cual los extractores de linaje gen\u00e9ricos suelen omitir los cuerpos de los procedimientos por completo o fallar en el primer intento. <code>COMENZAR<\/code> bloquear.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un analizador PL\/SQL dedicado, no un analizador SQL con extensiones.<\/h2>\n\n\n\n<p>SQLFlow est\u00e1 construido sobre la base de <a href=\"https:\/\/www.sqlparser.com\/\">Analizador SQL general<\/a>, un front-end de compilador SQL comercial desarrollado desde mediados de la d\u00e9cada de 2000 y validado con aproximadamente 13.600 conjuntos de pruebas por dialecto. Para Oracle, proporciona dos cosas: un analizador SQL de Oracle para consultas, DDL y vistas, y un analizador procedimental independiente para PL\/SQL. El analizador PL\/SQL maneja los tipos de objetos donde reside la l\u00f3gica de transformaci\u00f3n de Oracle:<\/p>\n\n\n\n<ul><li><strong>Paquetes:<\/strong> Analizado en su totalidad, abarcando cada procedimiento y funci\u00f3n que contiene el paquete, con un gr\u00e1fico de llamadas que atraviesa los l\u00edmites del paquete.<\/li>\n<li><strong>Procedimientos y funciones:<\/strong> El linaje se rastrea a trav\u00e9s de los par\u00e1metros del procedimiento y las tablas temporales, de modo que un valor que ingresa como argumento y termina en una tabla est\u00e1 conectado de extremo a extremo.<\/li>\n<li><strong>Desencadenantes:<\/strong> l\u00f3gica a nivel de fila que copia o transforma datos en <code>INSERTAR<\/code>, <code>ACTUALIZAR<\/code>, o <code>BORRAR<\/code> aparece en el gr\u00e1fico de linaje en lugar de permanecer como efectos secundarios invisibles.<\/li>\n<li><strong>SQL din\u00e1mico:<\/strong> declaraciones ensambladas en tiempo de ejecuci\u00f3n y ejecutadas con <code>EJECUTAR INMEDIATAMENTE<\/code> se resuelven y analizan en lugar de omitirse.<\/li><\/ul>\n\n\n\n<p>Adem\u00e1s del an\u00e1lisis por objeto, SQLFlow genera una interfaz interactiva. <strong>gr\u00e1fico de llamadas<\/strong>: qu\u00e9 procedimientos invocan a cu\u00e1les, a trav\u00e9s de los l\u00edmites de los paquetes. En una base de c\u00f3digo donde <code>etl_driver.run_nightly<\/code> Si bien se ramifica en una docena de procedimientos de paquete, el gr\u00e1fico de llamadas es la forma de encontrar el que realmente escribe la tabla que le interesa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplo: rastrear el linaje a trav\u00e9s de un procedimiento de paquete<\/h2>\n\n\n\n<p>He aqu\u00ed un patr\u00f3n simplificado pero representativo: un procedimiento de paquete que carga un almac\u00e9n de ingresos diarios desde el \u00e1rea de preparaci\u00f3n.<\/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; FIN load_revenue_mart; FIN sales_etl;<\/code><\/pre>\n\n\n\n<p>SQLFlow lee el cuerpo del paquete e informa, por columna de salida: <code>mart.ingresos_diarios.cantidad_total<\/code> es alimentado por <code>cantidad.de.pedidos.de.preparaci\u00f3n<\/code> a trav\u00e9s de <code>SUMA<\/code>; <code>nombre_de_la_regi\u00f3n<\/code> proviene de <code>dim.region.region_name<\/code> a trav\u00e9s de la uni\u00f3n en <code>ID de regi\u00f3n<\/code>; <code>id_d\u00eda<\/code> se deriva de <code>puesta en marcha.pedidos.fecha_del_pedido<\/code> a trav\u00e9s de <code>A_CARACTER<\/code>Tambi\u00e9n registra que <code>o.estado<\/code>, <code>o.fecha_de_pedido<\/code>y el par\u00e1metro <code>p_load_date<\/code> moldear el resultado a trav\u00e9s de la <code>D\u00d3NDE<\/code> cl\u00e1usula, y que el procedimiento se encuentra dentro de la <code>ventas_etl<\/code> paquete en el gr\u00e1fico de llamadas. Multiplique esto por los cientos de procedimientos en un inmueble y obtendr\u00e1 el mapa de dependencias que la documentaci\u00f3n manual nunca mantiene actualizada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SQL din\u00e1mico: el punto ciego de EXECUTE IMMEDIATE<\/h2>\n\n\n\n<p>Los equipos de Oracle recurren constantemente al SQL din\u00e1mico: cargan tablas con nombres de partici\u00f3n, aplican DDL desde procedimientos y construyen sentencias cuyo destino depende de una fila de configuraci\u00f3n. Este tipo de c\u00f3digo es donde la mayor\u00eda de las extracciones de linaje se rinden:<\/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 resuelve el SQL din\u00e1mico dentro del procedimiento y analiza la instrucci\u00f3n ensamblada, por lo que el flujo desde <code>mart.ingresos_diarios<\/code> en <code>mart.revenue_archive<\/code> es capturado en lugar de ser dejado caer silenciosamente. Si su patrimonio utiliza <code>EJECUTAR INMEDIATAMENTE<\/code> Es fundamental verificar esta capacidad antes de confiar en cualquier herramienta de linaje: ejecutar uno de sus propios procedimientos SQL din\u00e1micos y comprobar si la tabla de destino aparece en el gr\u00e1fico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Linaje directo e indirecto en el c\u00f3digo de Oracle<\/h2>\n\n\n\n<p>SQLFlow distingue <strong>linaje directo<\/strong> (el valor de una columna de origen se inserta en una columna de destino) desde <strong>linaje indirecto<\/strong> (una columna dirige el resultado a trav\u00e9s de una <code>D\u00d3NDE<\/code> predicado, <code>UNIRSE<\/code> condici\u00f3n, <code>AGRUPACI\u00d3N POR<\/code>o agregar sin aparecer en la salida). En el ejemplo anterior, <code>estado de los pedidos<\/code> Nunca llega al mercado, pero cambiar sus valores alterar\u00eda todos los n\u00fameros que contiene. Los dos tipos de relaciones se pueden activar o desactivar por separado en el diagrama, de modo que el an\u00e1lisis de impacto puede incluir o excluir deliberadamente las dependencias de solo filtro. La mayor\u00eda de las herramientas de la competencia no modelan esta distinci\u00f3n, lo que hace que su an\u00e1lisis de impacto sea demasiado limitado (faltan columnas de filtro) o demasiado confuso (todo se conecta con todo).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo integrar tu c\u00f3digo Oracle en SQLFlow<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>M\u00e9todo de entrada<\/th><th>Cu\u00e1ndo usarlo<\/th><\/tr><\/thead><tbody>\n<tr><td>Pegue SQL o PL\/SQL<\/td><td>Comprobaciones r\u00e1pidas de un solo paquete, procedimiento o script en el navegador.<\/td><\/tr>\n<tr><td>Subir archivos<\/td><td>An\u00e1lisis masivo de c\u00f3digo fuente DDL y PL\/SQL exportados<\/td><\/tr>\n<tr><td>Conexi\u00f3n JDBC en directo<\/td><td>Obtenci\u00f3n de metadatos de esquema, definiciones de vistas y c\u00f3digo almacenado directamente de la base de datos.<\/td><\/tr>\n<tr><td>Extracci\u00f3n de metadatos de Grab<\/td><td>Extracci\u00f3n de metadatos con la herramienta complementaria Grabit y su posterior procesamiento en SQLFlow.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Cualquiera que sea la ruta que elija, SQLFlow realiza un an\u00e1lisis est\u00e1tico del texto SQL y PL\/SQL, adem\u00e1s de los metadatos del esquema. Nunca lee las filas de sus tablas. Para bancos y otras empresas reguladas que utilizan Oracle, <a href=\"https:\/\/www.gudusoft.com\/es\/version-local-de-sqlflow\/\">Edici\u00f3n local<\/a> Se ejecuta como Docker o Kubernetes dentro de su red, incluso con aislamiento total, por lo que el c\u00f3digo fuente nunca sale de su infraestructura. A escala empresarial, realiza escaneos por lotes de m\u00e1s de 100 bases de datos y m\u00e1s de un mill\u00f3n de columnas, con escaneos incrementales y adaptadores de exportaci\u00f3n para DataHub, Microsoft Purview y OpenMetadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migraciones de Oracle y entornos mixtos<\/h2>\n\n\n\n<p>El linaje de datos resulta especialmente valioso en el momento clave para las infraestructuras Oracle: la migraci\u00f3n. Antes de trasladar las cargas de trabajo a Snowflake, BigQuery o Databricks, el gr\u00e1fico de linaje indica qu\u00e9 paquetes alimentan los informes que utiliza la empresa, qu\u00e9 tablas est\u00e1n obsoletas y en qu\u00e9 orden deben migrarse los objetos. Tras la migraci\u00f3n, al volver a ejecutar el an\u00e1lisis en la nueva plataforma se verifica que no haya quedado ning\u00fan elemento hu\u00e9rfano. SQLFlow analiza 39 dialectos con gram\u00e1ticas espec\u00edficas para cada uno, por lo que la misma herramienta cubre ambos extremos del proceso.<\/p>\n\n\n\n<p>Pocas grandes propiedades son exclusivamente Oracle. La misma profundidad de an\u00e1lisis procedimental est\u00e1 disponible para <a href=\"https:\/\/www.gudusoft.com\/es\/linaje-de-datos-de-sql-server\/\">Linaje T-SQL de SQL Server<\/a>y plataformas de almacenamiento como <a href=\"https:\/\/www.gudusoft.com\/es\/linaje-de-datos-de-teradata\/\">Teradata<\/a> tienen sus propios analizadores sint\u00e1cticos espec\u00edficos para cada dialecto. Un repositorio de linaje puede albergar todo el patrimonio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00f3nde encajan los analizadores sint\u00e1cticos de c\u00f3digo abierto<\/h2>\n\n\n\n<p>Proyectos de c\u00f3digo abierto como <code>sqllineage<\/code> y <code>sqlglot<\/code> son realmente buenos para analizar consultas individuales y, para extraer el linaje a nivel de tabla de sentencias SELECT e INSERT independientes, pueden ser todo lo que necesite. La brecha para el trabajo con Oracle es la capa procedimental: cuerpos de paquetes, flujo de par\u00e1metros, disparadores y <code>EJECUTAR INMEDIATAMENTE<\/code> Precisamente, estas son las estructuras para las que no est\u00e1n dise\u00f1ados los analizadores SQL de prop\u00f3sito general, y en un entorno Oracle es donde reside la mayor parte de la l\u00f3gica de transformaci\u00f3n. La evaluaci\u00f3n honesta es emp\u00edrica: tome el cuerpo de su paquete m\u00e1s grande, ejec\u00fatelo con las herramientas candidatas y cuente cu\u00e1ntas de sus tablas de destino encuentra cada una.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfPuede SQLFlow rastrear el linaje a trav\u00e9s de los procedimientos almacenados y paquetes de Oracle?<\/h3>\n\n\n<p>S\u00ed. SQLFlow cuenta con un analizador PL\/SQL dedicado, independiente de su analizador SQL de Oracle, que analiza paquetes, procedimientos, funciones y disparadores. El linaje se rastrea a trav\u00e9s de los par\u00e1metros de los procedimientos y las tablas temporales, y un gr\u00e1fico de llamadas interactivo muestra las invocaciones de procedimientos entre paquetes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfSQLFlow admite SQL din\u00e1mico con la instrucci\u00f3n EXECUTE IMMEDIATE?<\/h3>\n\n\n<p>S\u00ed. El SQL din\u00e1mico ensamblado dentro de los procedimientos PL\/SQL se resuelve y analiza en lugar de omitirse, por lo que las sentencias construidas con <code>EJECUTAR INMEDIATAMENTE<\/code> aportan sus flujos de origen a destino al gr\u00e1fico de linaje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfSQLFlow necesita acceso a mis datos de Oracle?<\/h3>\n\n\n<p>No. SQLFlow realiza un an\u00e1lisis est\u00e1tico del c\u00f3digo SQL y PL\/SQL y, opcionalmente, lee los metadatos del esquema a trav\u00e9s de JDBC. Nunca lee los datos de las filas de la tabla. Con la edici\u00f3n local, incluso el texto SQL permanece dentro de su red.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfEst\u00e1 disponible el linaje a nivel de columna de Oracle en la versi\u00f3n gratuita?<\/h3>\n\n\n<p>S\u00ed. <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=oracle-data-lineage-tool\">Nube SQLFlow<\/a> Tiene un nivel gratuito: pegue Oracle SQL o PL\/SQL en el navegador y obtenga diagramas de linaje a nivel de columna. Premium cuesta $49.99\/mes; On-Premise cuesta $500\/mes o $4,800 por \u00fanica vez por tipo de base de datos seleccionado. Ver <a href=\"https:\/\/www.gudusoft.com\/es\/precios\/\">precios<\/a> Para m\u00e1s detalles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfPuedo exportar el linaje de Oracle a un cat\u00e1logo de datos?<\/h3>\n\n\n<p>S\u00ed. Las exportaciones de linaje en formato JSON, CSV o PNG se pueden consultar a trav\u00e9s de una API REST, y las implementaciones empresariales incluyen adaptadores de exportaci\u00f3n para DataHub, Microsoft Purview y OpenMetadata, por lo que SQLFlow puede funcionar como el motor de linaje compatible con PL\/SQL que respalda el cat\u00e1logo que ya utiliza.<\/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\">Vea el linaje oculto en su PL\/SQL.<\/h2>\n\n\n<p>Pegue el cuerpo de un paquete en el visualizador gratuito o p\u00f3ngase en contacto con nosotros para que le ayudemos a escanear toda su infraestructura Oracle en sus propias instalaciones.<\/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\">Prueba SQLFlow gratis<\/a><\/div>\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/es\/contacto\/\">Solicite una demostraci\u00f3n para empresas.<\/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\/es\/wp-json\/wp\/v2\/pages\/3136"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/comments?post=3136"}],"version-history":[{"count":95,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages\/3136\/revisions"}],"predecessor-version":[{"id":6755,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages\/3136\/revisions\/6755"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/media?parent=3136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}