-- ============================================================================ -- EXPORT LICENTE ROA (SYS.AUTH_SERII + SYS.AUTH_DETALII) -- ============================================================================ -- Se ruleaza pe serverul VECHI, ca SYSDBA. Nu modifica nimic - doar citeste. -- -- Scoate pe stdout un script SQL cu INSERT-urile echivalente, gata de rulat -- pe serverul NOU. SERIE e RAW(128), deci se transporta ca HEXTORAW(). -- -- Doua moduri de folosire: -- -- a) automat - 09-copy-licenses.ps1 se conecteaza la serverul vechi si -- captureaza singur iesirea; -- -- b) manual, cand serverul vechi nu e accesibil din cel nou: -- sqlplus -S "sys/PAROLA@GAZDA:1521/SERVICIU as sysdba" @export-licente.sql > licente.sql -- apoi duci licente.sql la client si rulezi: -- .\09-copy-licenses.ps1 -FromFile licente.sql -- -- ATENTIE: iesirea nu trebuie sa contina nimic altceva decat SQL. De aceea -- toate PROMPT-urile lipsesc si totul e SET ... OFF. -- ============================================================================ SET PAGESIZE 0 SET FEEDBACK OFF SET VERIFY OFF SET HEADING OFF SET ECHO OFF SET TERMOUT ON SET TRIMSPOOL ON SET TRIMOUT ON SET LINESIZE 32767 SET LONG 1000000 SET LONGCHUNKSIZE 1000000 SET SERVEROUTPUT OFF WHENEVER SQLERROR EXIT FAILURE -- Antet: marcaj de validare citit de 09-copy-licenses.ps1. SELECT '-- ROA-LICENTE-EXPORT v1' FROM dual; SELECT '-- sursa: ' || SYS_CONTEXT('USERENV','DB_NAME') || ' / ' || SYS_CONTEXT('USERENV','SERVER_HOST') || ' la ' || TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM dual; -- --------------------------------------------------------------------------- -- AUTH_DETALII (Customer ID). Are o singura coloana, VARCHAR2(15). -- --------------------------------------------------------------------------- SELECT '-- AUTH_DETALII: ' || COUNT(*) || ' inregistrari' FROM sys.auth_detalii; SELECT 'INSERT INTO SYS.AUTH_DETALII (DETALII) VALUES (''' || REPLACE(detalii, '''', '''''') || ''');' FROM sys.auth_detalii; -- --------------------------------------------------------------------------- -- AUTH_SERII (seriile de licenta propriu-zise). -- SERIE e RAW(128) -> RAWTOHEX la export, HEXTORAW la import. -- --------------------------------------------------------------------------- SELECT '-- AUTH_SERII: ' || COUNT(*) || ' inregistrari' FROM sys.auth_serii; SELECT 'INSERT INTO SYS.AUTH_SERII (ID_SERIE,ID_PROGRAM,SERIE,STERS,DATAORA,ID_UTIL,DATAORAS,ID_UTILS) VALUES (' || TO_CHAR(id_serie) || ',' || TO_CHAR(id_program) || ',' || 'HEXTORAW(''' || RAWTOHEX(serie) || ''')' || ',' || TO_CHAR(sters) || ',' || 'TO_DATE(''' || TO_CHAR(dataora,'YYYY-MM-DD HH24:MI:SS') || ''',''YYYY-MM-DD HH24:MI:SS'')' || ',' || TO_CHAR(id_util) || ',' || CASE WHEN dataoras IS NULL THEN 'NULL' ELSE 'TO_DATE(''' || TO_CHAR(dataoras,'YYYY-MM-DD HH24:MI:SS') || ''',''YYYY-MM-DD HH24:MI:SS'')' END || ',' || NVL(TO_CHAR(id_utils), 'NULL') || ');' FROM sys.auth_serii ORDER BY id_serie; -- --------------------------------------------------------------------------- -- Secventa: pe serverul nou trebuie sa continue de unde a ramas cea veche, -- altfel prima licenta adaugata ulterior calca peste un ID_SERIE existent. -- --------------------------------------------------------------------------- SELECT '-- SEQ_AUTH_SERII trebuie sa porneasca de la ' || TO_CHAR(NVL(MAX(id_serie),0) + 1) FROM sys.auth_serii; SELECT '-- ROA-LICENTE-NEXTVAL=' || TO_CHAR(NVL(MAX(id_serie),0) + 1) FROM sys.auth_serii; SELECT 'COMMIT;' FROM dual; SELECT '-- ROA-LICENTE-SFARSIT' FROM dual; EXIT