@echo off REM ============================================================================== REM Script: 00-MASTER-MIGRATION.bat REM Descriere: Master control script - Windows Edition REM Data: 1 Octombrie 2025 REM Autor: Migrare Oracle automata REM ============================================================================== REM REM Acest script controleaza intregul proces de migrare Oracle pe Windows REM - Ghideaza utilizatorul prin fiecare pas REM - Suport special pentru UPGRADE IN-PLACE (Oracle vechi → 21c pe acelasi PC) REM - Poate rula scripturi bash prin WSL sau ghidare manuala REM REM ============================================================================== setlocal enabledelayedexpansion REM Culori (Windows 10+) set "GREEN=[92m" set "YELLOW=[93m" set "RED=[91m" set "BLUE=[94m" set "NC=[0m" REM Banner cls echo. echo ======================================== echo MASTER MIGRARE ORACLE 10g - 21c XE echo Windows Edition echo ======================================== echo. echo Acest script te va ghida prin intregul proces de migrare Oracle. echo. echo IMPORTANT: Ruleaza ca ADMINISTRATOR! echo. pause REM ============================================================================== REM CONFIGURARE MEDIU REM ============================================================================== cls echo. echo ======================================== echo CONFIGURARE CONEXIUNI ORACLE echo ======================================== echo. REM Detectare SQLPlus (Oracle Client) set SQLPLUS_AVAILABLE=0 where sqlplus >nul 2>&1 if %errorlevel% equ 0 ( set SQLPLUS_AVAILABLE=1 echo %GREEN%[✓] SQLPlus disponibil%NC% ) else ( echo %YELLOW%[!] SQLPlus nu este instalat sau nu este in PATH%NC% ) echo. echo Unde este instalat Oracle 21c XE? echo 1) Acest PC Windows (local) echo 2) VM/Server Linux (cu WSL pentru scripturi) echo 3) LXC Proxmox (necesita WSL + SSH) echo. set /p ORACLE_LOCATION="Alegere (1/2/3): " if "%ORACLE_LOCATION%"=="1" ( set ORACLE_CONNECT_TYPE=WINDOWS_LOCAL echo - Oracle 21c: Windows Local ) else if "%ORACLE_LOCATION%"=="2" ( set /p ORACLE_HOST="IP/hostname server Linux: " set ORACLE_CONNECT_TYPE=LINUX_REMOTE echo - Oracle 21c: Linux Remote ^(!ORACLE_HOST!^) ) else if "%ORACLE_LOCATION%"=="3" ( set /p PROXMOX_HOST="IP/hostname Proxmox: " set /p LXC_ID="ID LXC: " set ORACLE_CONNECT_TYPE=LXC echo - Oracle 21c: LXC !LXC_ID! @ !PROXMOX_HOST! ) else ( echo %RED%Alegere invalida!%NC% pause exit /b 1 ) echo. echo ======================================== echo CONFIGURARE EXPORT echo ======================================== echo. echo Cum vrei sa faci EXPORTUL din Oracle sursa? echo 1) AUTOMAT - SSH catre server sursa (export automat) echo 2) MANUAL - Tu exporti, scriptul preia fisierele DMP echo 3) LOCAL - Migrare pe acelasi server (porturi diferite) echo 4) UPGRADE IN-PLACE - Oracle vechi - Oracle nou (acest PC, ghidare completa) echo. set /p EXPORT_CHOICE="Alegere (1/2/3/4): " if "%EXPORT_CHOICE%"=="1" ( REM Export AUTOMAT via SSH set /p ORACLE_SOURCE_HOST="IP/hostname Oracle sursa: " set /p ORACLE_SOURCE_USER="User SSH: " set /p ORACLE_SOURCE_OS="Tip server sursa (Linux/Windows): " set EXPORT_MODE=AUTO echo - Export AUTOMAT via SSH ) else if "%EXPORT_CHOICE%"=="2" ( REM Export MANUAL set /p EXPORT_DIR="Director unde vei pune fisierele DMP (ex: D:\ORACLE_EXPORT): " set EXPORT_MODE=MANUAL echo - Export MANUAL (tu exporti local) ) else if "%EXPORT_CHOICE%"=="3" ( REM Migrare LOCALA (porturi diferite) echo. echo %YELLOW%Migrare LOCALA detectata (acelasi server)%NC% echo. set /p ORACLE_SOURCE_PORT="Port Oracle SURSA (ex: 1521): " set /p ORACLE_SOURCE_SID="SID Oracle SURSA (ex: XE): " set /p ORACLE_SOURCE_PASS="Password SYSTEM pentru Oracle SURSA: " set /p ORACLE_DEST_PORT="Port Oracle DESTINATIE (ex: 1522): " set /p ORACLE_DEST_SID="SID Oracle DESTINATIE (ex: roa): " set /p EXPORT_DIR="Director pentru export local (ex: D:\oracle-export): " set EXPORT_MODE=LOCAL echo - Export LOCAL (acelasi server: !ORACLE_SOURCE_PORT! - !ORACLE_DEST_PORT!) ) else if "%EXPORT_CHOICE%"=="4" ( REM UPGRADE IN-PLACE cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE ORACLE IN-PLACE - GHIDARE COMPLETA ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. echo Acest mod te va ghida prin urmatorii pasi: echo 1. 📤 Export DMP din Oracle vechi (pe Windows) echo 2. ⏸️ Oprire servicii Oracle vechi echo 3. 📥 Instalare Oracle 21c XE nou echo 4. 📦 Import DMP in Oracle 21c echo 5. ✅ Verificare si finalizare echo. set /p OLD_ORACLE_PORT="Port Oracle VECHI (default 1521): " if "!OLD_ORACLE_PORT!"=="" set OLD_ORACLE_PORT=1521 set /p OLD_ORACLE_SID="SID Oracle VECHI (ex: XE, ROA): " set /p OLD_ORACLE_PASS="Password SYSTEM pentru Oracle VECHI: " set /p EXPORT_DIR="Director pentru salvare DMP (ex: D:\oracle-export): " set EXPORT_MODE=INPLACE set ORACLE_SOURCE_OS=Windows echo. echo %GREEN%Configurare UPGRADE IN-PLACE completa!%NC% echo Oracle vechi: !OLD_ORACLE_SID! @ localhost:!OLD_ORACLE_PORT! echo Export in: !EXPORT_DIR! ) else ( echo %RED%Alegere invalida!%NC% pause exit /b 1 ) echo. echo ======================================== echo REZUMAT CONFIGURARE echo ======================================== echo. echo Oracle 21c: %ORACLE_CONNECT_TYPE% echo Export mode: %EXPORT_MODE% if "%EXPORT_MODE%"=="INPLACE" ( echo Oracle vechi: !OLD_ORACLE_SID! @ localhost:!OLD_ORACLE_PORT! echo Export dir: !EXPORT_DIR! ) echo. set /p CONFIRM="Configurarea este corecta? (Y/N): " if /i not "%CONFIRM%"=="Y" ( echo. echo Reconfigureaza si ruleaza din nou pause exit /b 1 ) REM ============================================================================== REM MOD OPERARE REM ============================================================================== cls echo. echo ======================================== echo SELECTARE MOD OPERARE echo ======================================== echo. echo Selecteaza modul de lucru: echo 1) MIGRARE COMPLETA (Oracle 10g - 21c) echo 2) INSTALARE NOUA (din template-uri) echo. set /p MODE_CHOICE="Alegere (1/2): " if "%MODE_CHOICE%"=="1" ( set MODE=MIGRATION echo. echo %GREEN%Mod selectat: MIGRARE COMPLETA%NC% ) else if "%MODE_CHOICE%"=="2" ( set MODE=NEW_INSTALL echo. echo %GREEN%Mod selectat: INSTALARE NOUA%NC% ) else ( echo %RED%Alegere invalida!%NC% pause exit /b 1 ) echo. pause REM ============================================================================== REM UPGRADE IN-PLACE - WORKFLOW SPECIAL REM ============================================================================== if "%EXPORT_MODE%"=="INPLACE" ( call :InPlaceUpgrade goto :End ) REM ============================================================================== REM WORKFLOW NORMAL (AUTO/MANUAL/LOCAL) REM ============================================================================== echo. echo ======================================== echo PORNIRE MIGRARE echo ======================================== echo. if %WSL_AVAILABLE% equ 1 ( echo %GREEN%Rulare scripturi bash prin WSL...%NC% echo. REM Converteste path-ul Windows la WSL set SCRIPT_PATH=%~dp0 set SCRIPT_PATH=!SCRIPT_PATH:\=/! set SCRIPT_PATH=!SCRIPT_PATH:C:=/mnt/c! set SCRIPT_PATH=!SCRIPT_PATH:D:=/mnt/d! set SCRIPT_PATH=!SCRIPT_PATH:E:=/mnt/e! echo Scripturi in: !SCRIPT_PATH! echo. REM Export variabile environment pentru WSL wsl export EXPORT_MODE="%EXPORT_MODE%" wsl export ORACLE_CONNECT_TYPE="%ORACLE_CONNECT_TYPE%" if "%EXPORT_MODE%"=="MANUAL" ( wsl export EXPORT_DIR="%EXPORT_DIR%" ) REM Ruleaza master script bash prin WSL wsl bash -c "cd '!SCRIPT_PATH!' && ./00-MASTER-MIGRATION.sh" ) else ( echo %YELLOW%WSL nu este disponibil!%NC% echo. echo Optiuni: echo 1. Instaleaza WSL: https://docs.microsoft.com/en-us/windows/wsl/install echo 2. SAU ruleaza manual scripturile (vezi README.md) echo. pause ) goto :End REM ============================================================================== REM FUNCTIE: UPGRADE IN-PLACE REM ============================================================================== :InPlaceUpgrade cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE IN-PLACE - PASUL 1/5: EXPORT DMP ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. echo %YELLOW%IMPORTANT: Executa comenzile de mai jos in acest Command Prompt%NC% echo (sau deschide un nou Command Prompt CA ADMINISTRATOR) echo. pause REM Genereaza timestamp pentru fisiere for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b) echo. echo ======================================== echo COMENZI EXPORT (COPY-PASTE) echo ======================================== echo. echo REM Creaza director export echo mkdir "%EXPORT_DIR%" 2^>nul echo cd /d "%EXPORT_DIR%" echo. echo REM Export CONTAFIN_ORACLE echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% ^ echo FILE=CONTAFIN_ORACLE_%mydate%.dmp ^ echo OWNER=CONTAFIN_ORACLE ^ echo LOG=contafin_export.log ^ echo CONSISTENT=Y echo. echo REM Export MARIUSM_AUTO (daca ai) echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% ^ echo FILE=MARIUSM_AUTO_%mydate%.dmp ^ echo OWNER=MARIUSM_AUTO ^ echo LOG=mariusm_export.log ^ echo CONSISTENT=Y echo. echo REM Verificare fisiere create echo dir *.dmp echo. echo ======================================== echo. REM Creeaza fisier batch pentru export set EXPORT_BATCH=%EXPORT_DIR%\RUN-EXPORT.bat echo @echo off > "%EXPORT_BATCH%" echo REM Export generat automat >> "%EXPORT_BATCH%" echo cd /d "%EXPORT_DIR%" >> "%EXPORT_BATCH%" echo. >> "%EXPORT_BATCH%" echo echo Exportare CONTAFIN_ORACLE... >> "%EXPORT_BATCH%" echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% FILE=CONTAFIN_ORACLE_%mydate%.dmp OWNER=CONTAFIN_ORACLE LOG=contafin_export.log CONSISTENT=Y >> "%EXPORT_BATCH%" echo. >> "%EXPORT_BATCH%" echo echo Exportare MARIUSM_AUTO... >> "%EXPORT_BATCH%" echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% FILE=MARIUSM_AUTO_%mydate%.dmp OWNER=MARIUSM_AUTO LOG=mariusm_export.log CONSISTENT=Y >> "%EXPORT_BATCH%" echo. >> "%EXPORT_BATCH%" echo echo Export complet! >> "%EXPORT_BATCH%" echo dir *.dmp >> "%EXPORT_BATCH%" echo pause >> "%EXPORT_BATCH%" echo %GREEN%[✓] Am creat fisier batch automat: %EXPORT_BATCH%%NC% echo. echo Poti rula direct: "%EXPORT_BATCH%" echo. set /p RUN_EXPORT_NOW="Vrei sa rulez exportul ACUM? (Y/N): " if /i "%RUN_EXPORT_NOW%"=="Y" ( echo. echo %GREEN%Pornire export...%NC% call "%EXPORT_BATCH%" ) else ( echo. echo %YELLOW%OK - ruleaza manual exportul cand esti gata%NC% ) echo. set /p EXPORT_DONE="Ai terminat exportul si ai verificat fisierele DMP? (Y/N): " if /i not "%EXPORT_DONE%"=="Y" ( echo. echo Termina exportul si apoi continua... pause goto :InPlaceUpgrade ) REM Verificare fisiere DMP echo. echo Verificare fisiere in %EXPORT_DIR%... if exist "%EXPORT_DIR%\CONTAFIN*.dmp" ( echo %GREEN%[✓] Fisier CONTAFIN gasit!%NC% dir "%EXPORT_DIR%\CONTAFIN*.dmp" ) else ( echo %RED%[✗] Nu gasesc fisier CONTAFIN in %EXPORT_DIR%%NC% pause ) REM ============================================================================== REM PASUL 2: OPRIRE ORACLE VECHI REM ============================================================================== cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE IN-PLACE - PASUL 2/5: OPRIRE ORACLE VECHI ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. echo %YELLOW%ATENTIE: Vei opri Oracle VECHI!%NC% echo Asigura-te ca ai backup la fisierele DMP! echo. pause echo. echo ======================================== echo COMENZI OPRIRE SERVICII (COPY-PASTE) echo ======================================== echo. echo REM Oprire servicii Oracle vechi echo net stop OracleServiceXE echo net stop OracleXETNSListener echo. echo REM Optional: Dezactiveaza pornirea automata echo sc config OracleServiceXE start= disabled echo sc config OracleXETNSListener start= disabled echo. echo REM Verificare echo sc query OracleServiceXE echo. echo ======================================== echo. REM Creeaza fisier batch pentru oprire set STOP_BATCH=%EXPORT_DIR%\STOP-ORACLE-OLD.bat echo @echo off > "%STOP_BATCH%" echo REM Oprire Oracle vechi >> "%STOP_BATCH%" echo echo Oprire servicii Oracle vechi... >> "%STOP_BATCH%" echo net stop OracleServiceXE >> "%STOP_BATCH%" echo net stop OracleXETNSListener >> "%STOP_BATCH%" echo echo. >> "%STOP_BATCH%" echo sc config OracleServiceXE start= disabled >> "%STOP_BATCH%" echo sc config OracleXETNSListener start= disabled >> "%STOP_BATCH%" echo echo. >> "%STOP_BATCH%" echo echo Verificare status: >> "%STOP_BATCH%" echo sc query OracleServiceXE >> "%STOP_BATCH%" echo pause >> "%STOP_BATCH%" echo %GREEN%[✓] Am creat fisier batch: %STOP_BATCH%%NC% echo. set /p STOP_NOW="Vrei sa opresc Oracle VECHI ACUM? (Y/N): " if /i "%STOP_NOW%"=="Y" ( echo. echo %GREEN%Oprire Oracle vechi...%NC% call "%STOP_BATCH%" ) else ( echo. echo %YELLOW%OK - opreste manual Oracle vechi cand esti gata%NC% ) echo. set /p ORACLE_STOPPED="Ai oprit Oracle vechi? (Y/N): " if /i not "%ORACLE_STOPPED%"=="Y" ( echo. echo Opreste Oracle vechi si apoi continua... pause exit /b 1 ) REM ============================================================================== REM PASUL 3: INSTALARE ORACLE 21c XE REM ============================================================================== cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE IN-PLACE - PASUL 3/5: INSTALARE ORACLE 21c ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. echo Urmatorul pas: Instalare Oracle 21c XE echo. echo Optiuni: echo 1. Download Oracle XE 21c pentru Windows: echo https://www.oracle.com/database/technologies/xe-downloads.html echo. echo 2. Fisier: OracleXE213_Win64.zip (~2.5 GB) echo. echo 3. Instalare: echo - Extrage ZIP echo - Ruleaza setup.exe CA ADMINISTRATOR echo - Port: 1521 (acelasi ca Oracle vechi) echo - Password SYS: OraclePass123 (sau custom) echo. echo 4. Dupa instalare, revino aici pentru import! echo. pause echo. echo Deschid browser pentru download... start https://www.oracle.com/database/technologies/xe-downloads.html echo. set /p ORACLE21_INSTALLED="Ai instalat Oracle 21c XE? (Y/N): " if /i not "%ORACLE21_INSTALLED%"=="Y" ( echo. echo Instaleaza Oracle 21c XE si apoi continua... pause exit /b 1 ) REM ============================================================================== REM PASUL 4: SETUP + IMPORT REM ============================================================================== cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE IN-PLACE - PASUL 4/5: SETUP ^& IMPORT ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. REM ============================================================================== REM RULARE NATIVA WINDOWS (fara WSL) REM ============================================================================== if %SQLPLUS_AVAILABLE% equ 1 ( echo %GREEN%Rulare setup ^& import NATIV pe Windows...%NC% echo. set SCRIPT_DIR=%~dp0 set ORACLE21_PASSWORD=OraclePass123 REM Pasul 1: Setup Oracle 21c echo ======================================== echo PASUL 1: Setup Tablespace ^& Useri echo ======================================== echo. call :CreateSetupScript echo Rulare setup SQL... sqlplus sys/!ORACLE21_PASSWORD!@localhost:1521/XE as sysdba @"%SCRIPT_DIR%setup-windows.sql" if %errorlevel% neq 0 ( echo %RED%Eroare la setup!%NC% pause goto :End ) echo %GREEN%[✓] Setup complet!%NC% echo. REM Pasul 2: Import DMP echo ======================================== echo PASUL 2: Import DMP echo ======================================== echo. call :CreateImportScript echo Import CONTAFIN_ORACLE... call "%SCRIPT_DIR%import-windows.bat" if %errorlevel% neq 0 ( echo %YELLOW%Importul poate avea warning-uri normale (obiecte existente)%NC% ) echo %GREEN%[✓] Import complet!%NC% echo. REM Pasul 3: Sinonime + Grant-uri echo ======================================== echo PASUL 3: Sinonime ^& Grant-uri echo ======================================== echo. call :CreateSynonymsScript sqlplus system/!ORACLE21_PASSWORD!@localhost:1521/roa @"%SCRIPT_DIR%synonyms-windows.sql" echo %GREEN%[✓] Sinonime create!%NC% echo. REM Pasul 4: Finalizare echo ======================================== echo PASUL 4: Recompilare ^& Verificare echo ======================================== echo. call :CreateFinalizeScript sqlplus system/!ORACLE21_PASSWORD!@localhost:1521/roa @"%SCRIPT_DIR%finalize-windows.sql" echo %GREEN%[✓] Finalizare completa!%NC% ) else ( echo %YELLOW%SQLPlus nu este disponibil!%NC% echo. echo Pentru import manual, instaleaza Oracle Client si adauga sqlplus in PATH echo SAU urmeaza pasii din README-UPGRADE-IN-PLACE.md echo. pause ) REM ============================================================================== REM PASUL 5: VERIFICARE REM ============================================================================== cls echo. echo ╔══════════════════════════════════════════════════════════════╗ echo ║ UPGRADE IN-PLACE - PASUL 5/5: VERIFICARE FINALA ║ echo ╚══════════════════════════════════════════════════════════════╝ echo. echo %GREEN%Migrare completata!%NC% echo. echo Verificare conexiune: echo sqlplus CONTAFIN_ORACLE/OraclePass123@localhost:1521/roa echo. echo Verificare obiecte: echo SELECT COUNT(*) FROM user_tables; echo SELECT COUNT(*) FROM user_objects WHERE status = 'INVALID'; echo. echo Log-uri disponibile: echo %EXPORT_DIR%\*.log echo. echo %GREEN%Succes!%NC% echo. pause goto :End REM ============================================================================== REM FUNCTII GENERARE SCRIPTURI SQL REM ============================================================================== :CreateSetupScript echo Generare script setup... set SETUP_SQL=%SCRIPT_DIR%setup-windows.sql ( echo -- Setup Oracle 21c - Generat automat echo SET ECHO ON echo SET SERVEROUTPUT ON echo. echo -- Conectare la CDB echo ALTER SESSION SET CONTAINER = CDB$ROOT; echo. echo -- Creare PDB ROA ^(daca nu exista^) echo DECLARE echo v_count NUMBER; echo BEGIN echo SELECT COUNT^(^*^) INTO v_count FROM dba_pdbs WHERE pdb_name = 'ROA'; echo IF v_count = 0 THEN echo EXECUTE IMMEDIATE 'CREATE PLUGGABLE DATABASE roa ADMIN USER pdbadmin IDENTIFIED BY OraclePass123'; echo EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE roa OPEN'; echo EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE roa SAVE STATE'; echo END IF; echo END; echo / echo. echo -- Conectare la PDB ROA echo ALTER SESSION SET CONTAINER = ROA; echo. echo -- Creare tablespace ROA echo CREATE TABLESPACE roa_data echo DATAFILE 'roa_data01.dbf' SIZE 2G echo AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED echo EXTENT MANAGEMENT LOCAL echo SEGMENT SPACE MANAGEMENT AUTO; echo. echo -- Creare user CONTAFIN_ORACLE echo CREATE USER CONTAFIN_ORACLE IDENTIFIED BY OraclePass123 echo DEFAULT TABLESPACE roa_data echo TEMPORARY TABLESPACE temp echo QUOTA UNLIMITED ON roa_data; echo. echo -- Grant-uri CONTAFIN_ORACLE echo GRANT CONNECT, RESOURCE, DBA TO CONTAFIN_ORACLE; echo GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO CONTAFIN_ORACLE; echo GRANT CREATE PROCEDURE, CREATE TRIGGER, CREATE SEQUENCE TO CONTAFIN_ORACLE; echo GRANT CREATE SYNONYM, CREATE PUBLIC SYNONYM TO CONTAFIN_ORACLE; echo. echo -- Creare user MARIUSM_AUTO echo CREATE USER MARIUSM_AUTO IDENTIFIED BY OraclePass123 echo DEFAULT TABLESPACE roa_data echo TEMPORARY TABLESPACE temp echo QUOTA UNLIMITED ON roa_data; echo. echo GRANT CONNECT, RESOURCE TO MARIUSM_AUTO; echo GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO MARIUSM_AUTO; echo. echo PROMPT Setup complet! echo EXIT; ) > "%SETUP_SQL%" echo %GREEN%[✓] Script generat: %SETUP_SQL%%NC% goto :eof :CreateImportScript echo Generare script import... set IMPORT_BAT=%SCRIPT_DIR%import-windows.bat for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b) ( echo @echo off echo REM Import DMP - Generat automat echo cd /d "%EXPORT_DIR%" echo. echo echo Import CONTAFIN_ORACLE... echo imp system/%ORACLE21_PASSWORD%@localhost:1521/roa ^ echo FILE=CONTAFIN_ORACLE*.dmp ^ echo FROMUSER=CONTAFIN_ORACLE ^ echo TOUSER=CONTAFIN_ORACLE ^ echo IGNORE=Y ^ echo COMMIT=Y ^ echo BUFFER=10485760 ^ echo LOG=contafin_import.log echo. echo echo Import MARIUSM_AUTO... echo imp system/%ORACLE21_PASSWORD%@localhost:1521/roa ^ echo FILE=MARIUSM_AUTO*.dmp ^ echo FROMUSER=MARIUSM_AUTO ^ echo TOUSER=MARIUSM_AUTO ^ echo IGNORE=Y ^ echo COMMIT=Y ^ echo BUFFER=10485760 ^ echo LOG=mariusm_import.log echo. echo echo Import complet! echo dir *.log ) > "%IMPORT_BAT%" echo %GREEN%[✓] Script generat: %IMPORT_BAT%%NC% goto :eof :CreateSynonymsScript echo Generare script sinonime... set SYN_SQL=%SCRIPT_DIR%synonyms-windows.sql ( echo -- Sinonime + Grant-uri - Generat automat echo SET ECHO ON echo. echo -- Grant SELECT on CONTAFIN tables to PUBLIC echo DECLARE echo CURSOR c_tables IS echo SELECT table_name FROM dba_tables WHERE owner = 'CONTAFIN_ORACLE'; echo BEGIN echo FOR rec IN c_tables LOOP echo BEGIN echo EXECUTE IMMEDIATE 'GRANT SELECT ON CONTAFIN_ORACLE.' ^|^| rec.table_name ^|^| ' TO PUBLIC'; echo EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM SYN_' ^|^| rec.table_name ^|^| ' FOR CONTAFIN_ORACLE.' ^|^| rec.table_name; echo EXCEPTION echo WHEN OTHERS THEN NULL; echo END; echo END LOOP; echo END; echo / echo. echo PROMPT Sinonime create! echo EXIT; ) > "%SYN_SQL%" echo %GREEN%[✓] Script generat: %SYN_SQL%%NC% goto :eof :CreateFinalizeScript echo Generare script finalizare... set FIN_SQL=%SCRIPT_DIR%finalize-windows.sql ( echo -- Finalizare - Generat automat echo SET ECHO ON echo SET SERVEROUTPUT ON echo. echo -- Recompilare obiecte invalide echo BEGIN echo DBMS_UTILITY.compile_schema^(schema =^> 'CONTAFIN_ORACLE', compile_all =^> FALSE^); echo DBMS_UTILITY.compile_schema^(schema =^> 'MARIUSM_AUTO', compile_all =^> FALSE^); echo END; echo / echo. echo -- Verificare obiecte invalide echo SELECT owner, object_type, object_name, status echo FROM dba_objects echo WHERE owner IN ^('CONTAFIN_ORACLE', 'MARIUSM_AUTO'^) echo AND status = 'INVALID'; echo. echo -- Statistici finale echo SELECT 'CONTAFIN_ORACLE' AS schema, COUNT^(^*^) AS total_tables echo FROM dba_tables WHERE owner = 'CONTAFIN_ORACLE' echo UNION ALL echo SELECT 'MARIUSM_AUTO', COUNT^(^*^) echo FROM dba_tables WHERE owner = 'MARIUSM_AUTO'; echo. echo PROMPT Migrare completa! echo EXIT; ) > "%FIN_SQL%" echo %GREEN%[✓] Script generat: %FIN_SQL%%NC% goto :eof REM ============================================================================== REM FINAL REM ============================================================================== :End echo. echo ======================================== echo MIGRARE COMPLETA echo ======================================== echo. pause exit /b 0