Pe VADECO (instalat 25.08.2026) salvarea in istoric coduri fiscale pica cu PLS-00905: VADECO.PACK_PARTENERI invalid. Cauza: pachetul isi declara parametrii ca ISTORIC_CODURI_FISCALE.<col>%TYPE, nume necalificat, iar sinonimul public lipsea. Serverul avea 81 de sinonime publice catre CONTAFIN_ORACLE, productia 10.0.20.36 are 100 -- lipseau exact 20. Gaura apare pentru ca sinonimele publice nu fac parte dintr-un export schema-mode (impdp nu le aduce), singurul loc care le creeaza este o lista enumerata manual, iar CONTAFIN_ORACLE.VERSIUNE vine cu DMP-ul si marcheaza scripturile co_*/sys_* drept aplicate, deci nici ROAACTUALIZARI nu le mai ruleaza. Din acelasi motiv lipsea si SYS.NEWSCHEMAPROGRESS, o functie din 2014. - synonyms-public.sql: cele 20 de sinonime (81 -> 101 CREATE) - sys-objects.sql: pas [9b/10], SYS.NEWSCHEMAPROGRESS (sys_2014_11_06_01_FIRMA) - sys-grants.sql: SYN_NEWSCHEMAPROGRESS in [3/6]; granturi directe SELECT pe SYS.DBA_DATAPUMP_JOBS si SYS.AUTH_SERII in [1/6] (sys_2013_01_23_02) - docs/refresh-scripturi-dupa-instalare.md: de ce completarea listelor e paliativ si ce ar trebui sa faca un pas de refresh rulat dupa instalare, nu la instalare - sys-updates/README.md, CLAUDE.md: trimiteri catre documentul nou Aplicat pe VADECO: PACK_PARTENERI si PACK_IMPORT_COMENZI sunt VALID pe VADECO, DANUBE, LACERTA si SPACE. Obiectele ramase invalide sunt cele preexistente, invalide si pe 10.0.20.36. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J7vUBDUY5hvLwRZ45Uqzcf
5.7 KiB
Scripturile de instalare trebuie reîmprospătate la o rulare ulterioară, nu la instalare
Constatat la VADECO, 2026-08-31. Serverul fusese instalat pe 25.08.2026 cu kitul Windows și
avea 81 de sinonime publice către CONTAFIN_ORACLE, în timp ce producția ROMFAST (10.0.20.36) are
100. Lipseau exact 20, printre care ISTORIC_CODURI_FISCALE, PACK_ISTORIC_CF și toate
PLJSON* — de unde PLS-00905: object VADECO.PACK_PARTENERI is invalid la salvarea în istoric
coduri fiscale. Separat, lipsea SYS.NEWSCHEMAPROGRESS, o funcție din 2014.
De ce apare gaura
Trei mecanisme care se acoperă unul pe altul:
- Sinonimele publice nu fac parte dintr-un export schema-mode.
expdp schemas=CONTAFIN_ORACLEscoate tabelele, pachetele, tipurile și granturile de obiect, dar sinonimele publice aparțin luiPUBLIC, nu schemei.impdpnu le aduce niciodată. Obiectele ajung pe server; numele prin care se ajunge la ele, nu. - Singurul loc care le creează este o listă enumerată manual —
roa-windows-setup/sql/synonyms-public.sql, plussys-objects.sqlșisys-grants.sqlpentru partea SYS. Listele se scriu la un moment dat și rămân acolo. ROAACTUALIZARInu repară gaura, pentru că nu știe că există. Tabela de versiuni a luiPACK_MIGRAREtrăiește înCONTAFIN_ORACLEși vine cu DMP-ul, deci pe baza nouă scripturileco_*șisys_*figurează deja ca aplicate și sunt sărite — deși înSYSși înPUBLICnu s-a creat nimic. Vezi șidocs/lectii-actualizare-roa-alias-tns.md.
Rezultatul: o instalare nouă pornește cu obiectele la zi (vin din DMP), cu sinonimele și obiectele SYS de la data ultimei actualizări manuale a listelor, și cu un contor care spune că totul e aplicat. Cu cât DMP-ul e mai nou față de liste, cu atât gaura e mai mare.
Direcția corectă: refresh după instalare, nu liste crescute la nesfârșit
Completarea listelor din kit rezolvă instalarea de azi, nu problema. Orice obiect central adăugat după ultima editare a listelor reintroduce exact aceeași situație, iar defectul se vede abia la client, ca pachet invalid.
Pasul care lipsește este un refresh, rulat după instalare și re-rulabil oricând, care nu depinde de tabela de versiuni venită cu DMP-ul:
- Nu la instalare. La instalare,
synonyms-public.sql/sys-objects.sql/sys-grants.sqlrămân ce sunt: aduc baza într-o stare pornibilă. Nu au de unde ști ce s-a mai adăugat central între momentul în care au fost scrise și momentul instalării. - La o rulare ulterioară, un pas separat compară starea reală a bazei cu sursa de adevăr și
completează diferența. Idempotent, fără a scrie în
VERSIUNE.
Ce trebuie să facă refresh-ul
- Sinonimele publice — generate, nu enumerate. Sursa: obiectele
CONTAFIN_ORACLEcu grant cătrePUBLICcare nu au deja un sinonim public cu același nume (nu cu același obiect țintă — atenție, există și sinonimeSYN_<nume>, iar un filtru petable_nameraportează numele simplu ca acoperit deși nu se rezolvă). Alternativ, exportate din 10.0.20.36. - Scripturile
sys_*mai noi decât kitul — aplicate pe baza a ceea ce există efectiv înSYS, nu pe baza a ce spuneCONTAFIN_ORACLE.VERSIUNE. Corpusul curent:D:\ROA\DATABASE\SCRIPTURI_CLAR\<an>\<lună>\sys_*.sql. Copia dinproxmox/lxc108-oracle/new-roa-oracle-server/este veche și incompletă (nu conține niciun script din 2026) — nu se folosește ca sursă. - Verificare la final — obiecte invalide pe
CONTAFIN_ORACLEși pe schemele de firmă. Cele preexistente sunt cunoscute și invalide și pe producție (EMAILINCASARI,RESPONSABILI2PARTENERI,PACK_IMPORT,PACK_HOTEL,PACK_RESTAURANT,ACTUALIZARE_STOC_072010,CRM_V*,VCRM_*,VBALANTA_CLIENTI,VNOM_INTRET); ele nu sunt semnal de instalare greșită.
Referința de comparație
10.0.20.36 (ROMFAST producție, Oracle 19c SE2, non-CDB, SID ROA).
PDB-ul ROA din laborator (LXC 108) nu e referință validă: are 252 de sinonime publice, multe
pentru obiecte de dezvoltare (TEST_*, PLSQL_PROFILER_*, SYS_EXPORT_SCHEMA_*) care nu există
pe niciun server de producție. O comparație cu laboratorul dă 171 de sinonime „lipsă", din care
doar 20 sunt reale.
Atenție și în sens invers: pentru versiunile obiectelor SYS, ROMFAST e în urmă — AUTH_PACK de
pe VADECO e mai nou (spec 62 vs 42 linii, body 533 vs 507). ROMFAST e referință pentru ce lipsește
cu totul, nu pentru cât de nou e ce există.
Ce s-a făcut pe 2026-08-31 (paliativ, nu soluția)
Listele din kit au fost completate cu ce lipsea, iar VADECO a fost reparat punctual:
roa-windows-setup/sql/synonyms-public.sql— cele 20 de sinonime (81 → 101CREATE).roa-windows-setup/sql/sys-objects.sql— pas[9b/10],SYS.NEWSCHEMAPROGRESS(dinsys_2014_11_06_01_FIRMA.sql).roa-windows-setup/sql/sys-grants.sql—SYN_NEWSCHEMAPROGRESSîn[3/6]; granturile directeSELECTpeSYS.DBA_DATAPUMP_JOBSșiSYS.AUTH_SERIIcătreCONTAFIN_ORACLEîn[1/6](dinsys_2013_01_23_02.sql).- Aplicat pe VADECO cu două scripturi ad-hoc (create public synonym × 20, respectiv funcția
SYS + sinonimul + granturile), rulate ca
SYSDBApeXEPDB1. Nu sunt păstrate în repo: conținutul lor este exact ce s-a consolidat mai sus în kit, deci se regenerează de acolo. După rulare,PACK_PARTENERIșiPACK_IMPORT_COMENZIsunt VALID pe VADECO, DANUBE, LACERTA și SPACE.
Asta închide cazul VADECO și instalările făcute de acum înainte. Nu închide problema: listele sunt tot enumerate manual și vor rămâne din nou în urmă. Pasul de refresh descris mai sus este ce mai lipsește.