项目文件夹

文件
wehub-resource-sync bf2343b7e4
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:35:45 +08:00

731 行
17 KiB
SQL

-- Oracle lineage test schema - base_table is ultimate source, multiple stored procs with temp table chains
-- Tables: Ultimate source
CREATE TABLE base_table (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
-- Tables: Source tables derived from base_table
CREATE TABLE source_table_1 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE source_table_2 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE source_table_3 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE source_table_4 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE source_table_5 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE source_table_6 (
col1 NUMBER PRIMARY KEY,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 NUMBER(12, 2),
col5 NUMBER,
col6 VARCHAR2(50),
col7 NUMBER(12, 2),
col8 NUMBER,
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
-- Tables: Target tables for stored procedures
CREATE TABLE target_table_1 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE target_table_2 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE target_table_3 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE target_table_4 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE target_table_5 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE target_table_6 (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE merge_target_table (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
CREATE TABLE update_target_table (
col1 NUMBER,
col2 VARCHAR2(50),
col3 VARCHAR2(50),
col4 VARCHAR2(50),
col5 VARCHAR2(50),
col6 VARCHAR2(50),
col7 VARCHAR2(50),
col8 VARCHAR2(50),
col9 VARCHAR2(50),
col10 TIMESTAMP DEFAULT SYSDATE
);
/
-- For view lineage
-- Views: Chain from base_table
CREATE VIEW VIEW_1 AS
SELECT col1, col2, col3, col4, col5 FROM base_table WHERE col1 IS NOT NULL;
/
CREATE VIEW VIEW_2 AS
SELECT col1, col2, col3 FROM VIEW_1 WHERE col2 IS NOT NULL;
/
CREATE VIEW VIEW_3 AS
SELECT s1.col1, s1.col2, s1.col3, s2.col4, s2.col5, s2.col6 FROM source_table_1 s1
JOIN source_table_2 s2 ON s1.col1 = s2.col1;
/
CREATE VIEW VIEW_4 AS
SELECT col1, col2, col3, col4, col5, col6 FROM VIEW_3 WHERE col1 IS NOT NULL;
/
-- For stored procedures lineage
CREATE OR REPLACE PROCEDURE query_data_sp IS
v_total NUMBER;
BEGIN
SELECT SUM(col4) INTO v_total FROM base_table;
SELECT SUM(col4) INTO v_total FROM VIEW_1;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_1 IS
BEGIN
INSERT INTO target_table_1 (col1, col2, col3, col4)
SELECT col1, col2, col6, 'PROC1'
FROM source_table_1
WHERE col1 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_2 IS
BEGIN
INSERT INTO target_table_2 (col1, col2, col3, col4)
WITH intermediate_data AS (
SELECT col1, col2, col6
FROM source_table_2
WHERE col1 IS NOT NULL
)
SELECT col1, col2, col6, 'PROC2'
FROM intermediate_data
WHERE col2 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_3 IS
BEGIN
INSERT INTO target_table_3 (col1, col2, col3, col4)
WITH step1 AS (
SELECT col1, col2, col3, col4, col5
FROM source_table_3
WHERE col1 IS NOT NULL
),
step2 AS (
SELECT col1, col6, col7, col8, col9
FROM source_table_3
WHERE col6 IS NOT NULL
),
step3 AS (
SELECT s1.col1, s1.col2, s2.col6
FROM step1 s1
JOIN step2 s2 ON s1.col1 = s2.col1
)
SELECT col1, col2, col6, 'PROC3'
FROM step3;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_4 IS
BEGIN
INSERT INTO target_table_4 (col1, col2, col3, col4)
SELECT col1, col2, col6, 'PROC4'
FROM source_table_4
WHERE col1 IS NOT NULL;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_5 IS
BEGIN
INSERT INTO target_table_5 (col1, col2, col3, col4)
WITH base_data AS (
SELECT col1, col2, col6
FROM source_table_5
WHERE col1 IS NOT NULL
),
filtered_data AS (
SELECT col1, col2, col6
FROM base_data
WHERE col2 IS NOT NULL
)
SELECT col1, col2, col6, 'PROC5'
FROM filtered_data;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE stored_proc_6 IS
BEGIN
INSERT INTO target_table_6 (col1, col2, col6) SELECT col1, col2, col6 FROM source_table_6;
COMMIT;
END;
/
-- Sample data for base_table
INSERT INTO base_table (col1, col2, col3, col4, col5, col6, col7, col8, col9) VALUES
(1, 'A', 'X', 100.00, 10, 'P', 200.00, 20, 'M');
/
INSERT INTO base_table (col1, col2, col3, col4, col5, col6, col7, col8, col9) VALUES
(2, 'B', 'Y', 150.00, 15, 'Q', 250.00, 25, 'N');
/
INSERT INTO base_table (col1, col2, col3, col4, col5, col6, col7, col8, col9) VALUES
(3, 'C', 'Z', 200.00, 20, 'R', 300.00, 30, 'O');
/
-- Sample data for source tables
INSERT INTO source_table_1 SELECT * FROM base_table;
/
INSERT INTO source_table_2 SELECT * FROM base_table;
/
INSERT INTO source_table_3 SELECT * FROM base_table;
/
INSERT INTO source_table_4 SELECT * FROM base_table;
/
INSERT INTO source_table_5 SELECT * FROM base_table;
/
INSERT INTO source_table_6 SELECT * FROM base_table;
/
-- Execute stored procedures to generate lineage
-- few second delay between stored procedure calls to capture accurate lineage
-- DBMS_LOCK.SLEEP is replaced by DBMS_SESSION.SLEEPn in Oracle 18c and later so we are using that here
-- Ref: https://oracle-base.com/articles/18c/dbms_session-sleep-18c
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_1();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_2();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_3();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_4();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_5();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL stored_proc_6();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
CALL query_data_sp();
/
BEGIN DBMS_SESSION.SLEEP(2); END;
/
-- For query lineage
-- JOIN: Multiple tables with different join types
CREATE TABLE join_result_table AS
SELECT
b.col1, b.col2, s1.col3, s2.col4, t1.col5
FROM base_table b
INNER JOIN source_table_1 s1 ON b.col1 = s1.col1
LEFT JOIN source_table_2 s2 ON s1.col2 = s2.col2
RIGHT JOIN target_table_1 t1 ON s2.col3 = t1.col3;
/
-- UNION: Combining data from multiple sources
CREATE TABLE union_result_table AS
SELECT col1, col2, col3 FROM source_table_1
UNION ALL
SELECT col1, col2, col3 FROM source_table_2
UNION
SELECT col1, col2, col3 FROM target_table_1;
/
-- Complex JOIN with subquery and aggregation
CREATE TABLE agg_join_result_table AS
SELECT
v1.col1,
v1.col2,
v1.col3,
v2.col3 AS v2_col3,
v3.col3 AS v3_col3,
v3.col4,
v3.col5,
v3.col6,
b.col9,
b.col10
FROM VIEW_1 v1
LEFT JOIN VIEW_2 v2 ON v1.col2 = v2.col2
LEFT JOIN VIEW_3 v3 ON v1.col1 = v3.col1
INNER JOIN base_table b ON v1.col1 = b.col1;
/
-- MERGE: Upsert pattern with multiple sources
MERGE INTO merge_target_table tgt
USING (
SELECT s1.col1, s1.col2, s2.col3, s2.col4, s2.col5,
s2.col6, s2.col7, s2.col8, s2.col9, s2.col10
FROM source_table_4 s1
INNER JOIN source_table_5 s2 ON s1.col1 = s2.col1
) src
ON (tgt.col1 = src.col1)
WHEN MATCHED THEN
UPDATE SET
tgt.col2 = src.col2,
tgt.col3 = src.col3,
tgt.col4 = src.col4
WHEN NOT MATCHED THEN
INSERT (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10)
VALUES (src.col1, src.col2, src.col3, src.col4, src.col5,
src.col6, src.col7, src.col8, src.col9, src.col10);
/
-- UPDATE with JOIN: Modify existing data based on another table
UPDATE update_target_table t
SET
t.col2 = (SELECT v.col2 FROM VIEW_3 v WHERE v.col1 = t.col1),
t.col3 = (SELECT b.col3 FROM base_table b WHERE b.col1 = t.col1)
WHERE t.col1 IN (SELECT col1 FROM source_table_6);
/
-- Complex multi-table JOIN with UNION in subquery
CREATE TABLE complex_join_table AS
SELECT
b.col1,
combined.col2,
combined.col3,
s6.col4,
v4.col5,
v4.col6
FROM base_table b
INNER JOIN (
SELECT col1, col2, col3 FROM source_table_1
UNION ALL
SELECT col1, col2, col3 FROM source_table_2
) combined ON b.col1 = combined.col1
LEFT JOIN source_table_6 s6 ON combined.col2 = s6.col2
LEFT JOIN VIEW_4 v4 ON s6.col3 = v4.col3;
/
-- ============================================================================
-- TEMP TABLE LINEAGE TEST
-- Test the temp table lineage feature where an intermediate table is created
-- from a source, used to create target table and view, then deleted.
-- With enableTempTableLineage=true, lineage should still be captured end-to-end
-- from source_table_1 -> interim_target_table_1 and interim_target_view_1
-- even though interim_temp_table_1 won't exist in metadata.
-- ============================================================================
-- Step 1: Create intermediate table from source
CREATE TABLE interim_temp_table_1 AS
SELECT col1, col2, col3, col4, col5, col6
FROM source_table_1
WHERE col1 IS NOT NULL;
/
-- Step 2: Create target table from intermediate table
CREATE TABLE interim_target_table_1 AS
SELECT col1, col2, col3, col4
FROM interim_temp_table_1
WHERE col2 IS NOT NULL;
/
-- Step 3: Create target view from intermediate table
CREATE VIEW interim_target_view_1 AS
SELECT col1, col2, col5, col6
FROM interim_temp_table_1
WHERE col1 > 0;
-- /
-- Deleting the intermediate table results in gv$sql.object_status = 'INVALID_UNAUTH'
-- since the base object for the target table and view is dropped. To avoid this, we
-- will use tableFilterPattern to exclude interim_temp_table_1 from ingestion instead of
-- dropping it.
-- Step 4: Delete the intermediate table (it won't be ingested into metadata)
-- DROP TABLE interim_temp_table_1;
-- ============================================================================
-- END TEMP TABLE LINEAGE TEST
-- Expected lineage with enableTempTableLineage=true:
-- source_table_1 -> interim_target_table_1
-- source_table_1 -> interim_target_view_1
-- ============================================================================
/
-- Replicate gv$sql with "TEST" schema queries into permanent table for debugging
CREATE TABLE gv_sql_cache AS
SELECT
INST_ID,
SQL_TEXT,
SQL_FULLTEXT,
SQL_ID,
SHARABLE_MEM,
PERSISTENT_MEM,
RUNTIME_MEM,
SORTS,
LOADED_VERSIONS,
OPEN_VERSIONS,
USERS_OPENING,
FETCHES,
EXECUTIONS,
PX_SERVERS_EXECUTIONS,
END_OF_FETCH_COUNT,
USERS_EXECUTING,
LOADS,
FIRST_LOAD_TIME,
INVALIDATIONS,
PARSE_CALLS,
DISK_READS,
DIRECT_WRITES,
DIRECT_READS,
BUFFER_GETS,
APPLICATION_WAIT_TIME,
CONCURRENCY_WAIT_TIME,
CLUSTER_WAIT_TIME,
USER_IO_WAIT_TIME,
PLSQL_EXEC_TIME,
JAVA_EXEC_TIME,
ROWS_PROCESSED,
COMMAND_TYPE,
OPTIMIZER_MODE,
OPTIMIZER_COST,
OPTIMIZER_ENV,
OPTIMIZER_ENV_HASH_VALUE,
PARSING_USER_ID,
PARSING_SCHEMA_ID,
PARSING_SCHEMA_NAME,
KEPT_VERSIONS,
ADDRESS,
TYPE_CHK_HEAP,
HASH_VALUE,
OLD_HASH_VALUE,
PLAN_HASH_VALUE,
FULL_PLAN_HASH_VALUE,
CHILD_NUMBER,
SERVICE,
SERVICE_HASH,
MODULE,
MODULE_HASH,
ACTION,
ACTION_HASH,
SERIALIZABLE_ABORTS,
OUTLINE_CATEGORY,
CPU_TIME,
ELAPSED_TIME,
OUTLINE_SID,
CHILD_ADDRESS,
SQLTYPE,
REMOTE,
OBJECT_STATUS,
LITERAL_HASH_VALUE,
LAST_LOAD_TIME,
IS_OBSOLETE,
IS_BIND_SENSITIVE,
IS_BIND_AWARE,
IS_SHAREABLE,
CHILD_LATCH,
SQL_PROFILE,
SQL_PATCH,
SQL_PLAN_BASELINE,
PROGRAM_ID,
PROGRAM_LINE#,
EXACT_MATCHING_SIGNATURE,
FORCE_MATCHING_SIGNATURE,
LAST_ACTIVE_TIME,
BIND_DATA,
TYPECHECK_MEM,
IO_CELL_OFFLOAD_ELIGIBLE_BYTES,
IO_INTERCONNECT_BYTES,
PHYSICAL_READ_REQUESTS,
PHYSICAL_READ_BYTES,
PHYSICAL_WRITE_REQUESTS,
PHYSICAL_WRITE_BYTES,
OPTIMIZED_PHY_READ_REQUESTS,
LOCKED_TOTAL,
PINNED_TOTAL,
IO_CELL_UNCOMPRESSED_BYTES,
IO_CELL_OFFLOAD_RETURNED_BYTES,
CON_ID,
IS_REOPTIMIZABLE,
IS_RESOLVED_ADAPTIVE_PLAN,
IM_SCANS,
IM_SCAN_BYTES_UNCOMPRESSED,
IM_SCAN_BYTES_INMEMORY,
DDL_NO_INVALIDATE,
IS_ROLLING_INVALID,
IS_ROLLING_REFRESH_INVALID,
RESULT_CACHE,
SQL_QUARANTINE,
AVOIDED_EXECUTIONS,
HEAP0_LOAD_TIME,
HEAP6_LOAD_TIME,
RESULT_CACHE_EXECUTIONS,
RESULT_CACHE_REJECTION_REASON
FROM gv$sql;
/
-- Replicate gv$sqlstats with all queries into permanent table for debugging
CREATE TABLE gv_sqlstats_cache AS
SELECT
INST_ID,
SQL_TEXT,
SQL_FULLTEXT,
SQL_ID,
LAST_ACTIVE_TIME,
LAST_ACTIVE_CHILD_ADDRESS,
PLAN_HASH_VALUE,
PARSE_CALLS,
DISK_READS,
DIRECT_WRITES,
DIRECT_READS,
BUFFER_GETS,
ROWS_PROCESSED,
SERIALIZABLE_ABORTS,
FETCHES,
EXECUTIONS,
END_OF_FETCH_COUNT,
LOADS,
VERSION_COUNT,
INVALIDATIONS,
PX_SERVERS_EXECUTIONS,
CPU_TIME,
ELAPSED_TIME,
AVG_HARD_PARSE_TIME,
APPLICATION_WAIT_TIME,
CONCURRENCY_WAIT_TIME,
CLUSTER_WAIT_TIME,
USER_IO_WAIT_TIME,
PLSQL_EXEC_TIME,
JAVA_EXEC_TIME,
SORTS,
SHARABLE_MEM,
TOTAL_SHARABLE_MEM,
TYPECHECK_MEM,
IO_CELL_OFFLOAD_ELIGIBLE_BYTES,
IO_INTERCONNECT_BYTES,
PHYSICAL_READ_REQUESTS,
PHYSICAL_READ_BYTES,
PHYSICAL_WRITE_REQUESTS,
PHYSICAL_WRITE_BYTES,
EXACT_MATCHING_SIGNATURE,
FORCE_MATCHING_SIGNATURE,
IO_CELL_UNCOMPRESSED_BYTES,
IO_CELL_OFFLOAD_RETURNED_BYTES,
DELTA_PARSE_CALLS,
DELTA_DISK_READS,
DELTA_DIRECT_WRITES,
DELTA_DIRECT_READS,
DELTA_BUFFER_GETS,
DELTA_ROWS_PROCESSED,
DELTA_FETCH_COUNT,
DELTA_EXECUTION_COUNT,
DELTA_PX_SERVERS_EXECUTIONS,
DELTA_END_OF_FETCH_COUNT,
DELTA_CPU_TIME,
DELTA_ELAPSED_TIME,
DELTA_APPLICATION_WAIT_TIME,
DELTA_CONCURRENCY_TIME,
DELTA_CLUSTER_WAIT_TIME,
DELTA_USER_IO_WAIT_TIME,
DELTA_PLSQL_EXEC_TIME,
DELTA_JAVA_EXEC_TIME,
DELTA_SORTS,
DELTA_LOADS,
DELTA_INVALIDATIONS,
DELTA_PHYSICAL_READ_REQUESTS,
DELTA_PHYSICAL_READ_BYTES,
DELTA_PHYSICAL_WRITE_REQUESTS,
DELTA_PHYSICAL_WRITE_BYTES,
DELTA_IO_INTERCONNECT_BYTES,
DELTA_CELL_OFFLOAD_ELIG_BYTES,
DELTA_CELL_UNCOMPRESSED_BYTES,
CON_ID,
CON_DBID,
OBSOLETE_COUNT,
AVOIDED_EXECUTIONS,
DELTA_AVOIDED_EXECUTIONS,
RESULT_CACHE_EXECUTIONS,
DELTA_RESULT_CACHE_EXECUTIONS,
LAST_EXEC_USER_LOCAL,
LAST_EXEC_USER_ID
FROM gv$sqlstats;
/