feat(clienti): add Oracle XE PDB recreare scripts and audit cleanup
- Complete PDB export/import workflow (16 scripts in clienti/oracle-xe-21c/import/) - Recreare PDB script with step-by-step guide (recreare_pdb.sql) - Universal audit cleanup script for Oracle XE 11g-21c (cleanup_audit.sql) - Troubleshooting guide with all lessons learned (depanare-ora-12954-spatiu.md) - Fixed: DIRECTORY grant syntax, DBMS_LOCK grant, remap_tablespace USERS:ROA, impdp quoted AS SYSDBA for Windows, AWR retention 8 days, datafile full path - Updated roa-windows-setup docs with XE prevention steps and gotchas table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
266
clienti/oracle-xe-21c/depanare-ora-12954-spatiu.md
Normal file
266
clienti/oracle-xe-21c/depanare-ora-12954-spatiu.md
Normal file
@@ -0,0 +1,266 @@
|
||||
# ORA-12954: Database size exceeds 12 GB limit (Oracle XE)
|
||||
|
||||
Oracle XE are limita hard de 12 GB. Limita se aplica pe **suma datafile-urilor** (dba_data_files), NU pe segmente (dba_segments). Un datafile poate fi 90% gol dar tot conteaza la limita.
|
||||
|
||||
## Diagnostic rapid
|
||||
|
||||
```sql
|
||||
-- IMPORTANT: Verifica AMBELE - segmente vs datafiles
|
||||
-- Segmente (spatiu efectiv folosit)
|
||||
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS used_mb
|
||||
FROM dba_segments GROUP BY tablespace_name ORDER BY used_mb DESC;
|
||||
|
||||
-- Datafiles (spatiu ALOCAT - asta conteaza la limita de 12 GB!)
|
||||
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS allocated_mb
|
||||
FROM dba_data_files GROUP BY tablespace_name ORDER BY allocated_mb DESC;
|
||||
|
||||
SELECT ROUND(SUM(bytes)/1024/1024) AS total_allocated_mb FROM dba_data_files;
|
||||
|
||||
-- Ce ocupa SYSAUX (de obicei vinovatul)
|
||||
SELECT occupant_name, ROUND(space_usage_kbytes/1024) AS size_mb
|
||||
FROM v$sysaux_occupants ORDER BY space_usage_kbytes DESC;
|
||||
|
||||
-- Top 20 segmente mari in SYSAUX
|
||||
SELECT segment_name, segment_type, ROUND(bytes/1024/1024) AS size_mb
|
||||
FROM dba_segments WHERE tablespace_name = 'SYSAUX'
|
||||
ORDER BY bytes DESC FETCH FIRST 20 ROWS ONLY;
|
||||
|
||||
-- Identifica LOB-uri mari
|
||||
SELECT owner, table_name, column_name
|
||||
FROM dba_lobs
|
||||
WHERE segment_name = '<segment_name_from_above>';
|
||||
|
||||
-- Audit policies active (trebuie dezactivate!)
|
||||
SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
|
||||
|
||||
-- Auto tasks (sql tuning advisor = vinovatul principal)
|
||||
SELECT client_name, status FROM dba_autotask_client;
|
||||
```
|
||||
|
||||
## Pas 1: Cleanup segmente (elibereaza spatiu in datafile)
|
||||
|
||||
### SQL Tuning Sets (principalul vinovat, poate ocupa 5+ GB)
|
||||
|
||||
```sql
|
||||
-- Incearca mai intai DROP curat
|
||||
BEGIN
|
||||
FOR r IN (SELECT name, owner FROM dba_sqlset) LOOP
|
||||
BEGIN
|
||||
DBMS_SQLTUNE.DROP_SQLSET(r.name, r.owner);
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
END LOOP;
|
||||
END;
|
||||
/
|
||||
|
||||
-- Daca DROP nu elibereaza spatiul, TRUNCATE direct:
|
||||
TRUNCATE TABLE sys.wri$_sqlset_plan_lines;
|
||||
TRUNCATE TABLE sys.wri$_sqlset_plans;
|
||||
TRUNCATE TABLE sys.wri$_sqlset_statistics;
|
||||
TRUNCATE TABLE sys.wri$_sqlset_statements;
|
||||
TRUNCATE TABLE sys.wri$_sqlset_references;
|
||||
TRUNCATE TABLE sys.wri$_sqlset_definitions;
|
||||
```
|
||||
|
||||
### Advisor + AWR + Statistici
|
||||
|
||||
```sql
|
||||
EXEC DBMS_ADVISOR.DELETE_EXPIRED_TASKS;
|
||||
-- NOTA: retention trebuie >= moving window baseline (default 8 zile)
|
||||
-- Daca da ORA-13541, creste retention la 8*24*60
|
||||
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
|
||||
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
EXEC DBMS_STATS.PURGE_STATS(SYSDATE - 7);
|
||||
PURGE DBA_RECYCLEBIN;
|
||||
```
|
||||
|
||||
## Pas 2: Resize datafiles (recupereaza spatiul alocat)
|
||||
|
||||
TRUNCATE elibereaza segmentele dar datafile-ul ramane la aceeasi dimensiune. Trebuie RESIZE.
|
||||
|
||||
```sql
|
||||
-- Verifica path-urile fisierelor
|
||||
SELECT file_id, tablespace_name, ROUND(bytes/1024/1024) AS size_mb, file_name
|
||||
FROM dba_data_files ORDER BY bytes DESC;
|
||||
|
||||
-- Gaseste minimul posibil de resize
|
||||
SELECT file_id, CEIL((MAX(block_id + blocks - 1) * 8192) / 1048576) + 10 AS min_size_mb
|
||||
FROM dba_extents WHERE tablespace_name = 'SYSAUX' GROUP BY file_id;
|
||||
|
||||
-- Resize
|
||||
ALTER DATABASE DATAFILE '<path>' RESIZE <size>M;
|
||||
```
|
||||
|
||||
### Daca resize esueaza cu ORA-03297 (used data beyond resize value)
|
||||
|
||||
Segmentele sunt imprastiate in datafile. Pe Oracle XE 21c nu exista SHRINK_TABLESPACE (doar 23ai+).
|
||||
|
||||
**Solutie UNDOTBS1** (testat, functioneaza):
|
||||
```sql
|
||||
-- Seteaza undo pe MANUAL temporar
|
||||
ALTER SYSTEM SET undo_management = 'MANUAL' SCOPE = SPFILE;
|
||||
|
||||
-- Restart PDB
|
||||
ALTER SESSION SET CONTAINER = CDB$ROOT;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 CLOSE IMMEDIATE;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 OPEN RESTRICTED;
|
||||
ALTER SESSION SET CONTAINER = XEPDB1;
|
||||
|
||||
-- Drop si recreare
|
||||
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
|
||||
|
||||
CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '<path>\UNDOTBS01.DBF' SIZE 100M AUTOEXTEND ON MAXSIZE 500M;
|
||||
ALTER SYSTEM SET undo_tablespace = 'UNDOTBS1';
|
||||
ALTER SYSTEM SET undo_management = 'AUTO' SCOPE = SPFILE;
|
||||
|
||||
-- Restart PDB normal
|
||||
ALTER SESSION SET CONTAINER = CDB$ROOT;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 CLOSE IMMEDIATE;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
|
||||
```
|
||||
|
||||
**Solutie SYSAUX** (daca resize cu ORA-03297):
|
||||
SYSAUX nu se poate face drop/recreare. Singura solutie este **recrearea PDB-ului**:
|
||||
1. Export complet (scheme + obiecte SYS custom)
|
||||
2. Drop PDB
|
||||
3. Recreare PDB din PDB$SEED
|
||||
4. Import
|
||||
|
||||
Scripturi de export/import disponibile in directorul `import/`.
|
||||
Scriptul master: `import/recreare_pdb.sql`
|
||||
|
||||
## Pas 3: Preventie (IMPORTANT - ruleaza pe orice server nou!)
|
||||
|
||||
```sql
|
||||
-- Dezactiveaza auto tasks care umfla SYSAUX
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor', operation => NULL, window_name => NULL);
|
||||
SELECT client_name, status FROM dba_autotask_client;
|
||||
|
||||
-- AWR retention (min 8 zile din cauza moving window baseline)
|
||||
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
|
||||
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
|
||||
-- Dezactiveaza audit policies (umfla AUDSYS)
|
||||
NOAUDIT POLICY ORA_SECURECONFIG;
|
||||
NOAUDIT POLICY ORA_LOGON_FAILURES;
|
||||
SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
|
||||
```
|
||||
|
||||
## AUDSYS (audit trail)
|
||||
|
||||
Cleanup-ul via `DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL` esueaza cu ORA-12954 cand baza e plina (chiar si in restricted mode). Dezactiveaza audit policies **preventiv** pe orice server nou:
|
||||
|
||||
```sql
|
||||
NOAUDIT POLICY ORA_SECURECONFIG;
|
||||
NOAUDIT POLICY ORA_LOGON_FAILURES;
|
||||
SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
|
||||
-- Ar trebui sa returneze: no rows selected
|
||||
```
|
||||
|
||||
## Tablespace USERS
|
||||
|
||||
PDB-ul nou creat din PDB$SEED NU are tablespace USERS. Obiectele care erau pe USERS pe serverul vechi trebuie remapate la import:
|
||||
|
||||
```cmd
|
||||
impdp "sys/PAROLA_SYS@XEPDB1 AS SYSDBA" directory=DMPDIR dumpfile=schema.dmp logfile=schema.log remap_tablespace=USERS:ROA
|
||||
```
|
||||
|
||||
## Grant-uri pe DIRECTORY-uri
|
||||
|
||||
Sintaxa corecta pentru grant-uri pe Oracle DIRECTORY objects:
|
||||
|
||||
```sql
|
||||
-- CORECT:
|
||||
GRANT READ, WRITE ON DIRECTORY DMPDIR TO CONTAFIN_ORACLE;
|
||||
|
||||
-- GRESIT (ORA-00942):
|
||||
GRANT READ ON SYS.DMPDIR TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.DMPDIR TO CONTAFIN_ORACLE; -- EXECUTE nu e valid pe DIRECTORY
|
||||
```
|
||||
|
||||
## DBMS_LOCK pe Oracle XE 21c
|
||||
|
||||
Pe Oracle XE 21c, `SYS.DBMS_LOCK` necesita grant explicit:
|
||||
|
||||
```sql
|
||||
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE;
|
||||
```
|
||||
|
||||
Fara acest grant, pachetele care folosesc `sys.dbms_lock.sleep()` dau `PLS-00201`.
|
||||
|
||||
## impdp/expdp AS SYSDBA pe Windows
|
||||
|
||||
Pe Windows CMD, `AS SYSDBA` trebuie inclus in ghilimele escaped:
|
||||
|
||||
```cmd
|
||||
-- CORECT:
|
||||
impdp "sys/PAROLA@XEPDB1 AS SYSDBA" directory=DMPDIR dumpfile=schema.dmp logfile=schema.log
|
||||
|
||||
-- GRESIT (interpretat ca argument separat):
|
||||
impdp sys/PAROLA@XEPDB1 AS SYSDBA directory=DMPDIR dumpfile=schema.dmp logfile=schema.log
|
||||
```
|
||||
|
||||
## User SYSTEM pe PDB nou
|
||||
|
||||
SYSTEM e common user — nu poate fi unlock/modificat doar pe un PDB. Trebuie din CDB$ROOT:
|
||||
|
||||
```sql
|
||||
ALTER SESSION SET CONTAINER = CDB$ROOT;
|
||||
ALTER USER SYSTEM IDENTIFIED BY "ParolaNoua" ACCOUNT UNLOCK;
|
||||
```
|
||||
|
||||
Alternativ, foloseste SYS AS SYSDBA pentru impdp (recomandat).
|
||||
|
||||
## Datafile path explicit
|
||||
|
||||
La CREATE TABLESPACE pe Oracle XE 21c, trebuie specificat path-ul complet:
|
||||
|
||||
```sql
|
||||
-- CORECT:
|
||||
CREATE TABLESPACE ROA DATAFILE 'C:\APP\...\ORADATA\XE\XEPDB1\ROA01.DBF' SIZE 2048M AUTOEXTEND ON NEXT 100M MAXSIZE 6G;
|
||||
|
||||
-- GRESIT (ORA-02236: invalid file name):
|
||||
CREATE TABLESPACE ROA DATAFILE SIZE 2048M AUTOEXTEND ON NEXT 100M MAXSIZE 6G;
|
||||
```
|
||||
|
||||
Gaseste path-ul corect:
|
||||
```sql
|
||||
SELECT file_name FROM dba_data_files WHERE ROWNUM = 1;
|
||||
```
|
||||
|
||||
## Verificare mod undo (local vs shared)
|
||||
|
||||
```sql
|
||||
-- Din CDB$ROOT
|
||||
SELECT property_value FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';
|
||||
```
|
||||
|
||||
## Rezultate tipice
|
||||
|
||||
### Dupa cleanup (fara recreare PDB)
|
||||
|
||||
| Componenta | Inainte | Dupa cleanup |
|
||||
|-----------|---------|-------------|
|
||||
| SYSAUX segmente | 7.5 GB | 1.9 GB |
|
||||
| SYSAUX datafile | 7.8 GB | 7.8 GB (fara resize) / 2.5 GB (cu resize) |
|
||||
| UNDOTBS1 | 2.1 GB | 0.1 GB (dupa recreare) |
|
||||
| Total alocat | 13.5 GB | 4.5 GB (cu recreare UNDO) |
|
||||
|
||||
### Dupa recreare PDB (solutia definitiva)
|
||||
|
||||
| Componenta | Inainte | Dupa recreare PDB |
|
||||
|-----------|---------|-------------------|
|
||||
| SYSAUX | 7.8 GB | 390 MB |
|
||||
| SYSTEM | - | 370 MB |
|
||||
| ROA | - | 2 GB |
|
||||
| UNDOTBS1 | 2.1 GB | 165 MB |
|
||||
| **Total alocat** | **13.5 GB** | **~3 GB** |
|
||||
|
||||
## Lectii invatate
|
||||
|
||||
1. **TRUNCATE vs DROP pe SQL Tuning Sets**: DROP nu elibereaza spatiul LOB-ului. TRUNCATE functioneaza.
|
||||
2. **Limita 12 GB = dba_data_files, nu dba_segments**: Chiar daca segmentele ocupa 4.5 GB, datafile-urile alocate conteaza.
|
||||
3. **SYSAUX nu se poate shrink**: ORA-03297 la orice valoare cand segmentele sunt la high water mark. Singura solutie = recreare PDB.
|
||||
4. **AWR retention >= moving window baseline**: Default baseline = 8 zile. Nu poti seta retention < 8 zile fara a reduce baseline-ul (care nu exista ca procedura pe XE 21c).
|
||||
5. **Audit policies active pe PDB nou**: PDB-ul creat din PDB$SEED vine cu ORA_SECURECONFIG si ORA_LOGON_FAILURES active. Dezactiveaza-le imediat.
|
||||
6
clienti/oracle-xe-21c/import/01_tablespaces.sql
Normal file
6
clienti/oracle-xe-21c/import/01_tablespaces.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- 01_tablespaces.sql
|
||||
-- Create custom tablespaces
|
||||
-- Source: backup/11_tablespaces.sql
|
||||
|
||||
-- NOTA: Ajusteaza path-ul daca Oracle Home e diferit
|
||||
CREATE TABLESPACE ROA DATAFILE 'C:\APP\EXT_MMUTU\PRODUCT\21C\ORADATA\XE\XEPDB1\ROA01.DBF' SIZE 2048M AUTOEXTEND ON NEXT 100M MAXSIZE 6G;
|
||||
13
clienti/oracle-xe-21c/import/02_useri.sql
Normal file
13
clienti/oracle-xe-21c/import/02_useri.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
-- 02_useri.sql
|
||||
-- Create application users
|
||||
-- Source: backup/10_useri.sql
|
||||
|
||||
CREATE USER "CONTAFIN_ORACLE" IDENTIFIED BY "ROMFASTSOFT"
|
||||
DEFAULT TABLESPACE "ROA"
|
||||
TEMPORARY TABLESPACE "TEMP";
|
||||
/
|
||||
|
||||
CREATE USER "ROMPETROLE" IDENTIFIED BY "ROMFASTSOFT"
|
||||
DEFAULT TABLESPACE "ROA"
|
||||
TEMPORARY TABLESPACE "TEMP";
|
||||
/
|
||||
61
clienti/oracle-xe-21c/import/03_directories.sql
Normal file
61
clienti/oracle-xe-21c/import/03_directories.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
-- 03_directories.sql
|
||||
-- Create Oracle directories
|
||||
-- Source: backup/04_directories.sql
|
||||
|
||||
CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
|
||||
CREATE OR REPLACE DIRECTORY SCHEDULER$_LOG_DIR AS 'C:\app\ext_mmutu\product\21c\homes\OraDB21Home1\scheduler\log';
|
||||
CREATE OR REPLACE DIRECTORY UPD_COMUNROA AS 'C:\ROAUPDATE\_ARHIVE\COMUNROA';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAAPROV AS 'C:\ROAUPDATE\_ARHIVE\ROAAPROV';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAAUTO AS 'C:\ROAUPDATE\_ARHIVE\ROAAUTO';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROABAVERT AS 'C:\ROAUPDATE\_ARHIVE\ROABAVERT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACASA AS 'C:\ROAUPDATE\_ARHIVE\ROACASA';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACOMENZI AS 'C:\ROAUPDATE\_ARHIVE\ROACOMENZI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACONIMPORT AS 'C:\ROAUPDATE\_ARHIVE\ROACONIMPORT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACONSTRUCTII AS 'C:\ROAUPDATE\_ARHIVE\ROACONSTRUCTII';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACONT AS 'C:\ROAUPDATE\_ARHIVE\ROACONT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROACONTRACTE AS 'C:\ROAUPDATE\_ARHIVE\ROACONTRACTE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROADECL AS 'C:\ROAUPDATE\_ARHIVE\ROADECL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROADEF AS 'C:\ROAUPDATE\_ARHIVE\ROADEF';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROADEFSALARII AS 'C:\ROAUPDATE\_ARHIVE\ROADEFSALARII';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROADEPOZIT AS 'C:\ROAUPDATE\_ARHIVE\ROADEPOZIT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROADEVIZE AS 'C:\ROAUPDATE\_ARHIVE\ROADEVIZE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAFACTURARE AS 'C:\ROAUPDATE\_ARHIVE\ROAFACTURARE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAFURNIZORI AS 'C:\ROAUPDATE\_ARHIVE\ROAFURNIZORI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAGEN AS 'C:\ROAUPDATE\_ARHIVE\ROAGEN';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAGEST AS 'C:\ROAUPDATE\_ARHIVE\ROAGEST';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAGRESTAURANT AS 'C:\ROAUPDATE\_ARHIVE\ROAGRESTAURANT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAHOTEL AS 'C:\ROAUPDATE\_ARHIVE\ROAHOTEL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAHOTELCONFIG AS 'C:\ROAUPDATE\_ARHIVE\ROAHOTELCONFIG';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAIMOB AS 'C:\ROAUPDATE\_ARHIVE\ROAIMOB';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAINCHIDSAL AS 'C:\ROAUPDATE\_ARHIVE\ROAINCHIDSAL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROALUCRARI AS 'C:\ROAUPDATE\_ARHIVE\ROALUCRARI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAMANAGER AS 'C:\ROAUPDATE\_ARHIVE\ROAMANAGER';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAMASINI AS 'C:\ROAUPDATE\_ARHIVE\ROAMASINI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROANOR AS 'C:\ROAUPDATE\_ARHIVE\ROANOR';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROANORFRUVIMED AS 'C:\ROAUPDATE\_ARHIVE\ROANORFRUVIMED';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROANORRENAV AS 'C:\ROAUPDATE\_ARHIVE\ROANORRENAV';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROANORUTMIDIA AS 'C:\ROAUPDATE\_ARHIVE\ROANORUTMIDIA';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAOBINV AS 'C:\ROAUPDATE\_ARHIVE\ROAOBINV';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAOFERTARE AS 'C:\ROAUPDATE\_ARHIVE\ROAOFERTARE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAPRETURI AS 'C:\ROAUPDATE\_ARHIVE\ROAPRETURI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAPRINT AS 'C:\ROAUPDATE\_ARHIVE\ROAPRINT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAPRINT_INITIALIZARI AS 'C:\ROAUPDATE\_ARHIVE\ROAPRINT_INITIALIZARI';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAPRODAGR AS 'C:\ROAUPDATE\_ARHIVE\ROAPRODAGR';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAPRODUCTIE AS 'C:\ROAUPDATE\_ARHIVE\ROAPRODUCTIE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAREGISTRATURA AS 'C:\ROAUPDATE\_ARHIVE\ROAREGISTRATURA';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAREPARTIZSAL AS 'C:\ROAUPDATE\_ARHIVE\ROAREPARTIZSAL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROARES AS 'C:\ROAUPDATE\_ARHIVE\ROARES';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROARESTAURANT AS 'C:\ROAUPDATE\_ARHIVE\ROARESTAURANT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROARETAIL AS 'C:\ROAUPDATE\_ARHIVE\ROARETAIL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROARETAILMON AS 'C:\ROAUPDATE\_ARHIVE\ROARETAILMON';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASAL AS 'C:\ROAUPDATE\_ARHIVE\ROASAL';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASALSPEC AS 'C:\ROAUPDATE\_ARHIVE\ROASALSPEC';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASITFIN AS 'C:\ROAUPDATE\_ARHIVE\ROASITFIN';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASITOP AS 'C:\ROAUPDATE\_ARHIVE\ROASITOP';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASTART AS 'C:\ROAUPDATE\_ARHIVE\ROASTART';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROASUPORT AS 'C:\ROAUPDATE\_ARHIVE\ROASUPORT';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROATELCOMM AS 'C:\ROAUPDATE\_ARHIVE\ROATELCOMM';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROATELMON AS 'C:\ROAUPDATE\_ARHIVE\ROATELMON';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAUPDATE AS 'C:\ROAUPDATE';
|
||||
CREATE OR REPLACE DIRECTORY UPD_ROAVIN AS 'C:\ROAUPDATE\_ARHIVE\ROAVIN';
|
||||
CREATE OR REPLACE DIRECTORY UPD_USERREPORTS AS 'C:\ROAUPDATE\_ARHIVE\USERREPORTS';
|
||||
57
clienti/oracle-xe-21c/import/04_sys_tables.sql
Normal file
57
clienti/oracle-xe-21c/import/04_sys_tables.sql
Normal file
@@ -0,0 +1,57 @@
|
||||
-- 04_sys_tables.sql
|
||||
-- Create SYS custom tables and sequence
|
||||
-- Source: backup/06_sys_tables.sql
|
||||
|
||||
CREATE TABLE "SYS"."AUTH_DETALII"
|
||||
( "DETALII" VARCHAR2(15) NOT NULL ENABLE
|
||||
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
|
||||
NOCOMPRESS LOGGING
|
||||
STORAGE(INITIAL 16384 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
||||
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
||||
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
|
||||
TABLESPACE "SYSTEM";
|
||||
/
|
||||
|
||||
CREATE TABLE "SYS"."AUTH_SERII"
|
||||
( "ID_SERIE" NUMBER(5,0) NOT NULL ENABLE,
|
||||
"ID_PROGRAM" NUMBER(5,0) NOT NULL ENABLE,
|
||||
"SERIE" RAW(128) NOT NULL ENABLE,
|
||||
"STERS" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
|
||||
"DATAORA" DATE DEFAULT sysdate NOT NULL ENABLE,
|
||||
"ID_UTIL" NUMBER(5,0) NOT NULL ENABLE,
|
||||
"DATAORAS" DATE,
|
||||
"ID_UTILS" NUMBER(5,0),
|
||||
CONSTRAINT "PK_AUTH_SERII" PRIMARY KEY ("ID_SERIE")
|
||||
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
|
||||
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
||||
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
||||
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
|
||||
TABLESPACE "SYSTEM" ENABLE
|
||||
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
|
||||
NOCOMPRESS LOGGING
|
||||
STORAGE(INITIAL 16384 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
||||
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
||||
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
|
||||
TABLESPACE "SYSTEM";
|
||||
/
|
||||
|
||||
CREATE TABLE "SYS"."INFO"
|
||||
( "INFO" CLOB,
|
||||
"DATAORA" TIMESTAMP (6) DEFAULT SYSTIMESTAMP,
|
||||
"LOCATIA" VARCHAR2(200)
|
||||
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
|
||||
NOCOMPRESS LOGGING
|
||||
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
||||
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
||||
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
|
||||
TABLESPACE "SYSTEM"
|
||||
LOB ("INFO") STORE AS BASICFILE (
|
||||
TABLESPACE "SYSTEM" ENABLE STORAGE IN ROW 4000 CHUNK 8192 RETENTION
|
||||
NOCACHE LOGGING
|
||||
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
||||
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
||||
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT));
|
||||
/
|
||||
|
||||
CREATE SEQUENCE "SYS"."SEQ_AUTH_SERII" MINVALUE 1 MAXVALUE 99999999999999999 INCREMENT BY 1 START WITH 37 NOCACHE NOORDER NOCYCLE NOKEEP NOSCALE GLOBAL;
|
||||
/
|
||||
955
clienti/oracle-xe-21c/import/05_sys_code_objects.sql
Normal file
955
clienti/oracle-xe-21c/import/05_sys_code_objects.sql
Normal file
@@ -0,0 +1,955 @@
|
||||
-- 05_sys_code_objects.sql
|
||||
-- Create SYS custom code objects (packages, procedures, functions)
|
||||
-- Source: backup/05_sys_code_objects.sql
|
||||
-- Note: UTL_MAIL and UTL_MAIL_INTERNAL excluded (Oracle built-in)
|
||||
|
||||
-- ============================================================================
|
||||
-- AUTH_PACK Package Specification
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PACKAGE "SYS"."AUTH_PACK" is
|
||||
|
||||
-- Author : MARIUS.ATANASIU
|
||||
-- Created : 11/5/2005 9:58:27 AM
|
||||
-- Purpose :
|
||||
|
||||
procedure verifica_program;
|
||||
|
||||
procedure verifica_licenta(v_sid IN NUMBER, v_program IN VARCHAR2);
|
||||
procedure verifica_licenta_luna(v_an IN NUMBER,
|
||||
v_luna IN NUMBER,
|
||||
v_tip IN NUMBER);
|
||||
procedure verifica_numar_firme;
|
||||
|
||||
procedure adauga_serie(V_ID_PROGRAM IN NUMBER,
|
||||
V_SERIE IN VARCHAR2,
|
||||
V_ID_UTILAD IN NUMBER);
|
||||
|
||||
procedure sterge_serie(V_ID_PROGRAM IN NUMBER, V_ID_UTILS IN NUMBER);
|
||||
|
||||
procedure verifica_serie(V_ID_PROGRAM IN NUMBER, V_SERIE IN RAW);
|
||||
|
||||
function selecteaza_serie(V_ID_PROGRAM IN NUMBER) return varchar2;
|
||||
|
||||
function selecteaza_nr_util(V_ID_PROGRAM IN NUMBER) return number;
|
||||
|
||||
function selecteaza_data_val(V_ID_PROGRAM IN NUMBER) return date;
|
||||
|
||||
function decripteaza_serie(V_ID_PROGRAM IN NUMBER,
|
||||
V_SERIE IN RAW,
|
||||
V_DATAORA IN DATE) return varchar2;
|
||||
|
||||
function decripteaza_nr_util(V_SERIEC IN VARCHAR2) return number;
|
||||
|
||||
function decripteaza_data_val(V_SERIEC IN VARCHAR2, V_ZI IN VARCHAR2)
|
||||
return date;
|
||||
|
||||
function hextodec(V_HEXA IN VARCHAR2) return number;
|
||||
|
||||
function dectohex(V_NUMAR IN NUMBER) return varchar2;
|
||||
|
||||
end AUTH_PACK;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- AUTH_PACK Package Body
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PACKAGE BODY "SYS"."AUTH_PACK" is
|
||||
-- versiune 2025-01-14-01
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- ISTORIC MODIFICARI:
|
||||
-- 2025-01-14: Migrare Oracle 10g -> Oracle 21c Express
|
||||
-- - Inlocuit DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt cu DBMS_CRYPTO.DECRYPT
|
||||
-- - Folosit ENCRYPT_3DES_2KEY (cheie 16 bytes) + CHAIN_CBC + PAD_ZERO
|
||||
-- - Modificari in: decripteaza_serie()
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
procedure verifica_program is
|
||||
v_program VARCHAR2(256);
|
||||
v_modul VARCHAR2(256);
|
||||
v_sid NUMBER(16);
|
||||
begin
|
||||
begin
|
||||
SELECT sid, UPPER(TRIM(program)), UPPER(TRIM(module))
|
||||
INTO v_sid, v_program, v_modul
|
||||
FROM v$session
|
||||
WHERE audsid = USERENV('SESSIONID')
|
||||
AND audsid != 0
|
||||
AND rownum = 1
|
||||
AND STATUS <> 'KILLED';
|
||||
PINFO('1 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH');
|
||||
|
||||
IF v_program not in ('ROASTART.EXE',
|
||||
'PLSQLDEV.EXE',
|
||||
'ROAGEN.EXE',
|
||||
'ROASUPORT.EXE',
|
||||
'EXPDP.EXE',
|
||||
'IMPDP.EXE',
|
||||
'APSNET_WP.EXE',
|
||||
'W3WP.EXE',
|
||||
'RUBY.EXE',
|
||||
'SQLPLUS.EXE',
|
||||
'TASKS.EXE',
|
||||
'VFP9.EXE',
|
||||
'ROAEFACTURA.EXE',
|
||||
'WEBDEV.WEBSERVER.EXE',
|
||||
'ROA2COCACOLA.EXE') and
|
||||
user not in ('SYS',
|
||||
'SYSTEM',
|
||||
'DBSNMP',
|
||||
'CTXSYS',
|
||||
'MDSYS',
|
||||
'DIP',
|
||||
'SYSMAN',
|
||||
'WMSYS') THEN
|
||||
PINFO('2 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH');
|
||||
IF v_program <> v_modul THEN
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Acces interzis!');
|
||||
END IF;
|
||||
PINFO('3 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH');
|
||||
IF NOT V_PROGRAM LIKE 'ORACLE%' THEN
|
||||
auth_pack.verifica_licenta(v_sid, v_program);
|
||||
END IF;
|
||||
PINFO('4 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH');
|
||||
END IF;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
v_program := Null;
|
||||
end;
|
||||
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
-- VERIFICA_LICENTA
|
||||
-- LA LOGIN IN BAZA DE DATE SE VERIFICA DACA ESTE LICENTA PENTRU PROGRAM, SI PENTRU NUMARUL DE UTILIZATORI PE PROGRAM DUPA IP
|
||||
procedure verifica_licenta(v_sid IN NUMBER, v_program IN VARCHAR2) is
|
||||
|
||||
v_serie VARCHAR2(256);
|
||||
v_seriec VARCHAR2(256);
|
||||
v_nr_util NUMBER(5);
|
||||
v_utilizatori NUMBER(5);
|
||||
v_nume_program SYN_NOM_PROGRAME.DENUMIRE%TYPE;
|
||||
v_id_program CONTAFIN_ORACLE.NOM_PROGRAME.ID_PROGRAM%TYPE;
|
||||
v_dataora DATE;
|
||||
v_data_val DATE;
|
||||
v_zi VARCHAR2(2);
|
||||
|
||||
begin
|
||||
V_NUME_PROGRAM := TRIM(REPLACE(v_program, '.EXE'));
|
||||
begin
|
||||
SELECT A.ID_PROGRAM, B.SERIE, B.DATAORA
|
||||
INTO V_ID_PROGRAM, V_SERIE, V_DATAORA
|
||||
FROM SYN_NOM_PROGRAME A
|
||||
LEFT JOIN AUTH_SERII B
|
||||
ON A.ID_PROGRAM = B.ID_PROGRAM
|
||||
WHERE UPPER(TRIM(A.DENUMIRE)) = V_NUME_PROGRAM
|
||||
AND B.STERS = 0;
|
||||
|
||||
exception
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
PINFO('1 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH2');
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Nu aveti licenta pentru ' ||
|
||||
V_NUME_PROGRAM || '!' || CHR(13) || CHR(10) ||
|
||||
' Licenta poate fi introdusa prin programul ROASUPORT!');
|
||||
end;
|
||||
PINFO('2 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH2');
|
||||
v_zi := LPAD(extract(day from v_dataora), 2, '0');
|
||||
v_seriec := auth_pack.decripteaza_serie(v_id_program,
|
||||
v_serie,
|
||||
v_dataora);
|
||||
v_utilizatori := auth_pack.decripteaza_nr_util(v_seriec);
|
||||
v_data_val := auth_pack.decripteaza_data_val(v_seriec, v_zi);
|
||||
|
||||
IF v_utilizatori > 0 THEN
|
||||
-- numar cate ip-uri (client_info) distincte cu programul v_program sunt conectate
|
||||
-- exceptand ip-ul curent
|
||||
-- astfel se poate conecta de pe acelasi ip, cu acelasi program de mai multe ori
|
||||
-- fara sa conteze la numarul utilizatorilor conectati
|
||||
SELECT COUNT(DISTINCT client_info)
|
||||
INTO v_nr_util
|
||||
FROM v$session
|
||||
WHERE UPPER(TRIM(PROGRAM)) = v_program
|
||||
AND SID != v_sid
|
||||
and status <> 'KILLED'
|
||||
and nvl(client_info, 'x') <> sys_context('userenv', 'ip_address');
|
||||
|
||||
IF v_nr_util >= v_utilizatori THEN
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Ati depasit numarul de licente (' ||
|
||||
v_utilizatori || ') pentru programul ' ||
|
||||
v_nume_program || ' !' || CHR(13) ||
|
||||
CHR(10) ||
|
||||
' Licenta poate fi reinnoita prin programul ROASUPORT!');
|
||||
END IF;
|
||||
ELSE
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Seria introdusa pentru acest program nu este corecta!' ||
|
||||
CHR(13) || CHR(10) ||
|
||||
' Licenta poate fi modificata prin programul ROASUPORT!');
|
||||
END IF;
|
||||
PINFO('3 LOGIN ' || V_PROGRAM || ' USER ' || USER, 'SYS.AUTH2');
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
-- VERIFICA_LICENTA_LUNA
|
||||
-- LA DESCHIDEREA DE LUNA NOUA SE VERIFICA DACA ESTE LICENTA PENTRU LUNA NOUA (TRIGGER LA INSERT INTO CALENDAR)
|
||||
procedure verifica_licenta_luna(v_an IN NUMBER,
|
||||
v_luna IN NUMBER,
|
||||
v_tip IN NUMBER) is
|
||||
|
||||
v_serie VARCHAR2(256);
|
||||
v_seriec VARCHAR2(256);
|
||||
v_nume_program1 SYN_NOM_PROGRAME.DENUMIRE%TYPE := 'ROASTART';
|
||||
v_nume_program2 SYN_NOM_PROGRAME.DENUMIRE%TYPE := 'ROASAL';
|
||||
v_id_program CONTAFIN_ORACLE.NOM_PROGRAME.ID_PROGRAM%TYPE;
|
||||
v_dataora DATE;
|
||||
v_data_val DATE;
|
||||
v_zi VARCHAR2(2);
|
||||
|
||||
begin
|
||||
begin
|
||||
SELECT A.ID_PROGRAM, B.SERIE, B.DATAORA
|
||||
INTO V_ID_PROGRAM, V_SERIE, V_DATAORA
|
||||
FROM SYN_NOM_PROGRAME A
|
||||
LEFT JOIN AUTH_SERII B
|
||||
ON A.ID_PROGRAM = B.ID_PROGRAM
|
||||
WHERE UPPER(TRIM(A.DENUMIRE)) =
|
||||
DECODE(V_TIP, 1, V_NUME_PROGRAM1, 2, V_NUME_PROGRAM2, 'XYZ')
|
||||
-- daca parametrul nu e 1 sau 2, atunci trebuie sa dea eroare
|
||||
AND B.STERS = 0;
|
||||
|
||||
exception
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Nu aveti licenta pentru deschiderea de luna noua!' ||
|
||||
CHR(13) || CHR(10) ||
|
||||
' Licenta poate fi introdusa prin programul ROASUPORT!');
|
||||
end;
|
||||
|
||||
v_zi := LPAD(extract(day from v_dataora), 2, '0');
|
||||
v_seriec := auth_pack.decripteaza_serie(v_id_program,
|
||||
v_serie,
|
||||
v_dataora);
|
||||
v_data_val := auth_pack.decripteaza_data_val(v_seriec, v_zi);
|
||||
|
||||
IF v_data_val < TO_DATE(v_an || v_luna, 'YYYYMM') THEN
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Licenta pentru acest program a expirat!' ||
|
||||
CHR(13) || CHR(10) ||
|
||||
' Licenta poate fi reinnoita prin programul ROASUPORT!');
|
||||
END IF;
|
||||
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
-- VERIFICA_NUMAR_FIRME
|
||||
-- LA CREAREA UNEI FIRME NOI SE VERIFICA DACA SE DEPASESTE NUMARUL DE FIRME DIN LICENTA
|
||||
procedure verifica_numar_firme is
|
||||
|
||||
v_serie VARCHAR2(256);
|
||||
v_seriec VARCHAR2(256);
|
||||
v_nume_program SYN_NOM_PROGRAME.DENUMIRE%TYPE := 'ROASTART';
|
||||
v_id_program CONTAFIN_ORACLE.NOM_PROGRAME.ID_PROGRAM%TYPE;
|
||||
v_dataora DATE;
|
||||
V_NR_MAX_FIRME NUMBER(10) := 0;
|
||||
V_NR_FIRME NUMBER(10) := 0;
|
||||
|
||||
begin
|
||||
begin
|
||||
SELECT A.ID_PROGRAM, B.SERIE, B.DATAORA
|
||||
INTO V_ID_PROGRAM, V_SERIE, V_DATAORA
|
||||
FROM SYN_NOM_PROGRAME A
|
||||
LEFT JOIN AUTH_SERII B
|
||||
ON A.ID_PROGRAM = B.ID_PROGRAM
|
||||
WHERE UPPER(TRIM(A.DENUMIRE)) = V_NUME_PROGRAM
|
||||
AND B.STERS = 0;
|
||||
|
||||
exception
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Nu aveti licenta pentru deschiderea unei firme noi!' ||
|
||||
CHR(13) || CHR(10) ||
|
||||
' Licenta poate fi introdusa prin programul ROASUPORT!');
|
||||
end;
|
||||
|
||||
v_seriec := auth_pack.decripteaza_serie(v_id_program,
|
||||
v_serie,
|
||||
v_dataora);
|
||||
V_NR_MAX_FIRME := auth_pack.decripteaza_nr_util(V_SERIEC);
|
||||
|
||||
SELECT COUNT(*)
|
||||
INTO V_NR_FIRME
|
||||
FROM SYN_NOM_FIRME
|
||||
WHERE STERS = 0
|
||||
AND NVL(ID_MAMA, 0) = 0;
|
||||
|
||||
IF V_NR_FIRME >= V_NR_MAX_FIRME THEN
|
||||
RAISE_APPLICATION_ERROR(-20000,
|
||||
'Aveti licenta pentru maxim ' ||
|
||||
V_NR_MAX_FIRME || ' firme (' || V_NR_FIRME ||
|
||||
' firme deja definite)!' || CHR(13) ||
|
||||
CHR(10) ||
|
||||
' Licenta poate fi introdusa prin programul ROASUPORT!');
|
||||
END IF;
|
||||
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
procedure adauga_serie(V_ID_PROGRAM IN NUMBER,
|
||||
V_SERIE IN VARCHAR2,
|
||||
V_ID_UTILAD IN NUMBER) is
|
||||
V_ID_SERIE AUTH_SERII.ID_SERIE%TYPE;
|
||||
V_SERIER AUTH_SERII.SERIE%TYPE;
|
||||
eroare_de_conversie EXCEPTION;
|
||||
PRAGMA EXCEPTION_INIT(eroare_de_conversie, -6502);
|
||||
begin
|
||||
BEGIN
|
||||
V_SERIER := HEXTORAW(V_SERIE);
|
||||
EXCEPTION
|
||||
WHEN eroare_de_conversie THEN
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Aceasta serie nu este valida!');
|
||||
END;
|
||||
|
||||
auth_pack.verifica_serie(V_ID_PROGRAM, V_SERIER);
|
||||
|
||||
SELECT SEQ_AUTH_SERII.NEXTVAL INTO V_ID_SERIE FROM DUAL;
|
||||
|
||||
INSERT INTO AUTH_SERII
|
||||
(ID_SERIE, ID_PROGRAM, SERIE, ID_UTIL)
|
||||
VALUES
|
||||
(V_ID_SERIE, V_ID_PROGRAM, V_SERIER, V_ID_UTILAD);
|
||||
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
procedure sterge_serie(V_ID_PROGRAM IN NUMBER, V_ID_UTILS IN NUMBER) is
|
||||
begin
|
||||
UPDATE AUTH_SERII
|
||||
SET STERS = 1, ID_UTILS = V_ID_UTILS, DATAORAS = SYSDATE
|
||||
WHERE ID_PROGRAM = V_ID_PROGRAM
|
||||
AND STERS = 0;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function selecteaza_serie(V_ID_PROGRAM IN NUMBER) return varchar2 is
|
||||
V_SERIE AUTH_SERII.SERIE%TYPE;
|
||||
V_SERIEC VARCHAR2(256);
|
||||
eroare_de_conversie EXCEPTION;
|
||||
PRAGMA EXCEPTION_INIT(eroare_de_conversie, -6502);
|
||||
begin
|
||||
begin
|
||||
SELECT SERIE
|
||||
INTO V_SERIE
|
||||
FROM AUTH_SERII
|
||||
WHERE ID_PROGRAM = V_ID_PROGRAM
|
||||
AND STERS = 0;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
V_SERIE := NULL;
|
||||
end;
|
||||
|
||||
BEGIN
|
||||
V_SERIEC := TRIM(RAWTOHEX(V_SERIE));
|
||||
EXCEPTION
|
||||
WHEN eroare_de_conversie THEN
|
||||
V_SERIEC := NULL;
|
||||
END;
|
||||
|
||||
return V_SERIEC;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function selecteaza_nr_util(V_ID_PROGRAM IN NUMBER) return number is
|
||||
V_SERIE AUTH_SERII.SERIE%TYPE;
|
||||
V_DATAORA DATE;
|
||||
V_NR_UTILIZATORI NUMBER(4);
|
||||
V_SERIEC VARCHAR2(64);
|
||||
begin
|
||||
begin
|
||||
SELECT SERIE, DATAORA
|
||||
INTO V_SERIE, V_DATAORA
|
||||
FROM AUTH_SERII
|
||||
WHERE ID_PROGRAM = V_ID_PROGRAM
|
||||
AND STERS = 0;
|
||||
|
||||
V_SERIEC := auth_pack.decripteaza_serie(V_ID_PROGRAM,
|
||||
V_SERIE,
|
||||
V_DATAORA);
|
||||
|
||||
V_NR_UTILIZATORI := auth_pack.decripteaza_nr_util(V_SERIEC);
|
||||
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
V_NR_UTILIZATORI := 0;
|
||||
end;
|
||||
|
||||
return V_NR_UTILIZATORI;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function selecteaza_data_val(V_ID_PROGRAM IN NUMBER) return date is
|
||||
V_SERIE AUTH_SERII.SERIE%TYPE;
|
||||
V_DATAORA DATE;
|
||||
V_DATA_VAL DATE;
|
||||
V_SERIEC VARCHAR2(64);
|
||||
V_ZI VARCHAR2(2);
|
||||
begin
|
||||
begin
|
||||
|
||||
SELECT SERIE, DATAORA
|
||||
INTO V_SERIE, V_DATAORA
|
||||
FROM AUTH_SERII
|
||||
WHERE ID_PROGRAM = V_ID_PROGRAM
|
||||
AND STERS = 0;
|
||||
|
||||
V_SERIEC := auth_pack.decripteaza_serie(V_ID_PROGRAM,
|
||||
V_SERIE,
|
||||
V_DATAORA);
|
||||
V_ZI := LPAD(EXTRACT(DAY FROM V_DATAORA), 2, '0');
|
||||
V_DATA_VAL := auth_pack.decripteaza_data_val(V_SERIEC, V_ZI);
|
||||
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
V_DATA_VAL := NULL;
|
||||
end;
|
||||
|
||||
return V_DATA_VAL;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
procedure verifica_serie(V_ID_PROGRAM IN NUMBER, V_SERIE IN RAW) is
|
||||
v_seriedec VARCHAR2(256);
|
||||
v_checksum NUMBER(2);
|
||||
v_suma NUMBER(2) := 0;
|
||||
begin
|
||||
v_seriedec := auth_pack.decripteaza_serie(V_ID_PROGRAM,
|
||||
V_SERIE,
|
||||
SYSDATE);
|
||||
|
||||
v_checksum := auth_pack.hextodec(substr(v_seriedec,
|
||||
length(v_seriedec),
|
||||
1));
|
||||
for i in 1 .. length(v_seriedec) - 1 loop
|
||||
v_suma := v_suma + auth_pack.hextodec(substr(v_seriedec, i, 1));
|
||||
end loop;
|
||||
|
||||
if MOD(v_suma + v_checksum, 16) <> 0 then
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Seria introdusa nu este valida!');
|
||||
end if;
|
||||
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function decripteaza_serie(V_ID_PROGRAM IN NUMBER,
|
||||
V_SERIE IN RAW,
|
||||
V_DATAORA IN DATE) return varchar2 is
|
||||
v_denumire CONTAFIN_ORACLE.NOM_PROGRAME.DENUMIRE%TYPE;
|
||||
v_id_client NUMBER(4);
|
||||
v_cheie RAW(16);
|
||||
v_serieval RAW(256);
|
||||
v_seriedec VARCHAR2(32);
|
||||
v_valoare NUMBER(2);
|
||||
eroare_de_conversie EXCEPTION;
|
||||
PRAGMA EXCEPTION_INIT(eroare_de_conversie, -6502);
|
||||
begin
|
||||
IF V_SERIE IS NOT NULL THEN
|
||||
SELECT substr(a.denumire, 4, 5)
|
||||
INTO V_DENUMIRE
|
||||
FROM SYN_NOM_PROGRAME A
|
||||
WHERE A.ID_PROGRAM = V_ID_PROGRAM;
|
||||
|
||||
SELECT TO_NUMBER(DETALII) INTO V_ID_CLIENT FROM AUTH_DETALII;
|
||||
|
||||
v_cheie := utl_raw.cast_to_raw(RPAD(LPAD(v_id_program, 3, '0') ||
|
||||
LPAD(v_id_client, 4, '0') ||
|
||||
RPAD(v_denumire, 5, CHR(4)) ||
|
||||
LPAD(to_char(v_dataora, 'IWYY'), 4, '0'),
|
||||
16,
|
||||
'X'));
|
||||
|
||||
-- Inlocuit DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt cu DBMS_CRYPTO.DECRYPT
|
||||
-- ENCRYPT_3DES_2KEY pentru chei de 16 bytes, PAD_ZERO pentru compatibilitate
|
||||
v_serieval := DBMS_CRYPTO.DECRYPT(
|
||||
src => v_serie,
|
||||
typ => DBMS_CRYPTO.ENCRYPT_3DES_2KEY + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_ZERO,
|
||||
key => v_cheie
|
||||
);
|
||||
|
||||
begin
|
||||
for i in 1 .. length(v_serieval) / 2 loop
|
||||
v_valoare := to_number(substr(v_serieval, 2 * i - 1, 2));
|
||||
if v_valoare > 40 then
|
||||
v_seriedec := v_seriedec || auth_pack.dectohex(v_valoare - 31);
|
||||
else
|
||||
v_seriedec := v_seriedec || (v_valoare - 30);
|
||||
end if;
|
||||
end loop;
|
||||
exception
|
||||
when eroare_de_conversie then
|
||||
RAISE_APPLICATION_ERROR(-20100,
|
||||
'Seria introdusa nu este valida!');
|
||||
end;
|
||||
|
||||
ELSE
|
||||
v_seriedec := NULL;
|
||||
END IF;
|
||||
|
||||
RETURN v_seriedec;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function decripteaza_nr_util(V_SERIEC IN VARCHAR2) return number is
|
||||
begin
|
||||
IF V_SERIEC IS NOT NULL THEN
|
||||
return to_number(substr(v_seriec, 1, 4));
|
||||
ELSE
|
||||
return 0;
|
||||
END IF;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function decripteaza_data_val(V_SERIEC IN VARCHAR2, V_ZI IN VARCHAR2)
|
||||
return date is
|
||||
v_luna varchar2(2);
|
||||
begin
|
||||
IF V_SERIEC IS NOT NULL THEN
|
||||
v_luna := LPAD(auth_pack.hextodec(substr(v_seriec, 5, 1)), 2, '0');
|
||||
return last_day(to_date(v_luna || substr(v_seriec, 6, 2), 'MMYY'));
|
||||
ELSE
|
||||
return null;
|
||||
END IF;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function hextodec(V_HEXA IN VARCHAR2) return number is
|
||||
v_numar NUMBER(2);
|
||||
begin
|
||||
IF ASCII(UPPER(TRIM(V_HEXA))) BETWEEN 48 AND 57 or
|
||||
ASCII(UPPER(TRIM(V_HEXA))) BETWEEN 65 AND 70 THEN
|
||||
CASE UPPER(TRIM(V_HEXA))
|
||||
WHEN 'A' THEN
|
||||
v_numar := 10;
|
||||
WHEN 'B' THEN
|
||||
v_numar := 11;
|
||||
WHEN 'C' THEN
|
||||
v_numar := 12;
|
||||
WHEN 'D' THEN
|
||||
v_numar := 13;
|
||||
WHEN 'E' THEN
|
||||
v_numar := 14;
|
||||
WHEN 'F' THEN
|
||||
v_numar := 15;
|
||||
ELSE
|
||||
v_numar := to_number(V_HEXA);
|
||||
END CASE;
|
||||
ELSE
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Caracterul nu este valid!');
|
||||
END IF;
|
||||
return v_numar;
|
||||
end;
|
||||
-------------------------------------------------------------------------------------
|
||||
function dectohex(V_NUMAR IN NUMBER) return varchar2 is
|
||||
v_hexa VARCHAR2(1);
|
||||
begin
|
||||
CASE v_numar
|
||||
WHEN 10 THEN
|
||||
v_hexa := 'A';
|
||||
WHEN 11 THEN
|
||||
v_hexa := 'B';
|
||||
WHEN 12 THEN
|
||||
v_hexa := 'C';
|
||||
WHEN 13 THEN
|
||||
v_hexa := 'D';
|
||||
WHEN 14 THEN
|
||||
v_hexa := 'E';
|
||||
WHEN 15 THEN
|
||||
v_hexa := 'F';
|
||||
ELSE
|
||||
v_hexa := to_char(V_NUMAR);
|
||||
END CASE;
|
||||
return v_hexa;
|
||||
end;
|
||||
|
||||
end AUTH_PACK;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- PINFO Procedure (wrapped)
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PROCEDURE "SYS"."PINFO" wrapped
|
||||
a000000
|
||||
b2
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
7
|
||||
d3 e7
|
||||
upTW3dK2OWquAE9qYLTPkR2RYpwwgy7cmJ5qfHSKimRQCVrK0lt6JkrTw376tMBrXqprtSRs
|
||||
3F59wMZSKNEfsiHE5qU4k/VLyE0GHVQOHroHCu1lLnCoJ2cL5HuwV1l13q9vshqVV+HqW8iZ
|
||||
4r37EyYRJSuaK2nFOQuUu7mgwop/p/KVn2UAnzh9V6+tJBW2C4yS2jO/C9ISABHyfhn3R8gS
|
||||
6w/fw6l4/Q==
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- NEWSCHEMA Procedure
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PROCEDURE "SYS"."NEWSCHEMA" (tcSchema varchar2,
|
||||
tnLuna number,
|
||||
tnAn number) is
|
||||
lcCommand varchar2(1000);
|
||||
|
||||
lcSchemaSursa VARCHAR2(100) := 'FIRMANOUA';
|
||||
lcSchemaDestinatie VARCHAR2(100) := tcSchema;
|
||||
lcDumpFile VARCHAR2(100);
|
||||
lcDumpDir VARCHAR2(100) := 'DMPDIR';
|
||||
-- lnCount number(10);
|
||||
|
||||
lcSql varchar2(1000);
|
||||
lnAn number := tnAn;
|
||||
lnLuna number := tnLuna;
|
||||
ldDataI date;
|
||||
ldDataF date;
|
||||
lnZileLucratoare number(10) := 0;
|
||||
lnOreLucratoare number(10) := 0;
|
||||
lnMaxAn number(10);
|
||||
lcLocatie varchar2(100) := 'CREARE FIRMA ' || tcSchema;
|
||||
|
||||
h1 NUMBER; -- Data Pump job handle
|
||||
ind NUMBER; -- Loop index
|
||||
percent_done NUMBER; -- Percentage of job complete
|
||||
job_state VARCHAR2(30); -- To keep track of job state
|
||||
le ku$_LogEntry; -- For WIP and error messages
|
||||
js ku$_JobStatus; -- The job status from get_status
|
||||
-- jd ku$_JobDesc; -- The job description from get_status
|
||||
sts ku$_Status; -- The status object returned by get_status
|
||||
begin
|
||||
------------------------------------------------------------------------
|
||||
-- CREATE THE USER
|
||||
------------------------------------------------------------------------
|
||||
/* SELECT COUNT(1)
|
||||
INTO lnCount
|
||||
FROM dba_users
|
||||
WHERE username = UPPER(tcSchema);
|
||||
|
||||
IF lnCount <> 0 THEN
|
||||
EXECUTE IMMEDIATE ('DROP USER ' || tcSchema || ' CASCADE');
|
||||
END IF;*/
|
||||
|
||||
lcCommand := 'create user ' || tcSchema || ' identified by ' || CASE
|
||||
WHEN upper(tcSchema) like 'TEST%' THEN
|
||||
'"123"'
|
||||
ELSE
|
||||
'ROMFASTSOFT'
|
||||
END || ' default tablespace ROA
|
||||
temporary tablespace TEMP
|
||||
profile DEFAULT';
|
||||
pinfo(lcCommand, lcLocatie);
|
||||
execute immediate lcCommand;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- GRANT PRIVILEGIES
|
||||
------------------------------------------------------------------------
|
||||
lcCommand := 'grant connect to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant resource to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create materialized view to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create procedure to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create sequence to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create table to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create trigger to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create type to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant create view to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant debug connect session to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant select any table to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
lcCommand := 'grant unlimited tablespace to ' || tcSchema;
|
||||
execute immediate lcCommand;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- IMPORT DUMP
|
||||
------------------------------------------------------------------------
|
||||
-- Create a (user-named) Data Pump job to do a "full" import (everything
|
||||
-- in the dump file without filtering).
|
||||
|
||||
lcDumpFile := lcSchemaSursa || '.dmp';
|
||||
|
||||
-- h1 := DBMS_DATAPUMP.OPEN('IMPORT', 'SCHEMA', NULL, lcSchemaDestinatie);
|
||||
h1 := DBMS_DATAPUMP.OPEN('IMPORT', 'SCHEMA', NULL, lcSchemaDestinatie);
|
||||
|
||||
-- Specify the single dump file for the job (using the handle just returned)
|
||||
-- and directory object, which must already be defined and accessible
|
||||
-- to the user running this procedure. This is the dump file created by
|
||||
-- the export operation in the first example.
|
||||
|
||||
-- DBMS_DATAPUMP.ADD_FILE(h1, lcDumpFile, lcDumpDir);
|
||||
|
||||
BEGIN
|
||||
PINFO('DBMS_DATAPUMP.ADD_FILE LOG', lcLocatie);
|
||||
DBMS_DATAPUMP.ADD_FILE(handle => h1,
|
||||
filename => lcSchemaDestinatie || '.log',
|
||||
directory => 'DMPDIR',
|
||||
filetype => 3);
|
||||
|
||||
PINFO('DBMS_DATAPUMP.ADD_FILE DMP', lcLocatie);
|
||||
DBMS_DATAPUMP.ADD_FILE(handle => h1,
|
||||
filename => lcDumpFile,
|
||||
directory => lcDumpDir,
|
||||
filetype => 1);
|
||||
|
||||
-- A metadata remap will map all schema objects from HR to BLAKE.
|
||||
PINFO('DBMS_DATAPUMP.METADATA_REMAP', lcLocatie);
|
||||
DBMS_DATAPUMP.METADATA_REMAP(h1,
|
||||
'REMAP_SCHEMA',
|
||||
lcSchemaSursa,
|
||||
lcSchemaDestinatie);
|
||||
|
||||
-- If a table already exists in the destination schema, skip it (leave
|
||||
-- the preexisting table alone). This is the default, but it does not hurt
|
||||
-- to specify it explicitly.
|
||||
|
||||
DBMS_DATAPUMP.SET_PARAMETER(h1, 'TABLE_EXISTS_ACTION', 'SKIP');
|
||||
|
||||
-- Start the job. An exception is returned if something is not set up properly.
|
||||
|
||||
PINFO('DBMS_DATAPUMP.START_JOB', lcLocatie);
|
||||
DBMS_DATAPUMP.START_JOB(h1);
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- The import job should now be running. In the following loop, the job is
|
||||
-- monitored until it completes. In the meantime, progress information is
|
||||
-- displayed. Note: this is identical to the export example.
|
||||
|
||||
percent_done := 0;
|
||||
job_state := 'UNDEFINED';
|
||||
while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop
|
||||
dbms_datapump.get_status(h1,
|
||||
dbms_datapump.ku$_status_job_error +
|
||||
dbms_datapump.ku$_status_job_status +
|
||||
dbms_datapump.ku$_status_wip,
|
||||
-1,
|
||||
job_state,
|
||||
sts);
|
||||
js := sts.job_status;
|
||||
|
||||
-- If the percentage done changed, display the new value.
|
||||
|
||||
if js.percent_done != percent_done then
|
||||
pinfo('*** Job percent done = ' || to_char(js.percent_done),
|
||||
lcLocatie);
|
||||
percent_done := js.percent_done;
|
||||
end if;
|
||||
|
||||
-- If any work-in-progress (WIP) or Error messages were received for the job,
|
||||
-- display them.
|
||||
|
||||
if (bitand(sts.mask, dbms_datapump.ku$_status_wip) != 0) then
|
||||
le := sts.wip;
|
||||
else
|
||||
if (bitand(sts.mask, dbms_datapump.ku$_status_job_error) != 0) then
|
||||
le := sts.error;
|
||||
else
|
||||
le := null;
|
||||
end if;
|
||||
end if;
|
||||
if le is not null then
|
||||
ind := le.FIRST;
|
||||
while ind is not null loop
|
||||
-- dbms_output.put_line(le(ind).LogText);
|
||||
pinfo(le(ind).LogText, lcLocatie);
|
||||
ind := le.NEXT(ind);
|
||||
end loop;
|
||||
end if;
|
||||
end loop;
|
||||
|
||||
-- Indicate that the job finished and gracefully detach from it.
|
||||
-- dbms_output.put_line('Job has completed');
|
||||
pinfo('Job has completed', lcLocatie);
|
||||
|
||||
-- dbms_output.put_line('Final job state = ' || job_state);
|
||||
pinfo('Final job state = ' || job_state,
|
||||
'CREARE FIRMA ' || lcSchemaDestinatie);
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- POST IMPORT
|
||||
|
||||
-- 1. actualizare calendar, sal_calendar, cote_tva
|
||||
-- CALENDAR
|
||||
lcSql := 'UPDATE ' || lcSchemaDestinatie ||
|
||||
'.CALENDAR SET ANUL = :1, LUNA = :2, AN = TO_CHAR(:3), NL = LPAD(:4, 2, ''0'')';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
USING lnAn, lnLuna, lnAn, lnLuna;
|
||||
|
||||
-- SAL_CALENDAR
|
||||
ldDataI := TO_DATE(lpad(lnAn, 4, '0') || lpad(lnLuna, 2, '0'), 'YYYYMM');
|
||||
ldDataF := ADD_MONTHS(ldDataI, 1) - 1;
|
||||
lcSql := 'select ' || lcSchemaDestinatie ||
|
||||
'.pack_personal.calculeaza_nr_zile(:1, :2) FROM DUAL';
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
INTO lnZileLucratoare
|
||||
USING ldDataI, ldDataF;
|
||||
lnOreLucratoare := lnZileLucratoare * 8;
|
||||
|
||||
lcSql := 'UPDATE ' || lcSchemaDestinatie ||
|
||||
'.SAL_CALENDAR SET AN = :1 , LUNA = :2, ZILELUC = :3, ORESTAS = :4, ORELUC = :5';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
USING lnAn, lnLuna, lnZileLucratoare, lnOreLucratoare, lnOreLucratoare;
|
||||
|
||||
-- SAL_IMPOZITAR
|
||||
lcSql := 'UPDATE ' || lcSchemaDestinatie ||
|
||||
'.SAL_IMPOZITAR SET AN = :1 , LUNA = :2';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
USING lnAn, lnLuna;
|
||||
|
||||
-- PLCONT
|
||||
lcSql := 'SELECT max(an) as plan from ' || lcSchemaDestinatie ||
|
||||
'.PLCONT';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
into lnMaxAn;
|
||||
if lnMaxAn <> lnAn then
|
||||
lcSql := 'UPDATE ' || lcSchemaDestinatie ||
|
||||
'.PLCONT SET AN = :1 WHERE AN = :2';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
USING lnAn, lnMaxAn;
|
||||
end if;
|
||||
|
||||
-- COTE_TVA
|
||||
lcSql := 'SELECT max(an*12+luna) from ' || lcSchemaDestinatie ||
|
||||
'.cote_tva';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
into lnMaxAn;
|
||||
|
||||
lcSql := 'UPDATE ' || lcSchemaDestinatie ||
|
||||
'.COTE_TVA SET AN = :1, LUNA = :2 WHERE AN*12+LUNA = :3';
|
||||
PINFO(lcSql, lcLocatie);
|
||||
EXECUTE IMMEDIATE lcSql
|
||||
USING lnAn, lnLuna, lnMaxAn;
|
||||
------------------------------------------------------------------------
|
||||
-- 2. ACTUALIZARE SCHEMA LA ZI
|
||||
PINFO('Actualizare schema la zi...', lcLocatie);
|
||||
CONTAFIN_ORACLE.PACK_UPDATE.UpdateROA(tnUpdateApp => 0,
|
||||
tnUpdateScripturi => 0,
|
||||
tnUpdateDatabase => 1,
|
||||
tcSchemaList => tcSchema);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
PINFO(SQLERRM, lcLocatie);
|
||||
raise_application_error(-20000, SQLERRM);
|
||||
END;
|
||||
|
||||
DBMS_DATAPUMP.DETACH(h1);
|
||||
|
||||
end NewSchema;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- UPDATESQLPLUS Procedure
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PROCEDURE "SYS"."UPDATESQLPLUS" (tcSqlPlusPath in varchar2,
|
||||
tcScriptPath in varchar2) as
|
||||
lcJobName varchar2(500);
|
||||
begin
|
||||
lcJobName := 'updateschema_' || to_char(sysdate, 'YYYYMMDDHH24MISS');
|
||||
dbms_scheduler.create_job(lcJobName,
|
||||
job_action => tcSqlPlusPath,
|
||||
number_of_arguments => 2,
|
||||
job_type => 'executable',
|
||||
enabled => false);
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 1, '/nolog');
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 2, '@' || tcScriptPath);
|
||||
dbms_scheduler.enable(lcJobName);
|
||||
end;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- NEWSCHEMAJOB Procedure
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PROCEDURE "SYS"."NEWSCHEMAJOB" (tcSchema varchar2,
|
||||
tnLuna number,
|
||||
tnAn number) as
|
||||
lcJobName varchar2(500);
|
||||
begin
|
||||
lcJobName := 'NEWSCHEMA_' || UPPER(tcSchema);
|
||||
dbms_scheduler.create_job(job_name => lcJobName,
|
||||
job_type => 'STORED_PROCEDURE',
|
||||
job_action => 'NEWSCHEMA',
|
||||
number_of_arguments => 3,
|
||||
enabled => false);
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 1, tcSchema);
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 2, to_char(tnLuna));
|
||||
dbms_scheduler.set_job_argument_value(lcJobName, 3, to_char(tnAn));
|
||||
dbms_scheduler.enable(lcJobName);
|
||||
end NEWSCHEMAJOB;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- EXECUTESCRIPTOS Procedure
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE PROCEDURE "SYS"."EXECUTESCRIPTOS" (tcPowerShellPath in varchar2,
|
||||
tcScriptPath in varchar2) as
|
||||
lcJobName varchar2(500);
|
||||
begin
|
||||
lcJobName := 'exec_ps_' || SUBSTR(SYS_GUID(), 1, 8);
|
||||
|
||||
DBMS_SCHEDULER.CREATE_JOB(
|
||||
job_name => lcJobName,
|
||||
job_action => tcPowerShellPath,
|
||||
number_of_arguments => 4,
|
||||
job_type => 'executable',
|
||||
enabled => FALSE
|
||||
);
|
||||
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 1, '-ExecutionPolicy');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 2, 'Bypass');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 3, '-File');
|
||||
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(lcJobName, 4, tcScriptPath);
|
||||
|
||||
DBMS_SCHEDULER.ENABLE(lcJobName);
|
||||
end ExecuteScriptOS;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- NEWSCHEMAPROGRESS Function (wrapped)
|
||||
-- ============================================================================
|
||||
CREATE OR REPLACE NONEDITIONABLE FUNCTION "SYS"."NEWSCHEMAPROGRESS" wrapped
|
||||
a000000
|
||||
b2
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
abcd
|
||||
8
|
||||
252 199
|
||||
zxoOlwCbdojcPsGMNEX+7vG4viowgxAJ7UhGfHS5R14whrSDSgcEWXzIxarybpjrYjS1uiG9
|
||||
+1zNJlbIu3JK13bwcN6yBEVbLfFgwc0GPkaZbaSp/SMtUbWKq6audu2tqMhrqajFIq/ZxhIj
|
||||
RbyhiZKk8frL4h2iwYVP6fEjGunska0ZpjeOvUDdhcOmpt60PCOUWO09fPBTLoV9UZ8FnKRq
|
||||
3BnqmzYpNIh3Nmox3IHh7L1+/B3ZdDkRY588x/i3cp95sH4gv78FSbxaXXG7LcR3AbIAWqKn
|
||||
yd436mUq5f997PYETavFoaYaFQoUOA1e0g/DynVjNWxPRq56JQnrwP+a0i9dmz3se/CgF7o5
|
||||
DdffGzEed6v0ceFecZNDvJKMnbz6AfnkKnMFeISf8Mw=
|
||||
/
|
||||
15
clienti/oracle-xe-21c/import/06_sys_views.sql
Normal file
15
clienti/oracle-xe-21c/import/06_sys_views.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- 06_sys_views.sql
|
||||
-- Create SYS custom views
|
||||
-- Source: backup/07_sys_views.sql
|
||||
|
||||
CREATE OR REPLACE FORCE VIEW "SYS"."VAUTH_SERII" ("ID_PROGRAM", "NUME", "SERIE", "NR_UTIL", "DATA_VAL") AS
|
||||
select a.id_program,
|
||||
a.denumire as nume,
|
||||
auth_pack.selecteaza_serie(a.id_program) as serie,
|
||||
auth_pack.selecteaza_nr_util(a.id_program) as nr_util,
|
||||
auth_pack.selecteaza_data_val(a.id_program) as data_val
|
||||
from syn_nom_programe a
|
||||
left join syn_def_programe b on a.id_program = b.ide_program
|
||||
where b.sters = 0
|
||||
and b.instalat = 1;
|
||||
/
|
||||
12
clienti/oracle-xe-21c/import/07_sys_triggers.sql
Normal file
12
clienti/oracle-xe-21c/import/07_sys_triggers.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
-- 07_sys_triggers.sql
|
||||
-- Create SYS custom triggers
|
||||
-- Source: backup/08_sys_triggers.sql
|
||||
|
||||
CREATE OR REPLACE TRIGGER "SYS"."LOGON_AUDIT_TRIGGER"
|
||||
AFTER LOGON ON DATABASE
|
||||
BEGIN
|
||||
DBMS_APPLICATION_INFO.SET_CLIENT_INFO(sys_context('userenv', 'ip_address'));
|
||||
auth_pack.verifica_program();
|
||||
END;
|
||||
/
|
||||
ALTER TRIGGER "SYS"."LOGON_AUDIT_TRIGGER" ENABLE;
|
||||
5
clienti/oracle-xe-21c/import/08_context.sql
Normal file
5
clienti/oracle-xe-21c/import/08_context.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- 08_context.sql
|
||||
-- Create application context
|
||||
-- Source: backup/09_context.sql
|
||||
|
||||
CREATE OR REPLACE CONTEXT "SESIUNE" USING "CONTAFIN_ORACLE"."SET_VARIABILE";
|
||||
254
clienti/oracle-xe-21c/import/09_granturi.sql
Normal file
254
clienti/oracle-xe-21c/import/09_granturi.sql
Normal file
@@ -0,0 +1,254 @@
|
||||
-- 09_granturi.sql
|
||||
-- Apply all grants
|
||||
-- Source: backup/03_granturi.sql
|
||||
|
||||
-- ============================================================================
|
||||
-- 1. Grants on SYS objects to application schemas
|
||||
-- ============================================================================
|
||||
GRANT EXECUTE ON SYS.AUTH_PACK TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ON SYS.DBA_DATAPUMP_JOBS TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.DBMS_SCHEDULER TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY DMPDIR TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.EXECUTESCRIPTOS TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.NEWSCHEMAJOB TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UPDATESQLPLUS TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_COMUNROA TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAAPROV TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAAUTO TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROABAVERT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACASA TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACOMENZI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACONIMPORT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACONSTRUCTII TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACONT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROACONTRACTE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROADECL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROADEF TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROADEFSALARII TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROADEPOZIT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROADEVIZE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAFACTURARE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAFURNIZORI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAGEN TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAGEST TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAGRESTAURANT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAHOTEL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAHOTELCONFIG TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAIMOB TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAINCHIDSAL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROALUCRARI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAMANAGER TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAMASINI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROANOR TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROANORFRUVIMED TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROANORRENAV TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROANORUTMIDIA TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAOBINV TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAOFERTARE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRETURI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRINT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRINT_INITIALIZARI TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRODAGR TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRODUCTIE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAREGISTRATURA TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAREPARTIZSAL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROARES TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROARESTAURANT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROARETAIL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROARETAILMON TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASAL TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASALSPEC TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASITFIN TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASITOP TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASTART TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROASUPORT TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROATELCOMM TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROATELMON TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAUPDATE TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_ROAVIN TO CONTAFIN_ORACLE;
|
||||
GRANT READ, WRITE ON DIRECTORY UPD_USERREPORTS TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UTL_HTTP TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UTL_INADDR TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UTL_MAIL TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UTL_SMTP TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON SYS.UTL_TCP TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ON SYS.VAUTH_SERII TO CONTAFIN_ORACLE;
|
||||
|
||||
-- ============================================================================
|
||||
-- 2. Grants from CONTAFIN_ORACLE to PUBLIC
|
||||
-- ============================================================================
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.ATAS_ATASAMENTE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.ATAS_ATASAMENTE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.ATAS_REFERINTE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.ATAS_REFERINTE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CHARC2COLLECTION TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CHARN2COLLECTION TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CHAR_ROW TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CHAR_TAB TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CONCATENATE_LIST TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.CONTRACT_M TO PUBLIC;
|
||||
GRANT UPDATE ON CONTAFIN_ORACLE.CURS_ACTUALIZARI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.CURS_ACTUALIZARI TO PUBLIC;
|
||||
GRANT INSERT ON CONTAFIN_ORACLE.CURS_ACTUALIZARI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.CURS_ACTUALIZARI TO PUBLIC;
|
||||
GRANT UPDATE ON CONTAFIN_ORACLE.CURS_COTATII TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.CURS_COTATII TO PUBLIC;
|
||||
GRANT INSERT ON CONTAFIN_ORACLE.CURS_COTATII TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.CURS_COTATII TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.DEF_GRUP TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.DEF_GRUP TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.DEF_GRUP_DREPT TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.DEF_GRUP_DREPT TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.DEF_PROGRAME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.DEF_PROGRAME TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.FF_PERSINTRET TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.FF_SUME TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.GETWORDCOUNT TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.GETWORDNUM TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.HELPCONT TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.LUNILEAN TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.LUNILEAN TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.MYBALTYPE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.MYSCALARTYPE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.MYTABLEBALTYPE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_CETATENII TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_CETATENII TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_CODURI_CAEN TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_CODURI_CAEN TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_FIRME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_FIRME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_FORME_JURIDICE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_FORME_JURIDICE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_FORME_ORGANIZARE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_FORME_ORGANIZARE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_FORME_PROPRIETATE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_FORME_PROPRIETATE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_JUDETE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_JUDETE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_LOCALITATI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_LOCALITATI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_PROGRAME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_PROGRAME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_TARI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_TARI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_TIPAPATRID TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_TIPAPATRID TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_TIP_SOCIETATE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_TIP_SOCIETATE TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_UM_ISO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_UM_ISO TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.NOM_VALUTE_ISO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.NOM_VALUTE_ISO TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.NUM_ROW TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.NUM_TAB TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.OPTIUNI_PROGRAME TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_DEF_CO TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_DREPTURI TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_ROARTVAI TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_UPDATE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_UTILS TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PACK_UTILS_FILE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PIVOT_ROW TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.PIVOT_TABLE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.RANDINCHIDERETVA TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.RTVAI_AGENTI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.RTVAI_ISTORIC TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_ACTUALIZARE_COR TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_ACTUALIZARE_COR TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_CAMPURI_RED TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_CONTRACT_M TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_COR TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_COR TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_FF_PERSINTRET TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_FF_SUME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_DURATA_MUNCA TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_DURATA_MUNCA TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_INTERVALE_MUNCA TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_INTERVALE_MUNCA TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_REPARTIZARE_MUNCA TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_REPARTIZARE_MUNCA TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_STARI_CTR TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_STARI_CTR TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_TEMEI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_TEMEI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_TIPAUTORIZATIE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_TIPAUTORIZATIE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_TIP_NORME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_TIP_NORME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SAL_NOM_TIP_SPOR TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.SAL_NOM_TIP_SPOR TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_RED TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.SAL_TABELESTERS TO PUBLIC;
|
||||
GRANT DELETE ON CONTAFIN_ORACLE.SERVER_INFO TO PUBLIC;
|
||||
GRANT INSERT ON CONTAFIN_ORACLE.SERVER_INFO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.SERVER_INFO TO PUBLIC;
|
||||
GRANT UPDATE ON CONTAFIN_ORACLE.SERVER_INFO TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.STRINGAGG TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.STRINGAGGTYPE TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.STRINGAGG_COL TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.TABELAVALORITAGURI TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.TABINCHIDERETVA TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.TABSTERS TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.UTILIZATORI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.UTILIZATORI TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.UW_SEL_ROW TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.UW_SEL_TAB TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.VALOARETAG TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.VANZARI_DETALII_ROW TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.VANZARI_DETALII_TAB TO PUBLIC;
|
||||
GRANT EXECUTE ON CONTAFIN_ORACLE.VARCHAR2_TAB TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_PROGRAME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VDEF_PROGRAME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_UTIL_FIRME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VDEF_UTIL_FIRME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VDEF_UTIL_GRUP TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_UTIL_GRUP TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VDEF_UTIL_OBIECTE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_UTIL_OBIECTE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_UTIL_PROGRAME TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VDEF_UTIL_PROGRAME TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VNOM_JUDETE TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VNOM_LOCALITATI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VNOM_TARI TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VNOM_UM_ISO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VNOM_UM_ISO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VNOM_VALUTE_ISO TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VSTATS TO PUBLIC;
|
||||
GRANT REFERENCES ON CONTAFIN_ORACLE.VUTILIZATORI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.VUTILIZATORI TO PUBLIC;
|
||||
GRANT SELECT ON CONTAFIN_ORACLE.V_NOM_FIRME TO PUBLIC;
|
||||
GRANT INHERIT PRIVILEGES ON SYS.CONTAFIN_ORACLE TO PUBLIC;
|
||||
|
||||
-- ============================================================================
|
||||
-- 3. System privileges
|
||||
-- ============================================================================
|
||||
GRANT CREATE ANY CONTEXT TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE ANY DIRECTORY TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE ANY JOB TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE EVALUATION CONTEXT TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE EXTERNAL JOB TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE PUBLIC SYNONYM TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE RULE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE RULE SET TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE SESSION TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE VIEW TO CONTAFIN_ORACLE;
|
||||
GRANT DEBUG CONNECT SESSION TO CONTAFIN_ORACLE;
|
||||
GRANT DELETE ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT DROP ANY CONTEXT TO CONTAFIN_ORACLE;
|
||||
GRANT DROP PUBLIC SYNONYM TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ANY PROCEDURE TO CONTAFIN_ORACLE;
|
||||
GRANT INSERT ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ANY DICTIONARY TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ANY SEQUENCE TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT UNLIMITED TABLESPACE TO CONTAFIN_ORACLE;
|
||||
GRANT UPDATE ANY TABLE TO CONTAFIN_ORACLE;
|
||||
|
||||
-- ============================================================================
|
||||
-- 4. Role privileges
|
||||
-- ============================================================================
|
||||
GRANT CONNECT TO CONTAFIN_ORACLE;
|
||||
GRANT EXP_FULL_DATABASE TO CONTAFIN_ORACLE;
|
||||
GRANT IMP_FULL_DATABASE TO CONTAFIN_ORACLE;
|
||||
GRANT RESOURCE TO CONTAFIN_ORACLE;
|
||||
84
clienti/oracle-xe-21c/import/10_sinonime_publice.sql
Normal file
84
clienti/oracle-xe-21c/import/10_sinonime_publice.sql
Normal file
@@ -0,0 +1,84 @@
|
||||
-- 10_sinonime_publice.sql
|
||||
-- Create public synonyms
|
||||
-- Source: backup/02_sinonime_publice.sql
|
||||
|
||||
CREATE PUBLIC SYNONYM CHARC2COLLECTION FOR CONTAFIN_ORACLE.CHARC2COLLECTION;
|
||||
CREATE PUBLIC SYNONYM CHARN2COLLECTION FOR CONTAFIN_ORACLE.CHARN2COLLECTION;
|
||||
CREATE PUBLIC SYNONYM CHAR_ROW FOR CONTAFIN_ORACLE.CHAR_ROW;
|
||||
CREATE PUBLIC SYNONYM CHAR_TAB FOR CONTAFIN_ORACLE.CHAR_TAB;
|
||||
CREATE PUBLIC SYNONYM CONTRACT_M FOR CONTAFIN_ORACLE.CONTRACT_M;
|
||||
CREATE PUBLIC SYNONYM FF_PERSINTRET FOR CONTAFIN_ORACLE.FF_PERSINTRET;
|
||||
CREATE PUBLIC SYNONYM FF_SUME FOR CONTAFIN_ORACLE.FF_SUME;
|
||||
CREATE PUBLIC SYNONYM GETWORDCOUNT FOR CONTAFIN_ORACLE.GETWORDCOUNT;
|
||||
CREATE PUBLIC SYNONYM GETWORDNUM FOR CONTAFIN_ORACLE.GETWORDNUM;
|
||||
CREATE PUBLIC SYNONYM NUM_ROW FOR CONTAFIN_ORACLE.NUM_ROW;
|
||||
CREATE PUBLIC SYNONYM NUM_TAB FOR CONTAFIN_ORACLE.NUM_TAB;
|
||||
CREATE PUBLIC SYNONYM PACK_ROARTVAI FOR CONTAFIN_ORACLE.PACK_ROARTVAI;
|
||||
CREATE PUBLIC SYNONYM PACK_UTILS FOR CONTAFIN_ORACLE.PACK_UTILS;
|
||||
CREATE PUBLIC SYNONYM PACK_UTILS_FILE FOR CONTAFIN_ORACLE.PACK_UTILS_FILE;
|
||||
CREATE PUBLIC SYNONYM PIVOT_ROW FOR CONTAFIN_ORACLE.PIVOT_ROW;
|
||||
CREATE PUBLIC SYNONYM PIVOT_TABLE FOR CONTAFIN_ORACLE.PIVOT_TABLE;
|
||||
CREATE PUBLIC SYNONYM RANDINCHIDERETVA FOR CONTAFIN_ORACLE.RANDINCHIDERETVA;
|
||||
CREATE PUBLIC SYNONYM RTVAI_AGENTI FOR CONTAFIN_ORACLE.RTVAI_AGENTI;
|
||||
CREATE PUBLIC SYNONYM RTVAI_ISTORIC FOR CONTAFIN_ORACLE.RTVAI_ISTORIC;
|
||||
CREATE PUBLIC SYNONYM SAL_CAMPURI_RED FOR CONTAFIN_ORACLE.SAL_CAMPURI_RED;
|
||||
CREATE PUBLIC SYNONYM SAL_CONTRACT_M FOR CONTAFIN_ORACLE.SAL_CONTRACT_M;
|
||||
CREATE PUBLIC SYNONYM SAL_RED FOR CONTAFIN_ORACLE.SAL_RED;
|
||||
CREATE PUBLIC SYNONYM SAL_TABELESTERS FOR CONTAFIN_ORACLE.SAL_TABELESTERS;
|
||||
CREATE PUBLIC SYNONYM SERVER_INFO FOR CONTAFIN_ORACLE.SERVER_INFO;
|
||||
CREATE PUBLIC SYNONYM STRINGAGG FOR CONTAFIN_ORACLE.STRINGAGG;
|
||||
CREATE PUBLIC SYNONYM SYN_ATAS_ATASAMENTE FOR CONTAFIN_ORACLE.ATAS_ATASAMENTE;
|
||||
CREATE PUBLIC SYNONYM SYN_ATAS_REFERINTE FOR CONTAFIN_ORACLE.ATAS_REFERINTE;
|
||||
CREATE PUBLIC SYNONYM SYN_CURS_ACTUALIZARI FOR CONTAFIN_ORACLE.CURS_ACTUALIZARI;
|
||||
CREATE PUBLIC SYNONYM SYN_CURS_COTATII FOR CONTAFIN_ORACLE.CURS_COTATII;
|
||||
CREATE PUBLIC SYNONYM SYN_DEF_GRUP FOR CONTAFIN_ORACLE.DEF_GRUP;
|
||||
CREATE PUBLIC SYNONYM SYN_DEF_GRUP_DREPT FOR CONTAFIN_ORACLE.DEF_GRUP_DREPT;
|
||||
CREATE PUBLIC SYNONYM SYN_DEF_PROGRAME FOR CONTAFIN_ORACLE.DEF_PROGRAME;
|
||||
CREATE PUBLIC SYNONYM SYN_HELPCONT FOR CONTAFIN_ORACLE.HELPCONT;
|
||||
CREATE PUBLIC SYNONYM SYN_LUNILEAN FOR CONTAFIN_ORACLE.LUNILEAN;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_CETATENII FOR CONTAFIN_ORACLE.NOM_CETATENII;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_CODURI_CAEN FOR CONTAFIN_ORACLE.NOM_CODURI_CAEN;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_FIRME FOR CONTAFIN_ORACLE.NOM_FIRME;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_FORME_JURIDICE FOR CONTAFIN_ORACLE.NOM_FORME_JURIDICE;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_FORME_ORGANIZARE FOR CONTAFIN_ORACLE.NOM_FORME_ORGANIZARE;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_FORME_PROPRIETATE FOR CONTAFIN_ORACLE.NOM_FORME_PROPRIETATE;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_JUDETE FOR CONTAFIN_ORACLE.NOM_JUDETE;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_LOCALITATI FOR CONTAFIN_ORACLE.NOM_LOCALITATI;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_PROGRAME FOR CONTAFIN_ORACLE.NOM_PROGRAME;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_TARI FOR CONTAFIN_ORACLE.NOM_TARI;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_TIPAPATRID FOR CONTAFIN_ORACLE.NOM_TIPAPATRID;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_TIP_SOCIETATE FOR CONTAFIN_ORACLE.NOM_TIP_SOCIETATE;
|
||||
CREATE PUBLIC SYNONYM SYN_NOM_VALUTE_ISO FOR CONTAFIN_ORACLE.NOM_VALUTE_ISO;
|
||||
CREATE PUBLIC SYNONYM SYN_OPTIUNI_PROGRAME FOR CONTAFIN_ORACLE.OPTIUNI_PROGRAME;
|
||||
CREATE PUBLIC SYNONYM SYN_PACK_DEF_CO FOR CONTAFIN_ORACLE.PACK_DEF_CO;
|
||||
CREATE PUBLIC SYNONYM SYN_PACK_DREPTURI FOR CONTAFIN_ORACLE.PACK_DREPTURI;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_ACTUALIZARE_COR FOR CONTAFIN_ORACLE.SAL_ACTUALIZARE_COR;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_COR FOR CONTAFIN_ORACLE.SAL_COR;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_DURATA_MUNCA FOR CONTAFIN_ORACLE.SAL_NOM_DURATA_MUNCA;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_INTERVALE_MUNCA FOR CONTAFIN_ORACLE.SAL_NOM_INTERVALE_MUNCA;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_REPARTIZARE_MUNCA FOR CONTAFIN_ORACLE.SAL_NOM_REPARTIZARE_MUNCA;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_STARI_CTR FOR CONTAFIN_ORACLE.SAL_NOM_STARI_CTR;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_TEMEI FOR CONTAFIN_ORACLE.SAL_NOM_TEMEI;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_TIPAUTORIZATIE FOR CONTAFIN_ORACLE.SAL_NOM_TIPAUTORIZATIE;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_TIP_NORME FOR CONTAFIN_ORACLE.SAL_NOM_TIP_NORME;
|
||||
CREATE PUBLIC SYNONYM SYN_SAL_NOM_TIP_SPOR FOR CONTAFIN_ORACLE.SAL_NOM_TIP_SPOR;
|
||||
CREATE PUBLIC SYNONYM SYN_UTILIZATORI FOR CONTAFIN_ORACLE.UTILIZATORI;
|
||||
CREATE PUBLIC SYNONYM SYN_VDEF_PROGRAME FOR CONTAFIN_ORACLE.VDEF_PROGRAME;
|
||||
CREATE PUBLIC SYNONYM SYN_VDEF_UTIL_FIRME FOR CONTAFIN_ORACLE.VDEF_UTIL_FIRME;
|
||||
CREATE PUBLIC SYNONYM SYN_VDEF_UTIL_GRUP FOR CONTAFIN_ORACLE.VDEF_UTIL_GRUP;
|
||||
CREATE PUBLIC SYNONYM SYN_VDEF_UTIL_OBIECTE FOR CONTAFIN_ORACLE.VDEF_UTIL_OBIECTE;
|
||||
CREATE PUBLIC SYNONYM SYN_VDEF_UTIL_PROGRAME FOR CONTAFIN_ORACLE.VDEF_UTIL_PROGRAME;
|
||||
CREATE PUBLIC SYNONYM SYN_VNOM_JUDETE FOR CONTAFIN_ORACLE.VNOM_JUDETE;
|
||||
CREATE PUBLIC SYNONYM SYN_VNOM_LOCALITATI FOR CONTAFIN_ORACLE.VNOM_LOCALITATI;
|
||||
CREATE PUBLIC SYNONYM SYN_VNOM_TARI FOR CONTAFIN_ORACLE.VNOM_TARI;
|
||||
CREATE PUBLIC SYNONYM SYN_VNOM_UM_ISO FOR CONTAFIN_ORACLE.VNOM_UM_ISO;
|
||||
CREATE PUBLIC SYNONYM SYN_VNOM_VALUTE_ISO FOR CONTAFIN_ORACLE.VNOM_VALUTE_ISO;
|
||||
CREATE PUBLIC SYNONYM SYN_VUTILIZATORI FOR CONTAFIN_ORACLE.VUTILIZATORI;
|
||||
CREATE PUBLIC SYNONYM SYN_V_NOM_FIRME FOR CONTAFIN_ORACLE.V_NOM_FIRME;
|
||||
CREATE PUBLIC SYNONYM TABELAVALORITAGURI FOR CONTAFIN_ORACLE.TABELAVALORITAGURI;
|
||||
CREATE PUBLIC SYNONYM TABINCHIDERETVA FOR CONTAFIN_ORACLE.TABINCHIDERETVA;
|
||||
CREATE PUBLIC SYNONYM TABSTERS FOR CONTAFIN_ORACLE.TABSTERS;
|
||||
CREATE PUBLIC SYNONYM UW_SEL_ROW FOR CONTAFIN_ORACLE.UW_SEL_ROW;
|
||||
CREATE PUBLIC SYNONYM UW_SEL_TAB FOR CONTAFIN_ORACLE.UW_SEL_TAB;
|
||||
CREATE PUBLIC SYNONYM VALOARETAG FOR CONTAFIN_ORACLE.VALOARETAG;
|
||||
CREATE PUBLIC SYNONYM VANZARI_DETALII_TAB FOR CONTAFIN_ORACLE.VANZARI_DETALII_TAB;
|
||||
42
clienti/oracle-xe-21c/import/11_import_master.sql
Normal file
42
clienti/oracle-xe-21c/import/11_import_master.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- ============================================================
|
||||
-- IMPORT MASTER - Recreare PDB Oracle XE 21c
|
||||
-- Rulat ca SYS AS SYSDBA conectat la PDB-ul NOU
|
||||
-- ============================================================
|
||||
-- PREREQUISITE: PDB creat si deschis, fisierele .dmp in DMPDIR
|
||||
-- ============================================================
|
||||
|
||||
SPOOL C:\DMPDIR\import_master.log
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 1: Infrastructura (inainte de Data Pump)
|
||||
-- ============================================================
|
||||
PROMPT [1/13] Creating tablespaces...
|
||||
@01_tablespaces.sql
|
||||
|
||||
PROMPT [2/13] Creating users...
|
||||
@02_useri.sql
|
||||
|
||||
PROMPT [3/13] Creating directories...
|
||||
@03_directories.sql
|
||||
|
||||
PROMPT [4/13] Creating SYS custom tables...
|
||||
@04_sys_tables.sql
|
||||
|
||||
PROMPT [5/13] Creating context...
|
||||
@08_context.sql
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 2: Data Pump (din CMD, nu din SQLPlus!)
|
||||
-- ============================================================
|
||||
PROMPT
|
||||
PROMPT ==============================================
|
||||
PROMPT STOP! Ruleaza Data Pump din CMD:
|
||||
PROMPT ==============================================
|
||||
PROMPT impdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_import.log remap_tablespace=USERS:ROA
|
||||
PROMPT impdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_import.log table_exists_action=APPEND
|
||||
PROMPT ==============================================
|
||||
PROMPT Dupa Data Pump, continua cu:
|
||||
PROMPT @11_import_master_faza2.sql
|
||||
PROMPT ==============================================
|
||||
|
||||
SPOOL OFF
|
||||
74
clienti/oracle-xe-21c/import/11_import_master_faza2.sql
Normal file
74
clienti/oracle-xe-21c/import/11_import_master_faza2.sql
Normal file
@@ -0,0 +1,74 @@
|
||||
-- ============================================================
|
||||
-- IMPORT MASTER FAZA 2 - Dupa Data Pump
|
||||
-- Rulat ca SYS AS SYSDBA conectat la PDB-ul NOU
|
||||
-- ============================================================
|
||||
-- PREREQUISITE: Faza 1 + Data Pump terminate cu succes
|
||||
-- ============================================================
|
||||
|
||||
SPOOL C:\DMPDIR\import_master_faza2.log
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 3: Obiecte care depind de scheme (dupa Data Pump)
|
||||
-- ============================================================
|
||||
PROMPT [6/13] Creating SYS code objects (AUTH_PACK, procedures)...
|
||||
@05_sys_code_objects.sql
|
||||
|
||||
PROMPT [7/13] Creating SYS views...
|
||||
@06_sys_views.sql
|
||||
|
||||
PROMPT [8/13] Creating SYS triggers...
|
||||
@07_sys_triggers.sql
|
||||
|
||||
PROMPT [9/13] Applying grants on SYS objects...
|
||||
@09_granturi.sql
|
||||
|
||||
PROMPT [10/13] Creating public synonyms...
|
||||
@10_sinonime_publice.sql
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 4: Instalare UTL_MAIL (necesar pentru aplicatie)
|
||||
-- ============================================================
|
||||
PROMPT [11/13] Installing UTL_MAIL...
|
||||
@?/rdbms/admin/utlmail.sql
|
||||
@?/rdbms/admin/prvtmail.plb
|
||||
GRANT EXECUTE ON SYS.UTL_MAIL TO CONTAFIN_ORACLE;
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 5: Preventie - dezactiveaza auto tasks
|
||||
-- ============================================================
|
||||
PROMPT [12/13] Disabling auto tasks...
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor', operation => NULL, window_name => NULL);
|
||||
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
|
||||
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
|
||||
-- ============================================================
|
||||
-- FAZA 6: Verificare
|
||||
-- ============================================================
|
||||
PROMPT [13/13] Verification...
|
||||
|
||||
PROMPT -- Spatiu alocat per tablespace:
|
||||
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS allocated_mb
|
||||
FROM dba_data_files GROUP BY tablespace_name ORDER BY allocated_mb DESC;
|
||||
|
||||
PROMPT -- Total alocat:
|
||||
SELECT ROUND(SUM(bytes)/1024/1024) AS total_mb FROM dba_data_files;
|
||||
|
||||
PROMPT -- Auto tasks:
|
||||
SELECT client_name, status FROM dba_autotask_client;
|
||||
|
||||
PROMPT -- Obiecte invalide:
|
||||
SELECT owner, object_name, object_type
|
||||
FROM dba_objects
|
||||
WHERE status = 'INVALID'
|
||||
AND owner IN ('SYS', 'CONTAFIN_ORACLE', 'FIRMA', 'ROMPETROLE')
|
||||
ORDER BY owner, object_type, object_name;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT IMPORT COMPLET!
|
||||
PROMPT Verificati import_master_faza2.log
|
||||
PROMPT Resetati parolele utilizatorilor daca e nevoie.
|
||||
PROMPT =============================================
|
||||
412
clienti/oracle-xe-21c/import/cleanup_audit.sql
Normal file
412
clienti/oracle-xe-21c/import/cleanup_audit.sql
Normal file
@@ -0,0 +1,412 @@
|
||||
-- ============================================================
|
||||
-- CLEANUP & DISABLE AUDIT - Oracle XE 11g/12c/18c/21c
|
||||
-- ============================================================
|
||||
-- Compatibil cu: Oracle 11g XE, 12c, 18c XE, 21c XE
|
||||
-- Compatibil cu: non-CDB si CDB/PDB
|
||||
-- Scop: Curata audit trail din SYSAUX + dezactiveaza auditurile
|
||||
-- Rulat ca: SYS AS SYSDBA
|
||||
-- - non-CDB: sqlplus / as sysdba
|
||||
-- - CDB/PDB: conectat la PDB (ALTER SESSION SET CONTAINER = XEPDB1)
|
||||
-- ============================================================
|
||||
--
|
||||
-- IMPORTANT: Pe Oracle XE, audit-urile active umfla SYSAUX/AUDSYS
|
||||
-- pana la limita de 12 GB si blocheaza baza cu ORA-12954.
|
||||
-- Acest script:
|
||||
-- 1. Detecteaza versiunea Oracle si tipul bazei (CDB/non-CDB)
|
||||
-- 2. Dezactiveaza TOATE audit policies (unified + traditional)
|
||||
-- 3. Curata audit trail-urile existente
|
||||
-- 4. Configureaza auto-purge pentru siguranta
|
||||
-- 5. Dezactiveaza auto tasks care umfla SYSAUX
|
||||
-- 6. Verifica rezultatul
|
||||
-- ============================================================
|
||||
|
||||
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||
SET FEEDBACK OFF
|
||||
SET VERIFY OFF
|
||||
|
||||
SPOOL cleanup_audit.log
|
||||
|
||||
DECLARE
|
||||
v_version NUMBER;
|
||||
v_full_ver VARCHAR2(100);
|
||||
v_is_cdb VARCHAR2(3) := 'NO';
|
||||
v_con_name VARCHAR2(128) := 'NON-CDB';
|
||||
v_count NUMBER;
|
||||
v_aud_size_mb NUMBER := 0;
|
||||
v_sysaux_mb NUMBER := 0;
|
||||
|
||||
-- Helper: executa SQL si ignora erori
|
||||
PROCEDURE exec_ignore(p_sql VARCHAR2) IS
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE p_sql;
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] ' || SUBSTR(SQLERRM, 1, 200));
|
||||
END;
|
||||
|
||||
-- Helper: executa SQL cu output
|
||||
PROCEDURE exec_log(p_sql VARCHAR2, p_desc VARCHAR2) IS
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE p_sql;
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] ' || p_desc);
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] ' || p_desc || ' - ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
-- =========================================================
|
||||
-- DETECTIE VERSIUNE SI TIP BAZA
|
||||
-- =========================================================
|
||||
-- version_full exista doar pe 18c+, version exista pe toate
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'SELECT version_full FROM v$instance' INTO v_full_ver;
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
SELECT version INTO v_full_ver FROM v$instance;
|
||||
END;
|
||||
|
||||
v_version := TO_NUMBER(SUBSTR(v_full_ver, 1, INSTR(v_full_ver, '.') - 1));
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
DBMS_OUTPUT.PUT_LINE(' CLEANUP AUDIT - Oracle ' || v_full_ver);
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
|
||||
-- Detectie CDB (12c+)
|
||||
IF v_version >= 12 THEN
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'SELECT CDB FROM V$DATABASE' INTO v_is_cdb;
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
v_is_cdb := 'NO';
|
||||
END;
|
||||
|
||||
IF v_is_cdb = 'YES' THEN
|
||||
EXECUTE IMMEDIATE 'SELECT SYS_CONTEXT(''USERENV'', ''CON_NAME'') FROM DUAL' INTO v_con_name;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(' Versiune: ' || v_version || ' | CDB: ' || v_is_cdb || ' | Container: ' || v_con_name);
|
||||
|
||||
-- Warning daca suntem pe CDB$ROOT
|
||||
IF v_con_name = 'CDB$ROOT' AND v_is_cdb = 'YES' THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE(' !!! ATENTIE: Esti conectat la CDB$ROOT !!!');
|
||||
DBMS_OUTPUT.PUT_LINE(' !!! Ruleaza scriptul si pe fiecare PDB: !!!');
|
||||
DBMS_OUTPUT.PUT_LINE(' !!! ALTER SESSION SET CONTAINER = XEPDB1; !!!');
|
||||
DBMS_OUTPUT.PUT_LINE(' !!! @cleanup_audit.sql !!!');
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
END IF;
|
||||
|
||||
-- Spatiu SYSAUX inainte
|
||||
SELECT ROUND(SUM(bytes)/1024/1024)
|
||||
INTO v_sysaux_mb
|
||||
FROM dba_segments
|
||||
WHERE tablespace_name = 'SYSAUX';
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(' SYSAUX segmente inainte: ' || v_sysaux_mb || ' MB');
|
||||
DBMS_OUTPUT.PUT_LINE('------------------------------------------------------------');
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 1: DEZACTIVARE UNIFIED AUDIT POLICIES (12c+)
|
||||
-- =========================================================
|
||||
IF v_version >= 12 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 1] Dezactivare unified audit policies...');
|
||||
|
||||
-- Dezactiveaza toate politicile active
|
||||
FOR rec IN (
|
||||
SELECT DISTINCT policy_name
|
||||
FROM audit_unified_enabled_policies
|
||||
) LOOP
|
||||
exec_log('NOAUDIT POLICY ' || rec.policy_name, 'NOAUDIT POLICY ' || rec.policy_name);
|
||||
END LOOP;
|
||||
|
||||
-- Verifica
|
||||
SELECT COUNT(*) INTO v_count FROM audit_unified_enabled_policies;
|
||||
IF v_count = 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Toate politicile unified audit dezactivate');
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' [WARN] Inca ' || v_count || ' politici active!');
|
||||
END IF;
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 1] Oracle ' || v_version || ' - nu are unified audit, skip');
|
||||
END IF;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 2: DEZACTIVARE TRADITIONAL AUDIT (11g-21c)
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 2] Dezactivare traditional audit...');
|
||||
|
||||
exec_log('NOAUDIT ALL', 'NOAUDIT ALL');
|
||||
exec_log('NOAUDIT ALL PRIVILEGES', 'NOAUDIT ALL PRIVILEGES');
|
||||
|
||||
-- Dezactiveaza audituri per-user
|
||||
FOR rec IN (
|
||||
SELECT DISTINCT user_name
|
||||
FROM dba_stmt_audit_opts
|
||||
WHERE user_name IS NOT NULL
|
||||
) LOOP
|
||||
exec_log('NOAUDIT ALL BY ' || rec.user_name, 'NOAUDIT ALL BY ' || rec.user_name);
|
||||
END LOOP;
|
||||
|
||||
-- Dezactiveaza audituri pe obiecte
|
||||
FOR rec IN (
|
||||
SELECT owner, object_name, object_type
|
||||
FROM dba_obj_audit_opts
|
||||
WHERE alt != '-/-' OR aud != '-/-' OR com != '-/-'
|
||||
OR del != '-/-' OR gra != '-/-' OR ind != '-/-'
|
||||
OR ins != '-/-' OR loc != '-/-' OR ren != '-/-'
|
||||
OR sel != '-/-' OR upd != '-/-' OR exe != '-/-'
|
||||
) LOOP
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'NOAUDIT ALL ON ' || rec.owner || '.' || rec.object_name;
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] NOAUDIT ALL ON ' || rec.owner || '.' || rec.object_name);
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 3: CLEANUP UNIFIED AUDIT TRAIL (12c+)
|
||||
-- =========================================================
|
||||
IF v_version >= 12 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 3] Cleanup unified audit trail...');
|
||||
|
||||
-- Dimensiune audit trail
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM unified_audit_trail' INTO v_count;
|
||||
DBMS_OUTPUT.PUT_LINE(' Inregistrari in unified_audit_trail: ' || v_count);
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
v_count := 0;
|
||||
END;
|
||||
|
||||
IF v_count > 0 THEN
|
||||
-- Seteaza timestamp de arhivare in trecut (permite stergerea tuturor)
|
||||
BEGIN
|
||||
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
|
||||
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
|
||||
last_archive_time => SYSTIMESTAMP + INTERVAL '1' DAY
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Archive timestamp setat');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] Archive timestamp: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
-- Curata trail-ul
|
||||
BEGIN
|
||||
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
|
||||
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
|
||||
use_last_arch_timestamp => TRUE
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Unified audit trail curatat');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [FAIL] Cleanup unified: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
DBMS_OUTPUT.PUT_LINE(' [INFO] Daca ORA-12954, curata mai intai SQL Tuning Sets (vezi Pasul 5)');
|
||||
DBMS_OUTPUT.PUT_LINE(' [INFO] Apoi reruleaza acest script');
|
||||
END;
|
||||
|
||||
-- Verifica cate au ramas
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM unified_audit_trail' INTO v_count;
|
||||
DBMS_OUTPUT.PUT_LINE(' Inregistrari ramase: ' || v_count);
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Unified audit trail gol, nimic de curatat');
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 4: CLEANUP TRADITIONAL AUDIT TRAIL (AUD$)
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 4] Cleanup traditional audit trail (AUD$)...');
|
||||
|
||||
-- Dimensiune AUD$
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM sys.aud$;
|
||||
DBMS_OUTPUT.PUT_LINE(' Inregistrari in AUD$: ' || v_count);
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
v_count := 0;
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] AUD$ nu exista sau nu e accesibil');
|
||||
END;
|
||||
|
||||
IF v_count > 0 THEN
|
||||
-- Curata via DBMS_AUDIT_MGMT
|
||||
BEGIN
|
||||
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
|
||||
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
|
||||
last_archive_time => SYSTIMESTAMP + INTERVAL '1' DAY
|
||||
);
|
||||
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
|
||||
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
|
||||
use_last_arch_timestamp => TRUE
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] AUD$ curatat via DBMS_AUDIT_MGMT');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] DBMS_AUDIT_MGMT: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
-- Fallback: TRUNCATE direct
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'TRUNCATE TABLE sys.aud$';
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] AUD$ curatat via TRUNCATE');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [FAIL] TRUNCATE AUD$: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Curata FGA_LOG$ (Fine-Grained Audit)
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM sys.fga_log$;
|
||||
IF v_count > 0 THEN
|
||||
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
|
||||
audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
|
||||
use_last_arch_timestamp => FALSE
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] FGA_LOG$ curatat (' || v_count || ' inregistrari)');
|
||||
END IF;
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] FGA_LOG$: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 5: CLEANUP SQL TUNING SETS (SYSAUX - cel mai mare vinovat)
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 5] Cleanup SQL Tuning Sets din SYSAUX...');
|
||||
|
||||
-- Drop SQL Tuning Sets
|
||||
FOR rec IN (SELECT name, owner FROM dba_sqlset) LOOP
|
||||
BEGIN
|
||||
DBMS_SQLTUNE.DROP_SQLSET(rec.name, rec.owner);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Drop SQLSET: ' || rec.owner || '.' || rec.name);
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- TRUNCATE tabelele daca DROP nu a eliberat spatiul
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_plan_lines', 'TRUNCATE wri$_sqlset_plan_lines');
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_plans', 'TRUNCATE wri$_sqlset_plans');
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_statistics', 'TRUNCATE wri$_sqlset_statistics');
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_statements', 'TRUNCATE wri$_sqlset_statements');
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_references', 'TRUNCATE wri$_sqlset_references');
|
||||
exec_log('TRUNCATE TABLE sys.wri$_sqlset_definitions', 'TRUNCATE wri$_sqlset_definitions');
|
||||
|
||||
-- Cleanup advisor tasks + stats
|
||||
exec_log('BEGIN DBMS_ADVISOR.DELETE_EXPIRED_TASKS; END;', 'Delete expired advisor tasks');
|
||||
exec_log('BEGIN DBMS_STATS.PURGE_STATS(SYSDATE - 7); END;', 'Purge stats older than 7 days');
|
||||
exec_log('PURGE DBA_RECYCLEBIN', 'Purge recyclebin');
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 6: DEZACTIVARE AUTO TASKS
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 6] Dezactivare auto tasks...');
|
||||
|
||||
BEGIN
|
||||
DBMS_AUTO_TASK_ADMIN.DISABLE(
|
||||
client_name => 'sql tuning advisor',
|
||||
operation => NULL,
|
||||
window_name => NULL
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] sql tuning advisor DISABLED');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] sql tuning advisor: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
DBMS_AUTO_TASK_ADMIN.DISABLE(
|
||||
client_name => 'auto space advisor',
|
||||
operation => NULL,
|
||||
window_name => NULL
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] auto space advisor DISABLED');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] auto space advisor: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 7: AWR RETENTION + STATS RETENTION
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 7] Configurare AWR retention...');
|
||||
|
||||
-- Incearca 8 zile (min moving window baseline)
|
||||
BEGIN
|
||||
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
|
||||
retention => 8 * 24 * 60,
|
||||
interval => 60
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] AWR retention = 8 zile, interval = 60 min');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] AWR: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
DBMS_OUTPUT.PUT_LINE(' [OK] Stats history retention = 7 zile');
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' [SKIP] Stats retention: ' || SUBSTR(SQLERRM, 1, 150));
|
||||
END;
|
||||
|
||||
-- =========================================================
|
||||
-- PASUL 8: GRANT DBMS_LOCK (necesar pt PACK_UTILS_FILE)
|
||||
-- =========================================================
|
||||
IF v_version >= 12 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('[PASUL 8] Grant DBMS_LOCK...');
|
||||
exec_log('GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE', 'GRANT DBMS_LOCK TO CONTAFIN_ORACLE');
|
||||
END IF;
|
||||
|
||||
-- =========================================================
|
||||
-- VERIFICARE FINALA
|
||||
-- =========================================================
|
||||
DBMS_OUTPUT.PUT_LINE(' ');
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
DBMS_OUTPUT.PUT_LINE(' VERIFICARE FINALA');
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
|
||||
-- SYSAUX dupa
|
||||
SELECT ROUND(SUM(bytes)/1024/1024)
|
||||
INTO v_sysaux_mb
|
||||
FROM dba_segments
|
||||
WHERE tablespace_name = 'SYSAUX';
|
||||
DBMS_OUTPUT.PUT_LINE(' SYSAUX segmente dupa: ' || v_sysaux_mb || ' MB');
|
||||
|
||||
-- Audit policies (12c+)
|
||||
IF v_version >= 12 THEN
|
||||
SELECT COUNT(*) INTO v_count FROM audit_unified_enabled_policies;
|
||||
IF v_count = 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' Unified audit policies: NONE (OK)');
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' Unified audit policies: ' || v_count || ' ACTIVE (WARN!)');
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Traditional audit
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM dba_stmt_audit_opts;
|
||||
DBMS_OUTPUT.PUT_LINE(' Traditional audit opts: ' || v_count);
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
|
||||
-- Auto tasks
|
||||
DBMS_OUTPUT.PUT_LINE(' Auto tasks:');
|
||||
FOR rec IN (SELECT client_name, status FROM dba_autotask_client) LOOP
|
||||
DBMS_OUTPUT.PUT_LINE(' ' || RPAD(rec.client_name, 45) || rec.status);
|
||||
END LOOP;
|
||||
|
||||
-- Total alocat
|
||||
BEGIN
|
||||
SELECT ROUND(SUM(bytes)/1024/1024) INTO v_sysaux_mb FROM dba_data_files;
|
||||
DBMS_OUTPUT.PUT_LINE(' Total datafiles: ' || v_sysaux_mb || ' MB / 12288 MB (XE limit)');
|
||||
EXCEPTION WHEN OTHERS THEN NULL;
|
||||
END;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
DBMS_OUTPUT.PUT_LINE(' CLEANUP COMPLET!');
|
||||
DBMS_OUTPUT.PUT_LINE('============================================================');
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
SPOOL OFF
|
||||
236
clienti/oracle-xe-21c/import/export_pdb_complet.sql
Normal file
236
clienti/oracle-xe-21c/import/export_pdb_complet.sql
Normal file
@@ -0,0 +1,236 @@
|
||||
-- ============================================================
|
||||
-- EXPORT COMPLET PDB XEPDB1 - Oracle XE 21c
|
||||
-- Scop: backup inainte de recreare PDB pentru recuperare spatiu
|
||||
-- Rulat ca SYS AS SYSDBA conectat la PDB (XEPDB1)
|
||||
-- ============================================================
|
||||
-- NOTA: Inainte de rulare, asigura-te ca directorul C:\DMPDIR exista
|
||||
-- si ca DMPDIR e definit: CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
|
||||
-- ============================================================
|
||||
|
||||
SET ECHO ON
|
||||
SET FEEDBACK ON
|
||||
SET LONG 100000
|
||||
SET LONGCHUNKSIZE 100000
|
||||
SET PAGESIZE 0
|
||||
SET LINESIZE 300
|
||||
SET TRIMSPOOL ON
|
||||
SET HEADING OFF
|
||||
SET VERIFY OFF
|
||||
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 1: Export scheme cu Data Pump (ruleaza separat din CMD)
|
||||
-- ============================================================
|
||||
-- expdp \"sys/parola@XEPDB1 AS SYSDBA\" schemas=CONTAFIN_ORACLE,FIRMA directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_export.log
|
||||
-- expdp \"sys/parola@XEPDB1 AS SYSDBA\" tables=SYS.AUTH_SERII,SYS.AUTH_DETALII,SYS.INFO directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_export.log
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 2: Export sinonime publice
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\02_sinonime_publice.sql
|
||||
|
||||
SELECT 'CREATE PUBLIC SYNONYM ' || synonym_name || ' FOR ' ||
|
||||
table_owner || '.' || table_name || ';'
|
||||
FROM dba_synonyms
|
||||
WHERE owner = 'PUBLIC'
|
||||
AND table_owner IN ('CONTAFIN_ORACLE', 'FIRMA')
|
||||
ORDER BY synonym_name;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 3: Export grant-uri
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\03_granturi.sql
|
||||
|
||||
-- 3a. Grant-uri pe obiecte SYS catre schemele aplicatiei
|
||||
SELECT 'GRANT ' || privilege || ' ON ' || owner || '.' || table_name ||
|
||||
' TO ' || grantee || ';'
|
||||
FROM dba_tab_privs
|
||||
WHERE (grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
|
||||
AND owner = 'SYS')
|
||||
ORDER BY grantee, table_name;
|
||||
|
||||
-- 3b. Grant-uri de la schemele aplicatiei catre PUBLIC
|
||||
SELECT 'GRANT ' || privilege || ' ON ' || owner || '.' || table_name ||
|
||||
' TO ' || grantee || ';'
|
||||
FROM dba_tab_privs
|
||||
WHERE grantor IN ('CONTAFIN_ORACLE', 'FIRMA')
|
||||
ORDER BY grantee, owner, table_name;
|
||||
|
||||
-- 3c. System privileges
|
||||
SELECT 'GRANT ' || privilege || ' TO ' || grantee || ';'
|
||||
FROM dba_sys_privs
|
||||
WHERE grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
|
||||
ORDER BY grantee, privilege;
|
||||
|
||||
-- 3d. Role privileges
|
||||
SELECT 'GRANT ' || granted_role || ' TO ' || grantee || ';'
|
||||
FROM dba_role_privs
|
||||
WHERE grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
|
||||
ORDER BY grantee, granted_role;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 4: Export DIRECTORY-uri custom
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\04_directories.sql
|
||||
|
||||
SELECT 'CREATE OR REPLACE DIRECTORY ' || directory_name ||
|
||||
' AS ''' || directory_path || ''';'
|
||||
FROM dba_directories
|
||||
WHERE origin_con_id != 1
|
||||
ORDER BY directory_name;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 5: Export proceduri, functii, pachete SYS custom
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\05_sys_code_objects.sql
|
||||
|
||||
-- Packages (include si body automat)
|
||||
PROMPT -- PACKAGES
|
||||
SELECT DBMS_METADATA.GET_DDL('PACKAGE', object_name, 'SYS')
|
||||
FROM dba_objects
|
||||
WHERE owner = 'SYS' AND oracle_maintained = 'N'
|
||||
AND object_type = 'PACKAGE'
|
||||
AND object_name NOT LIKE 'KUPC%'
|
||||
AND object_name NOT LIKE 'AQ$%';
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
-- Proceduri
|
||||
PROMPT -- PROCEDURES
|
||||
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', object_name, 'SYS')
|
||||
FROM dba_objects
|
||||
WHERE owner = 'SYS' AND oracle_maintained = 'N'
|
||||
AND object_type = 'PROCEDURE'
|
||||
AND object_name NOT LIKE 'KUPC%'
|
||||
AND object_name NOT LIKE 'AQ$%';
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
-- Functii
|
||||
PROMPT -- FUNCTIONS
|
||||
SELECT DBMS_METADATA.GET_DDL('FUNCTION', object_name, 'SYS')
|
||||
FROM dba_objects
|
||||
WHERE owner = 'SYS' AND oracle_maintained = 'N'
|
||||
AND object_type = 'FUNCTION'
|
||||
AND object_name NOT LIKE 'KUPC%'
|
||||
AND object_name NOT LIKE 'AQ$%';
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 6: Export tabele custom SYS (structura)
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\06_sys_tables.sql
|
||||
|
||||
SELECT DBMS_METADATA.GET_DDL('TABLE', object_name, 'SYS')
|
||||
FROM dba_objects
|
||||
WHERE owner = 'SYS' AND oracle_maintained = 'N'
|
||||
AND object_type = 'TABLE'
|
||||
AND object_name IN ('AUTH_SERII', 'AUTH_DETALII', 'INFO');
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
-- Sequence
|
||||
SELECT DBMS_METADATA.GET_DDL('SEQUENCE', 'SEQ_AUTH_SERII', 'SYS') FROM dual;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
-- Index custom
|
||||
SELECT DBMS_METADATA.GET_DDL('INDEX', 'PK_AUTH_SERII', 'SYS') FROM dual;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 7: Export VIEW-uri custom SYS
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\07_sys_views.sql
|
||||
|
||||
SELECT DBMS_METADATA.GET_DDL('VIEW', 'VAUTH_SERII', 'SYS') FROM dual;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 8: Export TRIGGER-uri custom SYS
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\08_sys_triggers.sql
|
||||
|
||||
SELECT DBMS_METADATA.GET_DDL('TRIGGER', 'LOGON_AUDIT_TRIGGER', 'SYS') FROM dual;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 9: Export CONTEXT
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\09_context.sql
|
||||
|
||||
SELECT DBMS_METADATA.GET_DDL('CONTEXT', 'SESIUNE') FROM dual;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 10: Export useri si profile
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\10_useri.sql
|
||||
|
||||
SELECT DBMS_METADATA.GET_DDL('USER', username)
|
||||
FROM dba_users
|
||||
WHERE oracle_maintained = 'N'
|
||||
AND username NOT IN ('PDBADMIN')
|
||||
ORDER BY username;
|
||||
|
||||
SELECT '/' FROM dual;
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 11: Export tablespace-uri custom
|
||||
-- ============================================================
|
||||
SPOOL C:\DMPDIR\11_tablespaces.sql
|
||||
|
||||
SELECT 'CREATE TABLESPACE ' || tablespace_name ||
|
||||
' DATAFILE SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 4G;'
|
||||
FROM dba_tablespaces
|
||||
WHERE tablespace_name NOT IN ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS')
|
||||
AND contents = 'PERMANENT';
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
-- ============================================================
|
||||
-- REZUMAT FISIERE GENERATE
|
||||
-- ============================================================
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT EXPORT COMPLET - FISIERE GENERATE
|
||||
PROMPT =============================================
|
||||
PROMPT C:\DMPDIR\02_sinonime_publice.sql
|
||||
PROMPT C:\DMPDIR\03_granturi.sql
|
||||
PROMPT C:\DMPDIR\04_directories.sql
|
||||
PROMPT C:\DMPDIR\05_sys_code_objects.sql
|
||||
PROMPT C:\DMPDIR\06_sys_tables.sql
|
||||
PROMPT C:\DMPDIR\07_sys_views.sql
|
||||
PROMPT C:\DMPDIR\08_sys_triggers.sql
|
||||
PROMPT C:\DMPDIR\09_context.sql
|
||||
PROMPT C:\DMPDIR\10_useri.sql
|
||||
PROMPT C:\DMPDIR\11_tablespaces.sql
|
||||
PROMPT =============================================
|
||||
PROMPT
|
||||
PROMPT NU UITA sa rulezi si Data Pump SEPARAT:
|
||||
PROMPT expdp \"sys/parola@XEPDB1 AS SYSDBA\" schemas=CONTAFIN_ORACLE,FIRMA directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_export.log
|
||||
PROMPT expdp \"sys/parola@XEPDB1 AS SYSDBA\" tables=SYS.AUTH_SERII,SYS.AUTH_DETALII,SYS.INFO directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_export.log
|
||||
PROMPT =============================================
|
||||
134
clienti/oracle-xe-21c/import/recreare_pdb.sql
Normal file
134
clienti/oracle-xe-21c/import/recreare_pdb.sql
Normal file
@@ -0,0 +1,134 @@
|
||||
-- ============================================================
|
||||
-- RECREARE PDB XEPDB1 - Oracle XE 21c
|
||||
-- Scop: PDB curat cu SYSAUX mic (~500 MB vs 7.8 GB)
|
||||
-- ============================================================
|
||||
--
|
||||
-- IMPORTANT: Inlocuieste PAROLA_SYS cu parola reala a user-ului SYS.
|
||||
-- Daca nu stii parola, seteaz-o INAINTE de export:
|
||||
-- sqlplus / as sysdba
|
||||
-- ALTER USER SYS IDENTIFIED BY "ParolaNoua123";
|
||||
-- Apoi foloseste "ParolaNoua123" peste tot unde apare PAROLA_SYS.
|
||||
--
|
||||
-- PREREQUISITE: Exporturile trebuie sa fi fost rulate cu succes!
|
||||
-- 1. expdp (Data Pump) - din CMD
|
||||
-- 2. export_pdb_complet.sql - din SQLPlus
|
||||
-- 3. Fisierele .dmp si .sql trebuie sa fie in C:\DMPDIR
|
||||
--
|
||||
-- TIMP ESTIMAT: ~30-45 minute (depinde de dimensiunea dump-urilor)
|
||||
-- ============================================================
|
||||
|
||||
-- ************************************************************
|
||||
-- PASUL 0: EXPORT (daca nu s-a facut deja)
|
||||
-- ************************************************************
|
||||
-- Conecteaza-te la PDB-ul VECHI si ruleaza exporturile:
|
||||
--
|
||||
-- A) Data Pump (din CMD, nu SQLPlus):
|
||||
-- expdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" schemas=CONTAFIN_ORACLE,FIRMA directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_export.log
|
||||
-- expdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" tables=SYS.AUTH_SERII,SYS.AUTH_DETALII,SYS.INFO directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_export.log
|
||||
--
|
||||
-- B) SQL export (din SQLPlus conectat la XEPDB1):
|
||||
-- sqlplus sys/PAROLA_SYS@XEPDB1 AS SYSDBA
|
||||
-- @C:\DMPDIR\import\export_pdb_complet.sql
|
||||
--
|
||||
-- VERIFICA: schemas_export.dmp si sys_tables.dmp exista in C:\DMPDIR
|
||||
-- si log-urile nu contin erori fatale.
|
||||
-- ************************************************************
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 1: Drop PDB vechi
|
||||
-- ============================================================
|
||||
-- Conectare: sqlplus / as sysdba (conecteaza la CDB$ROOT)
|
||||
-- SAU: sqlplus sys/PAROLA_SYS AS SYSDBA
|
||||
|
||||
ALTER SESSION SET CONTAINER = CDB$ROOT;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 CLOSE IMMEDIATE;
|
||||
DROP PLUGGABLE DATABASE XEPDB1 INCLUDING DATAFILES;
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 2: Recreare PDB din seed
|
||||
-- ============================================================
|
||||
CREATE PLUGGABLE DATABASE XEPDB1 ADMIN USER PDBADMIN IDENTIFIED BY "RomfastRP2023"
|
||||
FILE_NAME_CONVERT = ('pdbseed', 'XEPDB1');
|
||||
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
|
||||
ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 3: Conectare la PDB-ul nou + creare DMPDIR
|
||||
-- ============================================================
|
||||
ALTER SESSION SET CONTAINER = XEPDB1;
|
||||
|
||||
CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
|
||||
GRANT READ, WRITE ON DIRECTORY DMPDIR TO SYS;
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 4: FAZA 1 - Infrastructura (inainte de Data Pump)
|
||||
-- ============================================================
|
||||
-- Ruleaza import master-ul care creeaza:
|
||||
-- tablespaces -> useri -> directories -> tabele SYS -> context
|
||||
|
||||
@C:\DMPDIR\import\11_import_master.sql
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 5: DATA PUMP IMPORT (din CMD, NU din SQLPlus!)
|
||||
-- ============================================================
|
||||
-- Deschide CMD nou si ruleaza:
|
||||
--
|
||||
-- impdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_import.log remap_tablespace=USERS:ROA
|
||||
-- impdp \"sys/PAROLA_SYS@XEPDB1 AS SYSDBA\" directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_import.log table_exists_action=APPEND
|
||||
--
|
||||
-- ASTEAPTA sa termine AMBELE importuri inainte de pasul 6!
|
||||
-- Verifica log-urile: schemas_import.log si sys_tables_import.log
|
||||
-- ============================================================
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 6: FAZA 2 - Obiecte dependente (dupa Data Pump)
|
||||
-- ============================================================
|
||||
-- Conecteaza-te inapoi la PDB:
|
||||
-- sqlplus sys/PAROLA_SYS@XEPDB1 AS SYSDBA
|
||||
-- SAU daca esti deja conectat la CDB$ROOT:
|
||||
-- ALTER SESSION SET CONTAINER = XEPDB1;
|
||||
|
||||
@C:\DMPDIR\import\11_import_master_faza2.sql
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 7: Compilare obiecte invalide
|
||||
-- ============================================================
|
||||
EXEC DBMS_UTILITY.COMPILE_SCHEMA('CONTAFIN_ORACLE');
|
||||
EXEC DBMS_UTILITY.COMPILE_SCHEMA('FIRMA');
|
||||
EXEC DBMS_UTILITY.COMPILE_SCHEMA('SYS', FALSE);
|
||||
|
||||
-- ============================================================
|
||||
-- PASUL 8: Verificare finala
|
||||
-- ============================================================
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT VERIFICARE SPATIU
|
||||
PROMPT =============================================
|
||||
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS allocated_mb
|
||||
FROM dba_data_files GROUP BY tablespace_name ORDER BY allocated_mb DESC;
|
||||
|
||||
SELECT ROUND(SUM(bytes)/1024/1024) AS total_mb FROM dba_data_files;
|
||||
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT OBIECTE INVALIDE (ar trebui sa fie 0)
|
||||
PROMPT =============================================
|
||||
SELECT owner, object_name, object_type, status
|
||||
FROM dba_objects
|
||||
WHERE status = 'INVALID'
|
||||
AND owner IN ('SYS', 'CONTAFIN_ORACLE', 'FIRMA', 'ROMPETROLE')
|
||||
ORDER BY owner, object_type, object_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT AUTO TASKS (ar trebui DISABLED)
|
||||
PROMPT =============================================
|
||||
SELECT client_name, status FROM dba_autotask_client;
|
||||
|
||||
PROMPT
|
||||
PROMPT =============================================
|
||||
PROMPT RECREARE PDB COMPLETA!
|
||||
PROMPT Total alocat ar trebui sa fie ~2-3 GB
|
||||
PROMPT (vs 11.5 GB inainte de recreare)
|
||||
PROMPT =============================================
|
||||
@@ -396,10 +396,32 @@ ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;
|
||||
impdp ... REMAP_TABLESPACE=ROA:USERS
|
||||
```
|
||||
|
||||
**ORA-00959: tablespace 'USERS' does not exist (pe PDB nou):**
|
||||
```cmd
|
||||
REM PDB-ul nou din PDB$SEED nu are tablespace USERS. Remapeaza la ROA:
|
||||
impdp "sys/pass@XEPDB1 AS SYSDBA" ... remap_tablespace=USERS:ROA
|
||||
```
|
||||
|
||||
**ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version newer:**
|
||||
|
||||
Use DMP files exported from Oracle 18c (TSTZ 31) instead of Oracle 21c (TSTZ 35).
|
||||
|
||||
### ORA-12954: Database exceeds 12 GB (XE only)
|
||||
|
||||
See `clienti/oracle-xe-21c/depanare-ora-12954-spatiu.md` for full troubleshooting guide.
|
||||
|
||||
**Prevention (run on every new XE installation):**
|
||||
```sql
|
||||
-- Connect to XEPDB1 as SYS
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor', operation => NULL, window_name => NULL);
|
||||
NOAUDIT POLICY ORA_SECURECONFIG;
|
||||
NOAUDIT POLICY ORA_LOGON_FAILURES;
|
||||
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
|
||||
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE;
|
||||
```
|
||||
|
||||
### Service Not Starting
|
||||
|
||||
Check Windows Services:
|
||||
|
||||
@@ -276,6 +276,55 @@ Or via Control Panel > Programs and Features.
|
||||
|
||||
---
|
||||
|
||||
## Post-Installation: Preventie ORA-12954 (OBLIGATORIU!)
|
||||
|
||||
Oracle XE are limita de 12 GB. Fara aceste setari, SYSAUX creste automat pana la limita (SQL Tuning Sets, audit trail).
|
||||
|
||||
**Conecteaza-te la PDB-ul XEPDB1 ca SYS si ruleaza:**
|
||||
|
||||
```sql
|
||||
sqlplus sys/romfastsoft@localhost:1521/XEPDB1 as sysdba
|
||||
|
||||
-- 1. Dezactiveaza auto tasks care umfla SYSAUX
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
|
||||
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor', operation => NULL, window_name => NULL);
|
||||
|
||||
-- 2. Dezactiveaza audit policies (umfla AUDSYS)
|
||||
NOAUDIT POLICY ORA_SECURECONFIG;
|
||||
NOAUDIT POLICY ORA_LOGON_FAILURES;
|
||||
|
||||
-- 3. AWR retention minim (8 zile - limita moving window baseline)
|
||||
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
|
||||
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
|
||||
|
||||
-- 4. Grant DBMS_LOCK (necesar pentru PACK_UTILS_FILE)
|
||||
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE;
|
||||
|
||||
-- 5. Verificare
|
||||
SELECT client_name, status FROM dba_autotask_client;
|
||||
SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
|
||||
```
|
||||
|
||||
> **IMPORTANT:** Fara acesti pasi, baza de date va atinge limita de 12 GB in cateva luni!
|
||||
> Vezi `clienti/oracle-xe-21c/depanare-ora-12954-spatiu.md` pentru ghid complet de depanare.
|
||||
|
||||
---
|
||||
|
||||
## Gotchas Oracle XE 21c (Windows)
|
||||
|
||||
| Problema | Solutie |
|
||||
|----------|---------|
|
||||
| `ORA-02236: invalid file name` la CREATE TABLESPACE | Specifica path complet: `DATAFILE 'C:\...\ROA01.DBF'` |
|
||||
| `ORA-00959: tablespace 'USERS' does not exist` la impdp | Adauga `remap_tablespace=USERS:ROA` |
|
||||
| `ORA-00942` la GRANT pe DIRECTORY | Foloseste `GRANT READ, WRITE ON DIRECTORY dir_name` nu `ON SYS.dir_name` |
|
||||
| `PLS-00201: DBMS_LOCK must be declared` | `GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE` |
|
||||
| `ORA-65066` la ALTER USER SYSTEM pe PDB | SYSTEM e common user, modifica din CDB$ROOT |
|
||||
| `ORA-28000: account is locked` la impdp cu SYSTEM | Foloseste SYS AS SYSDBA: `impdp "sys/pass@XEPDB1 AS SYSDBA"` |
|
||||
| impdp `AS SYSDBA` nu functioneaza pe Windows | Pune in ghilimele: `impdp "sys/pass@XEPDB1 AS SYSDBA"` |
|
||||
| `ORA-13541` la AWR retention | Retention trebuie >= 8 zile (moving window baseline) |
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
After Oracle XE installation:
|
||||
@@ -283,10 +332,11 @@ After Oracle XE installation:
|
||||
1. Copy `config.example.ps1` to `config.ps1`
|
||||
2. Edit `config.ps1` with your settings
|
||||
3. Run `01-setup-database.ps1`
|
||||
4. **Run the post-installation prevention steps above!**
|
||||
|
||||
See main `README.md` for complete workflow.
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2026-01-28
|
||||
**Last Updated:** 2026-03-24
|
||||
**Project:** ROMFASTSQL - Oracle XE Installation Guide
|
||||
|
||||
Reference in New Issue
Block a user