# Export surse Oracle (PACK_CONTAFIN & co.) - cum se face `PACK_CONTAFIN.pck` din acest folder este exportul sursei pachetului PL/SQL `PACK_CONTAFIN`. Claude Code isi face singur exportul/reimprospatarea - nu mai e nevoie de export manual din PL/SQL Developer. ## Conexiune Conectare, alias TNS, schema (`MARIUSM_AUTO` pe `ROA_CENTRAL`) si capcana BOM la SQL prin pipe: vezi `conventie_mediu_oracle.md` sectiunea 4. Aici doar ce e specific exportului: `PACK_CONTAFIN` exista in schemele `MARIUSM_AUTO` (dev) si `ACN`, plus sinonim `PUBLIC`. Exportul de referinta se face din `MARIUSM_AUTO`. Inainte de a lua o sursa de acolo ca referinta pentru o modificare, verifica ca `MARIUSM_AUTO` are toate scripturile aplicate - procedura si regula "sursa de referinta pentru DDL e MARIUSM_AUTO, nu productia" sunt in `scripturi-migrare-db.md`, sectiunea "Sursa de referinta pentru DDL". ## Comanda de export (re-generare .pck) > **`linesize` prea mic corupe tacut sursa.** SQL*Plus face **wrap** la coloana `linesize`, deci o > linie de cod mai lunga e rupta in doua - inclusiv **prin mijlocul unui identificator**. Fisierul > pare intreg, `diff` fata de el nu arata nimic, dar recompilarea lui da erori la linii care n-au > nicio legatura cu ce ai modificat (`ORA-00920`, `PLS-*`). `PACK_FACTURARE` are linii de peste > **1000** de caractere, iar un export la `linesize 400` i-a rupt 8. Foloseste `linesize 32767` si > verifica dupa export ca nicio linie nu atinge exact valoarea `linesize`. > > **Exportul e bun pentru CITIT, nu ca baza pentru un script de migrare.** Pentru un script de > pachet, pleaca de la ultimul script aplicat din `SCRIPTURI_CLAR` (fisier real, care n-a trecut > niciodata printr-un spool) si confirma ca e la zi comparandu-l cu exportul **ignorand spatiul > alb** - asa wrap-ul nu mai conteaza: > `tr -d ' \t\r\n' < fisier | md5sum` pe ambele. ```sql -- export_pack.sql set pagesize 0 linesize 32767 long 2000000 longchunksize 32767 trimspool on feedback off heading off termout off spool D:\ROA\ROAGEST\COMUN\docs\PACK_CONTAFIN.pck select text from all_source where owner='MARIUSM_AUTO' and name='PACK_CONTAFIN' and type='PACKAGE' order by line; select '/' from dual; select text from all_source where owner='MARIUSM_AUTO' and name='PACK_CONTAFIN' and type='PACKAGE BODY' order by line; select '/' from dual; spool off exit ``` ```powershell & 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'MARIUSM_AUTO/@ROA_CENTRAL' '@export_pack.sql' ``` Acelasi tipar merge pentru orice alt pachet/procedura (`PACK_SESIUNE`, `PACK_PRETURI`, ...) sau pentru DDL de tabele/view-uri (`all_tab_columns`, `dbms_metadata.get_ddl`).