From cafa30f8f361bba14f05135ed03c07ed1d764ede Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Thu, 19 Feb 2026 08:58:39 +0100 Subject: [PATCH] refactor(FILE_MANAGER): Update schema reference handling for grants and table operations --- .../MARS-1057/new_version/FILE_MANAGER.pkb | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/MARS_Packages/REL03/MARS-1057/new_version/FILE_MANAGER.pkb b/MARS_Packages/REL03/MARS-1057/new_version/FILE_MANAGER.pkb index a8f4d8d..f1b7712 100644 --- a/MARS_Packages/REL03/MARS-1057/new_version/FILE_MANAGER.pkb +++ b/MARS_Packages/REL03/MARS-1057/new_version/FILE_MANAGER.pkb @@ -2000,7 +2000,6 @@ AS vOdsPrefix VARCHAR2(500); vArchivePrefix VARCHAR2(500); - vTableExists NUMBER; vParameters VARCHAR2(4000); vAreaUpper VARCHAR2(20); @@ -2012,13 +2011,13 @@ AS SELECT grantee, privilege, grantable BULK COLLECT INTO pGrantList FROM ALL_TAB_PRIVS - WHERE table_schema = USER + WHERE table_schema = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') AND table_name = pTableName AND grantee NOT IN ('SYS', 'SYSTEM', 'PUBLIC') -- Exclude system accounts ORDER BY grantee, privilege; ENV_MANAGER.LOG_PROCESS_EVENT( - 'Saved ' || pGrantList.COUNT || ' grants for table: ' || USER || '.' || pTableName, + 'Saved ' || pGrantList.COUNT || ' grants for table: ' || SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') || '.' || pTableName, 'INFO' ); EXCEPTION @@ -2055,7 +2054,7 @@ AS FOR i IN 1..pGrantList.COUNT LOOP BEGIN vGrantSQL := 'GRANT ' || pGrantList(i).privilege || - ' ON ' || USER || '.' || pTableName || + ' ON ' || SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') || '.' || pTableName || ' TO ' || pGrantList(i).grantee; IF pGrantList(i).grantable = 'YES' THEN @@ -2084,7 +2083,7 @@ AS ENV_MANAGER.LOG_PROCESS_EVENT( 'Restored ' || vGrantCount || ' of ' || pGrantList.COUNT || - ' grants for table: ' || USER || '.' || pTableName || + ' grants for table: ' || SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') || '.' || pTableName || CASE WHEN vFailCount > 0 THEN ' (' || vFailCount || ' failed)' ELSE '' END, 'INFO' ); @@ -2092,17 +2091,17 @@ AS PROCEDURE DROP_IF_EXISTS(pTableName VARCHAR2) IS BEGIN - SELECT COUNT(*) INTO vTableExists - FROM ALL_TABLES - WHERE OWNER = USER AND TABLE_NAME = pTableName; - - IF vTableExists > 0 THEN - ENV_MANAGER.LOG_PROCESS_EVENT('Dropping existing table: ' || pTableName, 'INFO'); - EXECUTE IMMEDIATE 'DROP TABLE ' || USER || '.' || pTableName; - END IF; + ENV_MANAGER.LOG_PROCESS_EVENT('Attempting to drop table: ' || pTableName, 'DEBUG'); + EXECUTE IMMEDIATE 'DROP TABLE ' || SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') || '.' || pTableName; + ENV_MANAGER.LOG_PROCESS_EVENT('Table dropped successfully: ' || pTableName, 'INFO'); EXCEPTION WHEN OTHERS THEN - ENV_MANAGER.LOG_PROCESS_EVENT('Error dropping table ' || pTableName || ': ' || SQLERRM, 'WARNING'); + IF SQLCODE = -942 THEN -- ORA-00942: table or view does not exist + ENV_MANAGER.LOG_PROCESS_EVENT('Table does not exist, skipping drop: ' || pTableName, 'INFO'); + ELSE + ENV_MANAGER.LOG_PROCESS_EVENT('Error dropping table ' || pTableName || ': ' || SQLERRM, 'WARNING'); + RAISE; -- Re-raise if not "table not exists" error + END IF; END DROP_IF_EXISTS; BEGIN