Files
ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/sql/sys-updates/README.md
Marius e69fc07e46 fix(roa-setup): sinonime publice si obiecte SYS lipsa pe serverele instalate cu kitul
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
2026-08-31 13:57:08 +03:00

81 lines
3.2 KiB
Markdown

# SYS Updates Folder
This folder is for **future patches and updates only**, not for initial setup.
## Important Note
The initial SYS objects (AUTH_PACK, NEWSCHEMA, EXECUTESCRIPTOS, etc.) are already
consolidated in `../sys-objects.sql`. You do NOT need to copy the old individual
scripts (`sys_2006_*.sql` through `sys_2026_*.sql`) here.
**Initial setup order:**
1. `sys-objects.sql` - Creates all SYS objects (tables, packages, procedures, views)
— rulat de `scripts/02-create-sys-objects.ps1`
2. Import `CONTAFIN_ORACLE.dmp` - Application schema
— rulat de `scripts/03-import-contafin.ps1`
3. `sys-grants.sql` - Grants, public synonyms, DMPDIR și granturile de dicționar cerute de
`PACK_DIAG_SPATIU` (secțiunea `[5/5]`, consolidând `sys_2026_08_03_05`,
`sys_2026_08_03_07` și `sys_2026_08_06_07`)
— rulat de `scripts/04-create-synonyms-grants.ps1`, după import
4. `sys-updates/*.sql` - (Optional) Post-install patches
> **Atenție la migrări.** Tabela de versiuni a lui `PACK_MIGRARE` trăiește în
> `CONTAFIN_ORACLE` și vine cu DMP-ul, deci pe baza nouă `ROAACTUALIZARI` va considera
> scripturile `sys_*` deja aplicate și le va sări — deși în `SYS` nu există nimic. Orice
> `sys_*` necesar unei instalări curate trebuie consolidat în pașii 1-3 de mai sus, nu
> lăsat pe seama actualizatorului.
>
> **Consolidarea în pașii 1-3 este însă un paliativ, nu soluția.** Listele din `sys-objects.sql`,
> `sys-grants.sql` și `synonyms-public.sql` sunt enumerate manual și rămân în urmă imediat ce se
> mai adaugă un obiect central. Ce lipsește este un pas de **refresh, rulat după instalare și
> re-rulabil oricând**, care compară starea reală a bazei cu sursa de adevăr (producția
> 10.0.20.36 și `D:\ROA\DATABASE\SCRIPTURI_CLAR\<an>\<lună>\sys_*.sql`) și completează diferența,
> fără să se uite la tabela de versiuni venită cu DMP-ul.
> Vezi `docs/refresh-scripturi-dupa-instalare.md`.
## When to Use This Folder
Place scripts here when you need to:
- Add new grants or privileges after initial setup
- Patch AUTH_PACK or other SYS objects
- Add new SYS procedures/functions
- Fix issues discovered after deployment
## Naming Convention
Use date-based naming for proper ordering:
```
YYYY_MM_DD_##_DESCRIPTION.sql
```
Examples:
- `2026_02_15_01_AUTH_PACK_FIX.sql`
- `2026_03_01_01_NEW_GRANT.sql`
## How Scripts Are Executed
1. The `run-sys-updates.sql` master script executes all `.sql` files in this folder
2. Scripts run in alphabetical order (hence the date prefix)
3. Each script should be idempotent (safe to run multiple times)
## Template
```sql
-- ============================================================================
-- YYYY_MM_DD_##_DESCRIPTION
-- ============================================================================
-- Author: Your Name
-- Date: YYYY-MM-DD
-- Description: What this script does
-- ============================================================================
SET SERVEROUTPUT ON
WHENEVER SQLERROR CONTINUE
-- Your SQL here
-- Update version tracking (optional)
-- EXEC CONTAFIN_ORACLE.PACK_MIGRARE.UpdateVersiune('sys_YYYY_MM_DD_##_DESCRIPTION','','SYS');
-- COMMIT;
```