52 lines
2.6 KiB
Markdown
52 lines
2.6 KiB
Markdown
# 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/<parola>@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`).
|