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
This commit is contained in:
@@ -289,6 +289,69 @@ END;
|
||||
|
||||
CREATE SYNONYM CONTAFIN_ORACLE.VDEF_PROGRAME_SERII FOR SYS.VAUTH_SERII;
|
||||
|
||||
-- ============================================================================
|
||||
-- SECTION: ISTORIC CODURI FISCALE, PLJSON, DIAGNOSTIC SPATIU
|
||||
-- ============================================================================
|
||||
-- Adaugate 2026-08-31. Lipseau din lista si de aici vine PLS-00905 la salvarea
|
||||
-- in istoric coduri fiscale pe orice server instalat dupa iulie 2026:
|
||||
-- VADECO.PACK_PARTENERI declara parametrii ca ISTORIC_CODURI_FISCALE.<col>%TYPE,
|
||||
-- nume necalificat, iar schemele de firma nu au sinonime private -- fara sinonim
|
||||
-- public numele nu se rezolva si pachetul ramane INVALID.
|
||||
--
|
||||
-- De ce nu ajung altfel pe server: sinonimele publice NU fac parte dintr-un export
|
||||
-- schema-mode, deci impdp nu le aduce niciodata; iar CONTAFIN_ORACLE.VERSIUNE vine
|
||||
-- cu DMP-ul si marcheaza co_2026_07_31_* / co_2026_08_* drept aplicate, deci nici
|
||||
-- ROAACTUALIZARI nu le mai creeaza. Singurul loc care le poate crea este fisierul
|
||||
-- de fata. Obiectele tinta vin cu DMP-ul, doar sinonimele lipsesc.
|
||||
--
|
||||
-- Lista verificata contra productiei ROMFAST 10.0.20.36 (100 de sinonime publice
|
||||
-- catre CONTAFIN_ORACLE); acestea sunt exact cele 20 care lipseau.
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT Istoric coduri fiscale / PLJSON / diagnostic spatiu...
|
||||
|
||||
DROP PUBLIC SYNONYM ISTORIC_CODURI_FISCALE;
|
||||
DROP PUBLIC SYNONYM VISTORIC_CODURI_FISCALE;
|
||||
DROP PUBLIC SYNONYM PACK_ISTORIC_CF;
|
||||
DROP PUBLIC SYNONYM DIAG_SPATIU_LOG;
|
||||
DROP PUBLIC SYNONYM PACK_DIAG_SPATIU;
|
||||
DROP PUBLIC SYNONYM PLJSON;
|
||||
DROP PUBLIC SYNONYM PLJSON_BOOL;
|
||||
DROP PUBLIC SYNONYM PLJSON_ELEMENT;
|
||||
DROP PUBLIC SYNONYM PLJSON_ELEMENT_ARRAY;
|
||||
DROP PUBLIC SYNONYM PLJSON_EXT;
|
||||
DROP PUBLIC SYNONYM PLJSON_LIST;
|
||||
DROP PUBLIC SYNONYM PLJSON_NARRAY;
|
||||
DROP PUBLIC SYNONYM PLJSON_NULL;
|
||||
DROP PUBLIC SYNONYM PLJSON_NUMBER;
|
||||
DROP PUBLIC SYNONYM PLJSON_PARSER;
|
||||
DROP PUBLIC SYNONYM PLJSON_PATH;
|
||||
DROP PUBLIC SYNONYM PLJSON_PATH_SEGMENT;
|
||||
DROP PUBLIC SYNONYM PLJSON_PRINTER;
|
||||
DROP PUBLIC SYNONYM PLJSON_STRING;
|
||||
DROP PUBLIC SYNONYM PLJSON_VARRAY;
|
||||
|
||||
CREATE PUBLIC SYNONYM DIAG_SPATIU_LOG FOR CONTAFIN_ORACLE.DIAG_SPATIU_LOG;
|
||||
CREATE PUBLIC SYNONYM ISTORIC_CODURI_FISCALE FOR CONTAFIN_ORACLE.ISTORIC_CODURI_FISCALE;
|
||||
CREATE PUBLIC SYNONYM PACK_DIAG_SPATIU FOR CONTAFIN_ORACLE.PACK_DIAG_SPATIU;
|
||||
CREATE PUBLIC SYNONYM PACK_ISTORIC_CF FOR CONTAFIN_ORACLE.PACK_ISTORIC_CF;
|
||||
CREATE PUBLIC SYNONYM PLJSON FOR CONTAFIN_ORACLE.PLJSON;
|
||||
CREATE PUBLIC SYNONYM PLJSON_BOOL FOR CONTAFIN_ORACLE.PLJSON_BOOL;
|
||||
CREATE PUBLIC SYNONYM PLJSON_ELEMENT FOR CONTAFIN_ORACLE.PLJSON_ELEMENT;
|
||||
CREATE PUBLIC SYNONYM PLJSON_ELEMENT_ARRAY FOR CONTAFIN_ORACLE.PLJSON_ELEMENT_ARRAY;
|
||||
CREATE PUBLIC SYNONYM PLJSON_EXT FOR CONTAFIN_ORACLE.PLJSON_EXT;
|
||||
CREATE PUBLIC SYNONYM PLJSON_LIST FOR CONTAFIN_ORACLE.PLJSON_LIST;
|
||||
CREATE PUBLIC SYNONYM PLJSON_NARRAY FOR CONTAFIN_ORACLE.PLJSON_NARRAY;
|
||||
CREATE PUBLIC SYNONYM PLJSON_NULL FOR CONTAFIN_ORACLE.PLJSON_NULL;
|
||||
CREATE PUBLIC SYNONYM PLJSON_NUMBER FOR CONTAFIN_ORACLE.PLJSON_NUMBER;
|
||||
CREATE PUBLIC SYNONYM PLJSON_PARSER FOR CONTAFIN_ORACLE.PLJSON_PARSER;
|
||||
CREATE PUBLIC SYNONYM PLJSON_PATH FOR CONTAFIN_ORACLE.PLJSON_PATH;
|
||||
CREATE PUBLIC SYNONYM PLJSON_PATH_SEGMENT FOR CONTAFIN_ORACLE.PLJSON_PATH_SEGMENT;
|
||||
CREATE PUBLIC SYNONYM PLJSON_PRINTER FOR CONTAFIN_ORACLE.PLJSON_PRINTER;
|
||||
CREATE PUBLIC SYNONYM PLJSON_STRING FOR CONTAFIN_ORACLE.PLJSON_STRING;
|
||||
CREATE PUBLIC SYNONYM PLJSON_VARRAY FOR CONTAFIN_ORACLE.PLJSON_VARRAY;
|
||||
CREATE PUBLIC SYNONYM VISTORIC_CODURI_FISCALE FOR CONTAFIN_ORACLE.VISTORIC_CODURI_FISCALE;
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT Public Synonym Creation Complete
|
||||
|
||||
@@ -43,6 +43,13 @@ GRANT EXECUTE ON SYS.DBMS_CRYPTO TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.EXECUTESCRIPTOS TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UPDATESQLPLUS TO CONTAFIN_ORACLE;
|
||||
|
||||
-- Consolidat din sys_2013_01_23_02.sql si din starea productiei 10.0.20.36.
|
||||
-- Rolurile (EXP_FULL_DATABASE / SELECT_CATALOG_ROLE) nu se aplica in PL/SQL cu
|
||||
-- drepturi de definitor, deci grantul trebuie sa fie direct. Citit de fluxul de
|
||||
-- adaugare firma noua (NewSchemaJob ruleaza impdp, NEWSCHEMAPROGRESS il urmareste).
|
||||
GRANT SELECT ON SYS.DBA_DATAPUMP_JOBS TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ON SYS.AUTH_SERII TO CONTAFIN_ORACLE;
|
||||
|
||||
-- Directory privileges
|
||||
GRANT CREATE ANY DIRECTORY TO CONTAFIN_ORACLE;
|
||||
GRANT DROP ANY DIRECTORY TO CONTAFIN_ORACLE;
|
||||
@@ -80,17 +87,21 @@ BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM EXECUTESCRIPTOS'; EXCEPTION WHEN OT
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_PINFO'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_NEWSCHEMAPROGRESS'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
|
||||
CREATE PUBLIC SYNONYM SYN_NEWSCHEMA FOR SYS.NEWSCHEMA;
|
||||
CREATE PUBLIC SYNONYM SYN_NEWSCHEMAJOB FOR SYS.NEWSCHEMAJOB;
|
||||
CREATE PUBLIC SYNONYM EXECUTESCRIPTOS FOR SYS.EXECUTESCRIPTOS;
|
||||
CREATE PUBLIC SYNONYM SYN_PINFO FOR SYS.PINFO;
|
||||
CREATE PUBLIC SYNONYM SYN_NEWSCHEMAPROGRESS FOR SYS.NEWSCHEMAPROGRESS;
|
||||
|
||||
-- Grants on synonyms
|
||||
GRANT EXECUTE ON SYN_NEWSCHEMA TO PUBLIC;
|
||||
GRANT EXECUTE ON SYN_NEWSCHEMAJOB TO PUBLIC;
|
||||
GRANT EXECUTE ON EXECUTESCRIPTOS TO PUBLIC;
|
||||
GRANT EXECUTE ON SYN_PINFO TO PUBLIC;
|
||||
GRANT EXECUTE ON SYN_NEWSCHEMAPROGRESS TO PUBLIC;
|
||||
|
||||
PROMPT SYS public synonyms complete.
|
||||
|
||||
|
||||
@@ -1122,6 +1122,52 @@ end;
|
||||
/
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- SYS.NEWSCHEMAPROGRESS
|
||||
-- ============================================================================
|
||||
-- Consolidat din sys_2014_11_06_01_FIRMA.sql (versiunea curenta, neimpachetata;
|
||||
-- sys_2012_06_21_01_FIRMA.sql o crea impachetata). NU era in acest kit: pe o
|
||||
-- instalare curata functia lipsea complet, iar tabela de versiuni vine cu DMP-ul
|
||||
-- si o marcheaza drept aplicata, deci ROAACTUALIZARI nu o mai ruleaza niciodata.
|
||||
-- Constatat lipsa pe serverul VADECO nou, prezenta pe productia 10.0.20.36.
|
||||
--
|
||||
-- Clientul ROA o apeleaza ca sa afiseze progresul importului la adaugarea unei
|
||||
-- firme noi (NewSchema/NewSchemaJob ruleaza impdp, iar asta citeste starea din
|
||||
-- dba_datapump_jobs). Sinonimul public SYN_NEWSCHEMAPROGRESS si grantul se fac
|
||||
-- in sql\sys-grants.sql, sectiunea [3/6].
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT
|
||||
PROMPT [9b/10] Creating SYS.NEWSCHEMAPROGRESS function...
|
||||
CREATE OR REPLACE FUNCTION SYS.NEWSCHEMAPROGRESS(tcSchema VARCHAR2)
|
||||
RETURN VARCHAR2 IS
|
||||
Result VARCHAR2(10000);
|
||||
lcSchema VARCHAR2(100) := UPPER(tcSchema);
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT state
|
||||
INTO Result
|
||||
FROM dba_datapump_jobs
|
||||
WHERE job_name = lcSchema
|
||||
AND OPERATION = 'IMPORT'
|
||||
AND JOB_MODE = 'SCHEMA';
|
||||
|
||||
IF UPPER(Result) = 'EXECUTING' THEN
|
||||
Result := 'IN EXECUTIE';
|
||||
ELSIF UPPER(Result) = 'COMPLETING' THEN
|
||||
Result := 'SE FINALIZEAZA';
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
Result := 'FINALIZAT';
|
||||
END;
|
||||
|
||||
RETURN(Result);
|
||||
END NEWSCHEMAPROGRESS;
|
||||
/
|
||||
PROMPT NEWSCHEMAPROGRESS created.
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- SECTION 7: UTL_MAIL
|
||||
-- ============================================================================
|
||||
@@ -1158,7 +1204,7 @@ WHERE owner = 'SYS'
|
||||
AND object_name IN (
|
||||
'AUTH_PACK', 'AUTH_DETALII', 'AUTH_SERII', 'VAUTH_SERII',
|
||||
'EXECUTESCRIPTOS', 'NEWSCHEMA', 'NEWSCHEMAJOB', 'UPDATESQLPLUS',
|
||||
'PINFO', 'INFO', 'SEQ_AUTH_SERII'
|
||||
'PINFO', 'INFO', 'SEQ_AUTH_SERII', 'NEWSCHEMAPROGRESS'
|
||||
)
|
||||
ORDER BY object_type, object_name;
|
||||
|
||||
@@ -1170,7 +1216,7 @@ WHERE owner = 'SYS'
|
||||
AND object_name IN (
|
||||
'AUTH_PACK', 'AUTH_DETALII', 'AUTH_SERII', 'VAUTH_SERII',
|
||||
'EXECUTESCRIPTOS', 'NEWSCHEMA', 'NEWSCHEMAJOB', 'UPDATESQLPLUS',
|
||||
'PINFO', 'INFO', 'SEQ_AUTH_SERII'
|
||||
'PINFO', 'INFO', 'SEQ_AUTH_SERII', 'NEWSCHEMAPROGRESS'
|
||||
)
|
||||
AND status != 'VALID';
|
||||
|
||||
|
||||
@@ -24,6 +24,14 @@ scripts (`sys_2006_*.sql` through `sys_2026_*.sql`) here.
|
||||
> 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user