Add legacy ROA Oracle 10g server setup scripts (reference)

Original Oracle 10g R1/R2 setup scripts and SQL migrations from 2007-2026.
Preserved as reference for understanding ROA database structure and
historical schema evolution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Marius
2026-01-28 17:08:13 +02:00
parent 989477f7a4
commit 4f51ee48f6
45 changed files with 5259 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
setup.exe
----------------------------------------------------------------
<Welcome>
Advanced installation
<Specify File Locations>
Destination : Path : c:\oracle\product\10.1.0\db_1
<Select Installation Type>
Standard Edition
Product Languages : English, Romanian
<Select Database Configuration>
Advanced
<Install>
----------------------------------------------------------------
Database Configuration Assistant
<Step 1 of 11: Database Templates>
Custom Database
<Step 2 of 11: Database Identification>
Global Database Name: ROA
SID: ROA
<Step 3 of 11: Management Options>
Configure the Database With Enterprise Manager: Da
Enable Email Notification : Da
Enable Daily Backup : Da
<Step 4 of 11: Database Credentials>
Use the same password for all accounts : Da
Password: oracleromfast
<Step 5 of 11: Storage Options>
File System : Da
<Step 6 of 11: Database File Locations>
Use Common Location For All Database Files : Da
Database Files Location: D:\ROA_DB
<Step 7 of 11: Recovery Configuration>
Specify Flash Recovery Area : Da
Flash Recovery Area : D:\ROA_FLASH
Flash Recovery Area Size : 20480 MB (20 GB)
Enable Archiving : Da
<Step 8 of 11: Database Content>
Standard Database Components: Nu
Enterprise Manager Repository : Da
Restul optiunilor : Nu
<Step 9 of 11: Initialization Parameters>
<Memory>
Typical : Da
Percentage : 60% (600-900 MB)
<Character Sets>
Default Language : ROMANIAN
Default Date Format : ROMANIA
<Sizing>
Block Size : 8
Processes : 150
<Connection Mode>
Dedicated Server Mode : Da
<Step 10 of 11: Initialization Parameters>
Optiunile default
<Step 11 of 11: Creation Options>
Create Database : Da
Generate Database Creation Scripts : Da
Destination Directory : D:\ROA_SCRIPTS
----------------------------------------------------------------
http://localhost:5500/em
http://localhost:5560/isqlplus
----------------------------------------------------------------
Instalare TABLESPACE ROA, USER CONTAFIN_ORACLE, USER FIRMA_NOUA
D:\kit\creare_server_scripturi
roa.bat
parola pentru SYSTEM: oracleromfast
SID-ul bazei de date: ROA
Directorul unde se va instala baza de date : D:\ROA_DB\ROA
Parola pentru contafin_oracle : romfastsoft
Numele pentru firma noua: DEMO
Parola pentru firma noua: 123
----------------------------------------------------------------
Actualizare CONTAFIN_ORACLE si FIRMA_NOUA
Trebuiesc aplicate scripturile generate dupa scriptul initial de creare a bazei de date.
----------------------------------------------------------------
User ROA: administrator
Parola: 333

View File

@@ -0,0 +1,52 @@
ORACLE 10gR2
Advanced Installation
Select Installation Type: Standard Edition, Product Languages + Romanian
Specify Home Details: Name: OraDb10g_home1; Path: c:\oracle\product\10.2.0\db_1
Select Configuration Option: Create a database
Select Database Configuration: Advanced
Database Configuration Assistant
Step1: Database Templates
Custom Database
Step2: Database Identification:
Global Database Name: ROA; SID: ROA
Step3: Management Options:
Configure the Database with Enterprise Manager;
Enable Daily Backup (OS Username: oracle, Password: <nume_client> ex: oracle/fruvimed)
* Trebuie creat un user administrator? cu drept de "log on as batch"
Step4: Database Credentials
Use the Same Password for All Accounts: oracleromfast
Step5: Storage Options
File System
Step6: Database File Locations:
Use Common Location for All Database Files
Database Files Location: D:\ROA_DB
Step7: Recovery Configuration:
Specify Flash Recovery Area: D:\ROA_FLASH
Flash Recovery Area Size: 10-20 GB
Enable Archiving
Step8: Database Content
Standard Database Components: debifeaza tot (Oracle JVM, Oracle XML DB, Oracle Intermedia)
Bifeaza doar Enterprise Manager Repository
Step9: Initialization Parameters
Memory: (65%-70% din 1GB)
Sizing > Processes: 150
Character Sets > Default Language: Romanian; > Default Date Format: Romania
Connection Mode: Dedicated Server Mode
Step10: Database Storage OK
Step11: Creation Options
Create Database
Generate Database Creation Scripts: D:\ROA_SCRIPTS

View File

@@ -0,0 +1,366 @@
REINSTALARE BAZA DE DATE DIN DUMP
1. ARCHIVELOG
--------------------
ORACLE ENABLE ARCHIVELOG
-------------------------
archive log list;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=200G SCOPE=BOTH;
show parameter recovery_file_dest;
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
alter system switch logfile;
1. Creare server scripturi
2. Recreare sys.vauth_serii
create or replace view sys.vauth_serii 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;
3. Instalare utlmail
You must both install UTL_MAIL and define the SMTP_OUT_SERVER.
To install UTL_MAIL:
sqlplus sys/<pwd>
@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlmail.sql
@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\prvtmail.plb
@D:\Oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlmail.sql
@D:\oracle_xe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\utlmail.sql
@D:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\utlmail.sql
@D:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\prvtmail.plb
4. Completare customer_id in sys.auth_detalii
5. Verificare contafin_oracle.server_info
Schimbare cai roaupdate, parole sys, contafin_oracle, updprereq = 0
6. syn_new_schema_job
7. Completare contafin_oracle.server_info
8. backup oracle
/* oracle 11 expire password */
select resource_name,limit from dba_profiles where profile='DEFAULT';
select username,expiry_date,account_status from dba_users;
alter profile DEFAULT limit password_life_time UNLIMITED;
9.
INSTALARE schema XDB - xml database necesara pentru functii din pack_utils_file
sqlplus sys/<pwd>
@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catqm.sql XDB SYSAUX TEMP
@C:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\catqm.sql XDB SYSAUX TEMP
@D:\Oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\catqm.sql XDB SYSAUX TEMP
You define the SMTP_OUT_SERVER parameter in the init.ora rdbms initialization file. However, if SMTP_OUT_SERVER is not defined, this invokes a default of DB_DOMAIN which is guaranteed to be defined to perform appropriately.
-----------------------------------
BEGIN
DBMS_NETWORK_ACL_ADMIN.DROP_ACL(acl => 'roaupdate.xml');
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'roaupdate.xml',
description => 'Permissions to send mail',
principal => 'CONTAFIN_ORACLE',
is_grant => true,
privilege => 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'roaupdate.xml',
principal => 'CONTAFIN_ORACLE',
is_grant => true,
privilege => 'resolve');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'roaupdate.xml',
host => '*');
END;
/
COMMIT;
GRANT EXECUTE ON UTL_INADDR TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_TCP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_SMTP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_HTTP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_MAIL TO CONTAFIN_ORACLE;
----------------------------------------------------------------------------------
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('ROMFASTROMFAST'))) AS VARCHAR2(200)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('ROMFASTSOFT'))) AS VARCHAR2(200)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('ORACLEROMFAST'))) AS VARCHAR2(200)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('ROMFASTFRUVIMED'))) AS VARCHAR2(200)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('ROMFASTCONSTRUCT'))) AS VARCHAR2(500)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('#romfastconpress2019#'))) AS VARCHAR2(500)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('R0mfasTAcn'))) AS VARCHAR2(500)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('RomfastAlex2020'))) AS VARCHAR2(500)) AS PAROLA from dual;
select CAST(pack_utils.encodebase64(pack_utils.zipblob(pack_utils.Clob2Blob('R0mfastRP2023'))) AS VARCHAR2(500)) AS PAROLA from dual;
PAROLA ROMFASTROMFAST: H4sIAAAAAAAACwvy93VzDA4JglAAeRxJLg4AAAA=
PAROLA ROMFASTSOFT: H4sIAAAAAAAACwvy93VzDA4J9ncLAQBe3GUpCwAAAA==
PAROLA romfastsoft: H4sIAAAAAAAACyvKz01LLC4pzk8rAQC2TmakCwAAAA==
PAROLA ORACLEROMFAST: H4sIAAAAAAAAC/MPcnT2cQ3y93VzDA4BAConyaYNAAAA
PAROLA ROMFASTFRUVIMED: H4sIAAAAAAAACwvy93VzDA5xCwoN8/R1dQEArroMew8AAAA=
PAROLA ROMFASTCONSTRUCT: H4sIAAAAAAAACwvy93VzDA5x9vcLDgkKdQ4BAErhQdQQAAAA
PAROLA #romfastconpress2019#: H4sIAAAAAAAAClMuys9NSywuSc7PKyhKLS42MjC0VAYA5NlLmhUAAAA=
PAROLA R0mfasTAcn: H4sIAAAAAAAACwsyyE1LLA5xTM4DAL1/5X8KAAAA
PAROLA R0mfastRP2023: H4sIAAAAAAAACgsyyE1LLC4JCjAyMDIGAPIsbhENAAAA
D:\oraclexe\app\oracle\product\11.2.0\server\bin\sqlplus.exe
CONPRESS
SYS/ROMFASTCONPRESS: H4sIAAAAAAAACwvy93VzDA5x9vcLCHINDgYACv/0xQ8AAAA=
AUTOMOTIVE
SYS/ROMFASTAUTOMOTIVE: H4sIAAAAAAAACwvy93VzDA5xDA3x9/UP8QxzBQAn8MMJEQAAAA==
ARGENTA
CONTAFIN_ORACLE/ARGENTA: H4sIAAAAAAAAC3MMcnf1C3EEAIVtR90HAAAA
SYS/ARGENTA: H4sIAAAAAAAAC3MMcnf1C3EEAIVtR90HAAAA
contafin_oracle:
update optiuni set varvalue = 'http://10.0.20.122:81/contafinupdate/default.aspx/updroa/download/|CUSTOMERID|/roa_app.xml' where upper(varname) = 'UPD_URL_APP';
update optiuni set varvalue = 'http://10.0.20.122:81/contafinupdate/default.aspx/updroa/download/|CUSTOMERID|/roa_database.xml' where upper(varname) = 'UPD_URL_DATABASE';
update optiuni set varvalue = 'http://83.103.197.79:3002/contafinupdate/default.aspx/updroa/download/|CUSTOMERID|/roa_app.xml' where upper(varname) = 'UPD_URL_APP';
update optiuni set varvalue = 'http://83.103.197.79:3002/contafinupdate/default.aspx/updroa/download/|CUSTOMERID|/roa_database.xml' where upper(varname) = 'UPD_URL_DATABASE';
begin
sys.dbms_scheduler.create_job(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
job_type => 'STORED_PROCEDURE',
job_action => 'PACK_UPDATE.UPDATEROA',
number_of_arguments => 6,
start_date => to_date('09-09-2014 04:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => false,
auto_drop => false,
comments => '');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 1,
argument_value => '1');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 2,
argument_value => '1');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 3,
argument_value => '1');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 4,
argument_value => '');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 5,
argument_value => '');
sys.dbms_scheduler.set_job_argument_value(job_name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC',
argument_position => 6,
argument_value => '-3');
sys.dbms_scheduler.enable(name => 'CONTAFIN_ORACLE.UPDATEROA_ZILNIC');
end;
/
begin
sys.dbms_scheduler.create_job(job_name => 'ACN.IMPORT_RORIS_ZILNIC',
job_type => 'STORED_PROCEDURE',
job_action => 'ACN.PACK_ACN.IMPORT_RORIS',
number_of_arguments => 1,
start_date => to_date('19-09-2019 07:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'freq=hourly; byhour=7,8,9,10,11,12,13,14,15,16; byminute=0; bysecond=0;',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => false,
auto_drop => false,
comments => '');
sys.dbms_scheduler.SET_JOB_ANYDATA_VALUE(job_name => 'ACN.IMPORT_RORIS_ZILNIC',
argument_position => 1,
argument_value => sys.anydata.convertDate(trunc(sysdate)-30));
sys.dbms_scheduler.enable(name => 'ACN.IMPORT_RORIS_ZILNIC');
end;
/
MD C:\ROAUPDATE\_ARHIVE\COMUNROA
MD C:\ROAUPDATE\_ARHIVE\USERREPORTS
MD C:\ROAUPDATE\_ARHIVE\ROAAPROV
MD C:\ROAUPDATE\_ARHIVE\ROAAUTO
MD C:\ROAUPDATE\_ARHIVE\ROABAVERT
MD C:\ROAUPDATE\_ARHIVE\ROACASA
MD C:\ROAUPDATE\_ARHIVE\ROACOMENZI
MD C:\ROAUPDATE\_ARHIVE\ROACONIMPORT
MD C:\ROAUPDATE\_ARHIVE\ROACONSTRUCTII
MD C:\ROAUPDATE\_ARHIVE\ROACONT
MD C:\ROAUPDATE\_ARHIVE\ROACONTRACTE
MD C:\ROAUPDATE\_ARHIVE\ROADECL
MD C:\ROAUPDATE\_ARHIVE\ROADEF
MD C:\ROAUPDATE\_ARHIVE\ROADEFSALARII
MD C:\ROAUPDATE\_ARHIVE\ROADEPOZIT
MD C:\ROAUPDATE\_ARHIVE\ROADEVIZE
MD C:\ROAUPDATE\_ARHIVE\ROAFACTURARE
MD C:\ROAUPDATE\_ARHIVE\ROAFURNIZORI
MD C:\ROAUPDATE\_ARHIVE\ROAGEN
MD C:\ROAUPDATE\_ARHIVE\ROAGEST
MD C:\ROAUPDATE\_ARHIVE\ROAGRESTAURANT
MD C:\ROAUPDATE\_ARHIVE\ROAHOTEL
MD C:\ROAUPDATE\_ARHIVE\ROAHOTELCONFIG
MD C:\ROAUPDATE\_ARHIVE\ROAIMOB
MD C:\ROAUPDATE\_ARHIVE\ROAINCHIDSAL
MD C:\ROAUPDATE\_ARHIVE\ROALUCRARI
MD C:\ROAUPDATE\_ARHIVE\ROAMANAGER
MD C:\ROAUPDATE\_ARHIVE\ROAMASINI
MD C:\ROAUPDATE\_ARHIVE\ROANOR
MD C:\ROAUPDATE\_ARHIVE\ROANORFRUVIMED
MD C:\ROAUPDATE\_ARHIVE\ROANORRENAV
MD C:\ROAUPDATE\_ARHIVE\ROANORUTMIDIA
MD C:\ROAUPDATE\_ARHIVE\ROAOBINV
MD C:\ROAUPDATE\_ARHIVE\ROAOFERTARE
MD C:\ROAUPDATE\_ARHIVE\ROAPRETURI
MD C:\ROAUPDATE\_ARHIVE\ROAPRINT
MD C:\ROAUPDATE\_ARHIVE\ROAPRINT_INITIALIZARI
MD C:\ROAUPDATE\_ARHIVE\ROAPRODAGR
MD C:\ROAUPDATE\_ARHIVE\ROAPRODUCTIE
MD C:\ROAUPDATE\_ARHIVE\ROAREGISTRATURA
MD C:\ROAUPDATE\_ARHIVE\ROAREPARTIZSAL
MD C:\ROAUPDATE\_ARHIVE\ROARES
MD C:\ROAUPDATE\_ARHIVE\ROARESTAURANT
MD C:\ROAUPDATE\_ARHIVE\ROARETAIL
MD C:\ROAUPDATE\_ARHIVE\ROARETAILMON
MD C:\ROAUPDATE\_ARHIVE\ROASAL
MD C:\ROAUPDATE\_ARHIVE\ROASALSPEC
MD C:\ROAUPDATE\_ARHIVE\ROASITFIN
MD C:\ROAUPDATE\_ARHIVE\ROASITOP
MD C:\ROAUPDATE\_ARHIVE\ROASTART
MD C:\ROAUPDATE\_ARHIVE\ROASUPORT
MD C:\ROAUPDATE\_ARHIVE\ROATELCOMM
MD C:\ROAUPDATE\_ARHIVE\ROATELMON
MD C:\ROAUPDATE\_ARHIVE\ROAVIN
create or replace directory UPD_USERREPORTS as 'D:\ROAUPDATE\_ARHIVE\USERREPORTS';
create or replace directory UPD_COMUNROA as 'D:\ROAUPDATE\_ARHIVE\COMUNROA';
create or replace directory UPD_ROAVIN as 'D:\ROAUPDATE\_ARHIVE\ROAVIN';
create or replace directory UPD_ROATELMON as 'D:\ROAUPDATE\_ARHIVE\ROATELMON';
create or replace directory UPD_ROATELCOMM as 'D:\ROAUPDATE\_ARHIVE\ROATELCOMM';
create or replace directory UPD_ROASUPORT as 'D:\ROAUPDATE\_ARHIVE\ROASUPORT';
create or replace directory UPD_ROASTART as 'D:\ROAUPDATE\_ARHIVE\ROASTART';
create or replace directory UPD_ROASITOP as 'D:\ROAUPDATE\_ARHIVE\ROASITOP';
create or replace directory UPD_ROASITFIN as 'D:\ROAUPDATE\_ARHIVE\ROASITFIN';
create or replace directory UPD_ROASALSPEC as 'D:\ROAUPDATE\_ARHIVE\ROASALSPEC';
create or replace directory UPD_ROASAL as 'D:\ROAUPDATE\_ARHIVE\ROASAL';
create or replace directory UPD_ROARETAILMON as 'D:\ROAUPDATE\_ARHIVE\ROARETAILMON';
create or replace directory UPD_ROARETAIL as 'D:\ROAUPDATE\_ARHIVE\ROARETAIL';
create or replace directory UPD_ROARESTAURANT as 'D:\ROAUPDATE\_ARHIVE\ROARESTAURANT';
create or replace directory UPD_ROARES as 'D:\ROAUPDATE\_ARHIVE\ROARES';
create or replace directory UPD_ROAREPARTIZSAL as 'D:\ROAUPDATE\_ARHIVE\ROAREPARTIZSAL';
create or replace directory UPD_ROAREGISTRATURA as 'D:\ROAUPDATE\_ARHIVE\ROAREGISTRATURA';
create or replace directory UPD_ROAPRODUCTIE as 'D:\ROAUPDATE\_ARHIVE\ROAPRODUCTIE';
create or replace directory UPD_ROAPRODAGR as 'D:\ROAUPDATE\_ARHIVE\ROAPRODAGR';
create or replace directory UPD_ROAPRINT_INITIALIZARI as 'D:\ROAUPDATE\_ARHIVE\ROAPRINT_INITIALIZARI';
create or replace directory UPD_ROAPRINT as 'D:\ROAUPDATE\_ARHIVE\ROAPRINT';
create or replace directory UPD_ROAPRETURI as 'D:\ROAUPDATE\_ARHIVE\ROAPRETURI';
create or replace directory UPD_ROAOFERTARE as 'D:\ROAUPDATE\_ARHIVE\ROAOFERTARE';
create or replace directory UPD_ROAOBINV as 'D:\ROAUPDATE\_ARHIVE\ROAOBINV';
create or replace directory UPD_ROANORUTMIDIA as 'D:\ROAUPDATE\_ARHIVE\ROANORUTMIDIA';
create or replace directory UPD_ROANORRENAV as 'D:\ROAUPDATE\_ARHIVE\ROANORRENAV';
create or replace directory UPD_ROANORFRUVIMED as 'D:\ROAUPDATE\_ARHIVE\ROANORFRUVIMED';
create or replace directory UPD_ROANOR as 'D:\ROAUPDATE\_ARHIVE\ROANOR';
create or replace directory UPD_ROAMASINI as 'D:\ROAUPDATE\_ARHIVE\ROAMASINI';
create or replace directory UPD_ROAMANAGER as 'D:\ROAUPDATE\_ARHIVE\ROAMANAGER';
create or replace directory UPD_ROALUCRARI as 'D:\ROAUPDATE\_ARHIVE\ROALUCRARI';
create or replace directory UPD_ROAINCHIDSAL as 'D:\ROAUPDATE\_ARHIVE\ROAINCHIDSAL';
create or replace directory UPD_ROAIMOB as 'D:\ROAUPDATE\_ARHIVE\ROAIMOB';
create or replace directory UPD_ROAHOTELCONFIG as 'D:\ROAUPDATE\_ARHIVE\ROAHOTELCONFIG';
create or replace directory UPD_ROAHOTEL as 'D:\ROAUPDATE\_ARHIVE\ROAHOTEL';
create or replace directory UPD_ROAGRESTAURANT as 'D:\ROAUPDATE\_ARHIVE\ROAGRESTAURANT';
create or replace directory UPD_ROAGEST as 'D:\ROAUPDATE\_ARHIVE\ROAGEST';
create or replace directory UPD_ROAGEN as 'D:\ROAUPDATE\_ARHIVE\ROAGEN';
create or replace directory UPD_ROAFURNIZORI as 'D:\ROAUPDATE\_ARHIVE\ROAFURNIZORI';
create or replace directory UPD_ROAFACTURARE as 'D:\ROAUPDATE\_ARHIVE\ROAFACTURARE';
create or replace directory UPD_ROADEVIZE as 'D:\ROAUPDATE\_ARHIVE\ROADEVIZE';
create or replace directory UPD_ROADEPOZIT as 'D:\ROAUPDATE\_ARHIVE\ROADEPOZIT';
create or replace directory UPD_ROADEFSALARII as 'D:\ROAUPDATE\_ARHIVE\ROADEFSALARII';
create or replace directory UPD_ROADEF as 'D:\ROAUPDATE\_ARHIVE\ROADEF';
create or replace directory UPD_ROADECL as 'D:\ROAUPDATE\_ARHIVE\ROADECL';
create or replace directory UPD_ROACONTRACTE as 'D:\ROAUPDATE\_ARHIVE\ROACONTRACTE';
create or replace directory UPD_ROACONT as 'D:\ROAUPDATE\_ARHIVE\ROACONT';
create or replace directory UPD_ROACONSTRUCTII as 'D:\ROAUPDATE\_ARHIVE\ROACONSTRUCTII';
create or replace directory UPD_ROACONIMPORT as 'D:\ROAUPDATE\_ARHIVE\ROACONIMPORT';
create or replace directory UPD_ROACOMENZI as 'D:\ROAUPDATE\_ARHIVE\ROACOMENZI';
create or replace directory UPD_ROACASA as 'D:\ROAUPDATE\_ARHIVE\ROACASA';
create or replace directory UPD_ROABAVERT as 'D:\ROAUPDATE\_ARHIVE\ROABAVERT';
create or replace directory UPD_ROAAUTO as 'D:\ROAUPDATE\_ARHIVE\ROAAUTO';
create or replace directory UPD_ROAAPROV as 'D:\ROAUPDATE\_ARHIVE\ROAAPROV';
create or replace directory UPD_ROAUPDATE as 'D:\ROAUPDATE';
GRANT READ, WRITE ON DIRECTORY UPD_USERREPORTS TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_COMUNROA TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAVIN TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROATELMON TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROATELCOMM TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASUPORT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASTART TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASITOP TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASITFIN TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASALSPEC TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROASAL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROARETAILMON TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROARETAIL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROARESTAURANT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROARES TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAREPARTIZSAL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAREGISTRATURA TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRODUCTIE TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRODAGR TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRINT_INITIALIZARI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRINT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAPRETURI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAOFERTARE TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAOBINV TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROANORUTMIDIA TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROANORRENAV TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROANORFRUVIMED TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROANOR TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAMASINI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAMANAGER TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROALUCRARI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAINCHIDSAL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAIMOB TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAHOTELCONFIG TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAHOTEL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAGRESTAURANT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAGEST TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAGEN TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAFURNIZORI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAFACTURARE TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROADEVIZE TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROADEPOZIT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROADEFSALARII TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROADEF TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROADECL TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACONTRACTE TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACONT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACONSTRUCTII TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACONIMPORT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACOMENZI TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROACASA TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROABAVERT TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAAUTO TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAAPROV TO CONTAFIN_ORACLE;
GRANT READ, WRITE ON DIRECTORY UPD_ROAUPDATE TO CONTAFIN_ORACLE;

View File

@@ -0,0 +1,405 @@
import_dmp
- creeaza tablespace roa 1gb
- creeaza useri contafin_oracle, firma
- importa contafin_oracle.dmp
- aplica postdbcreation.sql pe contafin_oracle (synonyme)
- importa firmanoua.dmp
utilizare:
- se copiaza fisierele din import_dmp si se suprascriu peste cele din creare_server_scripturi
- se copiaza in directorul creare_server_scripturi contafin_oracle.dmp si firmanoua.dmp
- se lanseaza roa.bat
contafin_oracle.dmp > 24.07.2014
firmanoua.dmp > 24.07.2014
Oracle XE 21c
1. Adauga baza de date XEPDB1 SI ROA in D:\app\roa\product\21c\homes\OraDB21Home1\network\admin\TNSNAMES.ORA
XEPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = AppSrv.set.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XEPDB1)
)
)
ROA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = AppSrv.set.local)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XEPDB1)
)
)
2. sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 11
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 11
3.
sqlplus sys/romfastsoft@XEPDB1 as sysdba
alter profile DEFAULT limit password_life_time UNLIMITED;
@D:\app\roa\product\21c\dbhomeXE\rdbms\admin\utlmail.sql
@D:\app\roa\product\21c\dbhomeXE\rdbms\admin\prvtmail.plb
4.
LOG ON AS SYS@XEPDB1
CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
GRANT ALL ON DIRECTORY DMPDIR TO PUBLIC;
5.
ALTER USER SYS IDENTIFIED BY SR0mfasT2024;
6.
select 'INSERT INTO AUTH_SERII (ID_SERIE, ID_PROGRAM, SERIE, ID_UTIL) VALUES (SEQ_AUTH_SERII.NEXTVAL, ' || ID_PROGRAM || ', ''' || SERIE || ''', -3);' as cmd from (
select SP.serie, SP.id_program, SP.ID_CLIENT, SP.Nr_Util, SP.Data_val
from vgen_seriiprog SP
JOIN (SELECT ID_PROGRAM, MAX(DATAORA) AS DATAORA
FROM vgen_seriiclienti t
WHERE ID_CLIENT = 138
GROUP BY ID_PROGRAM) MP
ON SP.ID_PROGRAM = MP.ID_PROGRAM
AND SP.DATAORA = MP.DATAORA
where SP.ID_CLIENT = 138
AND SP.id_program in (49, 8, 2, 21, 1, 29, 5, 6, 7, 55, 159, 11, 0, 66));
7.
begin
sys.dbms_scheduler.create_job(job_name => 'CONTAFIN_ORACLE.UPDATERTVAI_ZILNIC',
job_type => 'STORED_PROCEDURE',
job_action => 'PACK_ROARTVAI.UPDATERTVAI',
start_date => to_date('14-04-2015 04:30:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '');
end;
/
8.
-- logon as sys@roa
create or replace procedure 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;
create or replace procedure 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;
/
GRANT EXECUTE ON UpdateSQLPLUS TO CONTAFIN_ORACLE;
create or replace procedure ExecuteScriptOS(tcPowerShellPath in varchar2,
tcScriptPath in varchar2) as
lcJobName varchar2(500);
begin
lcJobName := 'exec_ps_' || to_char(sysdate, 'YYYYMMDDHH24MISS');
dbms_scheduler.create_job(lcJobName,
job_action => tcPowerShellPath,
number_of_arguments => 1,
job_type => 'executable',
enabled => false);
dbms_scheduler.set_job_argument_value(lcJobName, 1, tcScriptPath);
dbms_scheduler.enable(lcJobName);
end ExecuteScriptOS;
/
GRANT EXECUTE ON ExecuteScriptOS TO CONTAFIN_ORACLE;
10.
https://dbalifeeasy.com/tag/alter-system-set-log_archive_dest_1locationuse_db_recovery_file_dest/
show parameter db_recovery_file
select * from V$RECOVERY_FILE_DEST;
alter system set db_recovery_file_dest_size=30g scope=both;
alter system set db_recovery_file_dest='D:\app\roa\product\21c\fast_recovery_area' scope=both;
show parameter db_recovery_file
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' scope=both;
archive log list;
select * from v$flash_recovery_area_usage;

View File

@@ -0,0 +1,41 @@
-- SE EXECUTA LOGAT CU USERUL SYSTEM
set echo oFF
spool CreateCO.log
prompt
prompt Stergere user CONTAFIN_ORACLE
prompt =============================
prompt
drop user contafin_oracle cascade;
prompt
prompt Creare user CONTAFIN_ORACLE
prompt ===========================
prompt
-- Create the user
create user CONTAFIN_ORACLE
identified by "&&coPassword"
default tablespace ROA
temporary tablespace TEMP
profile DEFAULT;
-- Grant/Revoke role privileges
grant connect to CONTAFIN_ORACLE;
grant resource to CONTAFIN_ORACLE;
-- Grant/Revoke system privileges
grant create any context to CONTAFIN_ORACLE;
grant create session to CONTAFIN_ORACLE;
grant create view to CONTAFIN_ORACLE;
grant delete any table to CONTAFIN_ORACLE;
grant drop any context 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;
grant create public synonym to CONTAFIN_ORACLE;
grant drop public synonym to CONTAFIN_ORACLE;
spool off

View File

@@ -0,0 +1,13 @@
-- SE EXECUTA LOGAT CU USERUL SYSTEM
set echo oFF
spool CreateDb.log
prompt
prompt Creare tablespace ROA
prompt =====================
prompt
CREATE SMALLFILE TABLESPACE "ROA" DATAFILE '&&dataDirectory\TS_ROA.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
spool off

View File

@@ -0,0 +1,33 @@
spool create&&fnName..log
prompt
prompt Stergere user &&fnName
prompt ===========================
prompt
drop user &&fnName cascade;
prompt
prompt Creare user &&fnName
prompt ===========================
prompt
create user &&fnName
identified by "&&fnPassword"
default tablespace ROA
temporary tablespace TEMP
profile DEFAULT;
-- Grant/Revoke role privileges
grant connect to &&fnName;
grant resource to &&fnName;
-- Grant/Revoke system privileges
grant create materialized view to &&fnName;
grant create procedure to &&fnName;
grant create sequence to &&fnName;
grant create table to &&fnName;
grant create trigger to &&fnName;
grant create view to &&fnName;
grant debug connect session to &&fnName;
grant select any table to &&fnName;
grant create type to &&fnName;
grant unlimited tablespace to &&fnName;
spool off

View File

@@ -0,0 +1,55 @@
MD D:\ROAUPDATE\_ARHIVE\COMUNROA
MD D:\ROAUPDATE\_ARHIVE\USERREPORTS
MD D:\ROAUPDATE\_ARHIVE\ROAPRINT
MD D:\ROAUPDATE\_ARHIVE\ROAAPROV
MD D:\ROAUPDATE\_ARHIVE\ROAAUTO
MD D:\ROAUPDATE\_ARHIVE\ROABAVERT
MD D:\ROAUPDATE\_ARHIVE\ROACASA
MD D:\ROAUPDATE\_ARHIVE\ROACOMENZI
MD D:\ROAUPDATE\_ARHIVE\ROACONIMPORT
MD D:\ROAUPDATE\_ARHIVE\ROACONSTRUCTII
MD D:\ROAUPDATE\_ARHIVE\ROACONT
MD D:\ROAUPDATE\_ARHIVE\ROACONTRACTE
MD D:\ROAUPDATE\_ARHIVE\ROADECL
MD D:\ROAUPDATE\_ARHIVE\ROADEF
MD D:\ROAUPDATE\_ARHIVE\ROADEFSALARII
MD D:\ROAUPDATE\_ARHIVE\ROADEPOZIT
MD D:\ROAUPDATE\_ARHIVE\ROADEVIZE
MD D:\ROAUPDATE\_ARHIVE\ROAFACTURARE
MD D:\ROAUPDATE\_ARHIVE\ROAFURNIZORI
MD D:\ROAUPDATE\_ARHIVE\ROAGEN
MD D:\ROAUPDATE\_ARHIVE\ROAGEST
MD D:\ROAUPDATE\_ARHIVE\ROAGRESTAURANT
MD D:\ROAUPDATE\_ARHIVE\ROAHOTEL
MD D:\ROAUPDATE\_ARHIVE\ROAHOTELCONFIG
MD D:\ROAUPDATE\_ARHIVE\ROAIMOB
MD D:\ROAUPDATE\_ARHIVE\ROAINCHIDSAL
MD D:\ROAUPDATE\_ARHIVE\ROALUCRARI
MD D:\ROAUPDATE\_ARHIVE\ROAMANAGER
MD D:\ROAUPDATE\_ARHIVE\ROAMASINI
MD D:\ROAUPDATE\_ARHIVE\ROANOR
MD D:\ROAUPDATE\_ARHIVE\ROANORFRUVIMED
MD D:\ROAUPDATE\_ARHIVE\ROANORRENAV
MD D:\ROAUPDATE\_ARHIVE\ROANORUTMIDIA
MD D:\ROAUPDATE\_ARHIVE\ROAOBINV
MD D:\ROAUPDATE\_ARHIVE\ROAOFERTARE
MD D:\ROAUPDATE\_ARHIVE\ROAPRETURI
MD D:\ROAUPDATE\_ARHIVE\ROAPRINT
MD D:\ROAUPDATE\_ARHIVE\ROAPRINT_INITIALIZARI
MD D:\ROAUPDATE\_ARHIVE\ROAPRODAGR
MD D:\ROAUPDATE\_ARHIVE\ROAPRODUCTIE
MD D:\ROAUPDATE\_ARHIVE\ROAREGISTRATURA
MD D:\ROAUPDATE\_ARHIVE\ROAREPARTIZSAL
MD D:\ROAUPDATE\_ARHIVE\ROARES
MD D:\ROAUPDATE\_ARHIVE\ROARESTAURANT
MD D:\ROAUPDATE\_ARHIVE\ROARETAIL
MD D:\ROAUPDATE\_ARHIVE\ROARETAILMON
MD D:\ROAUPDATE\_ARHIVE\ROASAL
MD D:\ROAUPDATE\_ARHIVE\ROASALSPEC
MD D:\ROAUPDATE\_ARHIVE\ROASITFIN
MD D:\ROAUPDATE\_ARHIVE\ROASITOP
MD D:\ROAUPDATE\_ARHIVE\ROASTART
MD D:\ROAUPDATE\_ARHIVE\ROASUPORT
MD D:\ROAUPDATE\_ARHIVE\ROATELCOMM
MD D:\ROAUPDATE\_ARHIVE\ROATELMON
MD D:\ROAUPDATE\_ARHIVE\ROAVIN

View File

@@ -0,0 +1,427 @@
SPOOL postDbCreation.log
-- SE EXECUTA LOGAT CU USERUL SYSTEM
PROMPT
PROMPT CREATING PUBLIC SYNONYMS
PROMPT ========================
PROMPT
drop public synonym SYN_LUNILEAN;
drop public synonym SYN_PACK_DREPTURI;
drop public synonym syn_vdef_util_grup;
drop public synonym syn_def_grup_drept;
drop public synonym syn_utilizatori;
drop public synonym syn_vdef_util_programe;
drop public synonym SYN_VDEF_UTIL_OBIECTE;
drop public synonym syn_vutilizatori;
drop public synonym syn_nom_programe;
drop public synonym syn_def_programe;
drop public synonym SYN_NOM_FIRME;
drop public synonym syn_vdef_util_programe;
drop public synonym syn_helpcont;
drop public synonym stringAgg;
drop public synonym char_row;
drop public synonym char_tab;
drop public synonym num_row;
drop public synonym num_tab;
drop public synonym uw_sel_row;
drop public synonym uw_sel_tab;
drop public synonym getwordcount;
drop public synonym getwordnum;
drop public synonym charc2collection;
drop public synonym charn2collection;
drop public synonym SYN_V_NOM_FIRME;
drop public synonym syn_nom_forme_juridice;
drop public synonym syn_nom_forme_organizare;
drop public synonym syn_nom_tip_societate;
drop public synonym syn_nom_forme_proprietate;
drop synonym contafin_oracle.vdef_programe_serii;
create context sesiune using contafin_oracle.set_variabile;
CREATE PUBLIC SYNONYM SYN_DEF_GRUP FOR CONTAFIN_ORACLE.DEF_GRUP;
GRANT SELECT ON SYN_DEF_GRUP TO PUBLIC;
GRANT REFERENCES ON SYN_DEF_GRUP TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_DEF_PROGRAME FOR CONTAFIN_ORACLE.DEF_PROGRAME;
GRANT SELECT ON SYN_DEF_PROGRAME TO PUBLIC;
GRANT REFERENCES ON SYN_DEF_PROGRAME TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_VDEF_PROGRAME FOR CONTAFIN_ORACLE.VDEF_PROGRAME;
GRANT SELECT ON SYN_VDEF_PROGRAME TO PUBLIC;
GRANT REFERENCES ON SYN_VDEF_PROGRAME TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_LUNILEAN FOR CONTAFIN_ORACLE.LUNILEAN;
GRANT SELECT ON SYN_LUNILEAN TO PUBLIC;
GRANT REFERENCES ON SYN_LUNILEAN TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_NOM_FIRME FOR CONTAFIN_ORACLE.NOM_FIRME;
GRANT SELECT ON SYN_NOM_FIRME TO PUBLIC;
GRANT REFERENCES ON SYN_NOM_FIRME TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_NOM_PROGRAME FOR CONTAFIN_ORACLE.NOM_PROGRAME;
GRANT SELECT ON SYN_NOM_PROGRAME TO PUBLIC;
GRANT REFERENCES ON SYN_NOM_PROGRAME TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_PACK_DREPTURI FOR CONTAFIN_ORACLE.PACK_DREPTURI;
GRANT EXECUTE ON SYN_PACK_DREPTURI TO PUBLIC;
--GRANT REFERENCES ON SYN_PACK_DREPTURI TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_UTILIZATORI FOR CONTAFIN_ORACLE.UTILIZATORI;
GRANT SELECT ON SYN_UTILIZATORI TO PUBLIC;
GRANT REFERENCES ON SYN_UTILIZATORI TO PUBLIC;
create public synonym syn_vdef_util_programe for CONTAFIN_ORACLE.VDEF_UTIL_PROGRAME;
grant select on syn_vdef_util_programe to public;
create public synonym syn_vdef_util_firme for CONTAFIN_ORACLE.VDEF_UTIL_firme;
grant select on syn_vdef_util_firme TO PUBLIC;
grant references on syn_vdef_util_firme to public;
CREATE PUBLIC SYNONYM SYN_VDEF_UTIL_OBIECTE FOR CONTAFIN_ORACLE.VDEF_UTIL_OBIECTE;
GRANT SELECT ON SYN_VDEF_UTIL_OBIECTE TO PUBLIC;
GRANT REFERENCES ON SYN_VDEF_UTIL_OBIECTE TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_VUTILIZATORI FOR CONTAFIN_ORACLE.VUTILIZATORI;
GRANT SELECT ON SYN_VUTILIZATORI TO PUBLIC;
GRANT REFERENCES ON SYN_VUTILIZATORI TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_vdef_util_grup FOR CONTAFIN_ORACLE.vdef_util_grup;
GRANT SELECT ON SYN_vdef_util_grup TO PUBLIC;
GRANT REFERENCES ON SYN_vdef_util_grup TO PUBLIC;
CREATE PUBLIC SYNONYM syn_def_grup_drept FOR CONTAFIN_ORACLE.def_grup_drept;
GRANT SELECT ON syn_def_grup_drept TO PUBLIC;
GRANT REFERENCES ON syn_def_grup_drept TO PUBLIC;
create public synonym SYN_OPTIUNI_PROGRAME for CONTAFIN_ORACLE.OPTIUNI_PROGRAME;
grant select on SYN_OPTIUNI_PROGRAME to public;
create public synonym syn_helpcont for CONTAFIN_ORACLE.helpcont;
grant select on syn_helpcont to public;
CREATE PUBLIC SYNONYM syn_v_nom_firme FOR CONTAFIN_ORACLE.V_NOM_FIRME;
GRANT SELECT ON SYN_V_NOM_FIRME TO PUBLIC;
create public synonym syn_nom_forme_juridice for CONTAFIN_ORACLE.nom_forme_juridice;
grant select on syn_nom_forme_juridice to public;
create public synonym syn_nom_forme_organizare for CONTAFIN_ORACLE.nom_forme_organizare;
grant select on syn_nom_forme_organizare to public;
create public synonym syn_nom_tip_societate for CONTAFIN_ORACLE.nom_tip_societate;
grant select on syn_nom_tip_societate to public;
create public synonym syn_nom_forme_proprietate for CONTAFIN_ORACLE.nom_forme_proprietate;
grant select on syn_nom_forme_proprietate to public;
create public synonym stringAgg for CONTAFIN_ORACLE.stringAgg;
grant execute on stringAgg to public;
grant execute on StringAggType to public;
create public synonym char_row for CONTAFIN_ORACLE.char_row;
create public synonym char_tab for CONTAFIN_ORACLE.char_tab;
create public synonym num_row for CONTAFIN_ORACLE.num_row;
create public synonym num_tab for CONTAFIN_ORACLE.num_tab;
grant execute on num_row to public;
grant execute on num_tab to public;
grant execute on char_row to public;
grant execute on char_tab to public;
create public synonym uw_sel_row for CONTAFIN_ORACLE.uw_sel_row;
create public synonym uw_sel_tab for CONTAFIN_ORACLE.uw_sel_tab;
grant execute on uw_sel_row to public;
grant execute on uw_sel_tab to public;
create public synonym valoaretag for CONTAFIN_ORACLE.valoaretag;
grant execute on valoaretag to public;
create public synonym getwordcount for contafin_oracle.getwordcount;
create public synonym getwordnum for contafin_oracle.getwordnum;
create public synonym charc2collection for contafin_oracle.charc2collection;
create public synonym charn2collection for contafin_oracle.charn2collection;
grant execute on getwordcount to public;
grant execute on getwordnum to public;
grant execute on charc2collection to public;
grant execute on charn2collection to public;
CREATE SYNONYM CONTAFIN_ORACLE.VDEF_PROGRAME_SERII FOR SYS.VAUTH_SERII;
GRANT SELECT ON CONTAFIN_ORACLE.VDEF_PROGRAME_sERII TO CONTAFIN_ORACLE;
create public synonym syn_vnom_valute_iso for CONTAFIN_ORACLE.VNOM_VALUTE_ISO;
grant select on syn_vnom_valute_iso to public;
CREATE PUBLIC SYNONYM SYN_CURS_ACTUALIZARI FOR CONTAFIN_ORACLE.CURS_ACTUALIZARI;
GRANT SELECT ON SYN_CURS_ACTUALIZARI TO PUBLIC;
GRANT REFERENCES ON SYN_CURS_ACTUALIZARI TO PUBLIC;
CREATE PUBLIC SYNONYM syn_nom_valute_iso FOR CONTAFIN_ORACLE.NOM_VALUTE_ISO;
GRANT SELECT ON syn_nom_valute_iso TO PUBLIC;
GRANT REFERENCES ON syn_nom_valute_iso TO PUBLIC;
CREATE PUBLIC SYNONYM syn_curs_cotatii FOR CONTAFIN_ORACLE.CURS_COTATII;
GRANT SELECT ON syn_curs_cotatii TO PUBLIC;
GRANT REFERENCES ON syn_curs_cotatii TO PUBLIC;
grant references on syn_nom_forme_juridice to public;
grant references on syn_nom_forme_organizare to public;
grant references on syn_nom_tip_societate to public;
grant references on syn_nom_forme_proprietate to public;
create public synonym syn_nom_cetatenii for contafin_oracle.nom_cetatenii;
grant select on syn_nom_cetatenii to public;
grant references on syn_nom_cetatenii to public;
create public synonym syn_nom_tari for contafin_oracle.nom_tari;
grant select on syn_nom_tari to public;
grant references on syn_nom_tari to public;
create public synonym syn_sal_nom_temei for contafin_oracle.sal_nom_temei;
grant select on syn_sal_nom_temei to public;
grant references on syn_sal_nom_temei to public;
create public synonym syn_sal_nom_tipautorizatie for contafin_oracle.sal_nom_tipautorizatie;
grant select on syn_sal_nom_tipautorizatie to public;
grant references on syn_sal_nom_tipautorizatie to public;
create public synonym syn_sal_nom_tip_spor for contafin_oracle.sal_nom_tip_spor;
grant select on syn_sal_nom_tip_spor to public;
grant references on syn_sal_nom_tip_spor to public;
create public synonym syn_sal_nom_tip_norme for contafin_oracle.sal_nom_tip_norme;
grant select on syn_sal_nom_tip_norme to public;
grant references on syn_sal_nom_tip_norme to public;
create public synonym syn_sal_nom_stari_ctr for contafin_oracle.sal_nom_stari_ctr;
grant select on syn_sal_nom_stari_ctr to public;
grant references on syn_sal_nom_stari_ctr to public;
create public synonym syn_sal_nom_durata_munca for contafin_oracle.sal_nom_durata_munca;
grant select on syn_sal_nom_durata_munca to public;
grant references on syn_sal_nom_durata_munca to public;
create public synonym syn_sal_nom_repartizare_munca for contafin_oracle.sal_nom_repartizare_munca;
grant select on syn_sal_nom_repartizare_munca to public;
grant references on syn_sal_nom_repartizare_munca to public;
create public synonym syn_sal_nom_intervale_munca for contafin_oracle.sal_nom_intervale_munca;
grant select on syn_sal_nom_intervale_munca to public;
grant references on syn_sal_nom_intervale_munca to public;
create public synonym syn_sal_cor for contafin_oracle.sal_cor;
grant select on syn_sal_cor to public;
grant references on syn_sal_cor to public;
create public synonym syn_sal_actualizare_cor for contafin_oracle.sal_actualizare_cor;
grant select on syn_sal_actualizare_cor to public;
grant references on syn_sal_actualizare_cor to public;
create public synonym syn_sal_nom_intervale_munca for contafin_oracle.sal_nom_intervale_munca;
grant select on syn_sal_nom_intervale_munca to public;
grant references on syn_sal_nom_intervale_munca to public;
CREATE PUBLIC SYNONYM SYN_ATAS_ATASAMENTE FOR CONTAFIN_ORACLE.ATAS_ATASAMENTE;
GRANT SELECT ON SYN_ATAS_ATASAMENTE TO PUBLIC;
GRANT REFERENCES ON SYN_ATAS_ATASAMENTE TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_ATAS_REFERINTE FOR CONTAFIN_ORACLE.ATAS_REFERINTE;
GRANT SELECT ON SYN_ATAS_REFERINTE TO PUBLIC;
GRANT REFERENCES ON SYN_ATAS_REFERINTE TO PUBLIC;
create public synonym pack_update for pack_update;
grant execute on pack_update to public;
CREATE PUBLIC SYNONYM PACK_UTILS FOR PACK_UTILS;
GRANT EXECUTE ON PACK_UTILS TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_NOM_CODURI_CAEN FOR CONTAFIN_ORACLE.NOM_CODURI_CAEN;
GRANT SELECT ON SYN_NOM_CODURI_CAEN TO PUBLIC;
GRANT REFERENCES ON SYN_NOM_CODURI_CAEN TO PUBLIC;
--------------------------------------------------
DROP PUBLIC SYNONYM SYN_NOM_JUDETE;
CREATE PUBLIC SYNONYM SYN_NOM_JUDETE FOR CONTAFIN_ORACLE.NOM_JUDETE;
GRANT SELECT ON SYN_NOM_JUDETE TO PUBLIC;
GRANT REFERENCES ON SYN_NOM_JUDETE TO PUBLIC;
DROP PUBLIC SYNONYM SYN_NOM_LOCALITATI;
CREATE PUBLIC SYNONYM SYN_NOM_LOCALITATI FOR CONTAFIN_ORACLE.NOM_LOCALITATI;
GRANT SELECT ON SYN_NOM_LOCALITATI TO PUBLIC;
GRANT REFERENCES ON SYN_NOM_LOCALITATI TO PUBLIC;
DROP PUBLIC SYNONYM SYN_VNOM_JUDETE;
CREATE PUBLIC SYNONYM SYN_VNOM_JUDETE FOR CONTAFIN_ORACLE.VNOM_JUDETE;
GRANT SELECT ON SYN_VNOM_JUDETE TO PUBLIC;
DROP PUBLIC SYNONYM SYN_VNOM_LOCALITATI;
CREATE PUBLIC SYNONYM SYN_VNOM_LOCALITATI FOR CONTAFIN_ORACLE.VNOM_LOCALITATI;
GRANT SELECT ON SYN_VNOM_LOCALITATI TO PUBLIC;
DROP PUBLIC SYNONYM SYN_VNOM_TARI;
CREATE PUBLIC SYNONYM SYN_VNOM_TARI FOR CONTAFIN_ORACLE.VNOM_TARI;
GRANT SELECT ON SYN_VNOM_TARI TO PUBLIC;
DROP PUBLIC SYNONYM SYN_PACK_DEF_CO;
CREATE PUBLIC SYNONYM SYN_PACK_DEF_CO FOR CONTAFIN_ORACLE.PACK_DEF_CO;
GRANT EXECUTE ON SYN_PACK_DEF_CO TO PUBLIC;
---------------------------------------------------
DROP TYPE CONTAFIN_ORACLE.CONTRACT_M;
DROP TYPE CONTAFIN_ORACLE.SAL_CONTRACT_M;
CREATE OR REPLACE TYPE CONTAFIN_ORACLE.SAL_CONTRACT_M AS OBJECT
(
variabila varchar2(5),
valoare VARCHAR2(1000)
);
/
grant execute on CONTAFIN_ORACLE.SAL_CONTRACT_M to PUBLIC;
CREATE OR REPLACE TYPE CONTAFIN_ORACLE.CONTRACT_M IS TABLE OF sal_contract_m;
/
grant execute on CONTAFIN_ORACLE.CONTRACT_M to PUBLIC;
--------------------------------------------------------
DROP PUBLIC SYNONYM CONTRACT_M;
CREATE PUBLIC SYNONYM CONTRACT_M FOR CONTAFIN_ORACLE.CONTRACT_M;
GRANT EXECUTE ON CONTRACT_M TO PUBLIC
DROP PUBLIC SYNONYM SAL_CONTRACT_M;
CREATE PUBLIC SYNONYM SAL_CONTRACT_M FOR CONTAFIN_ORACLE.SAL_CONTRACT_M;
GRANT EXECUTE ON SAL_CONTRACT_M TO PUBLIC
DROP PUBLIC SYNONYM SAL_RED;
CREATE PUBLIC SYNONYM SAL_RED FOR CONTAFIN_ORACLE.SAL_RED;
GRANT EXECUTE ON SAL_RED TO PUBLIC;
DROP PUBLIC SYNONYM SAL_CAMPURI_RED;
CREATE PUBLIC SYNONYM SAL_CAMPURI_RED FOR CONTAFIN_ORACLE.SAL_CAMPURI_RED;
GRANT EXECUTE ON SAL_CAMPURI_RED TO PUBLIC;
DROP PUBLIC SYNONYM TABSTERS;
CREATE PUBLIC SYNONYM TABSTERS FOR CONTAFIN_ORACLE.TABSTERS;
GRANT EXECUTE ON TABSTERS TO PUBLIC;
DROP PUBLIC SYNONYM SAL_TABELESTERS;
CREATE PUBLIC SYNONYM SAL_TABELESTERS FOR CONTAFIN_ORACLE.SAL_TABELESTERS;
GRANT EXECUTE ON SAL_TABELESTERS TO PUBLIC;
DROP PUBLIC SYNONYM FF_SUME;
CREATE PUBLIC SYNONYM FF_SUME FOR CONTAFIN_ORACLE.FF_SUME;
GRANT EXECUTE ON FF_SUME TO PUBLIC;
DROP PUBLIC SYNONYM FF_PERSINTRET;
CREATE PUBLIC SYNONYM FF_PERSINTRET FOR CONTAFIN_ORACLE.FF_PERSINTRET;
GRANT EXECUTE ON FF_PERSINTRET TO PUBLIC;
DROP PUBLIC SYNONYM VANZARI_DETALII_TAB;
CREATE PUBLIC SYNONYM VANZARI_DETALII_TAB FOR CONTAFIN_ORACLE.VANZARI_DETALII_TAB;
GRANT EXECUTE ON VANZARI_DETALII_TAB TO PUBLIC;
DROP PUBLIC SYNONYM PIVOT_TABLE;
CREATE PUBLIC SYNONYM PIVOT_TABLE FOR CONTAFIN_ORACLE.PIVOT_TABLE;
GRANT EXECUTE ON PIVOT_TABLE TO PUBLIC;
DROP PUBLIC SYNONYM tabinchideretva;
CREATE PUBLIC SYNONYM tabinchideretva FOR CONTAFIN_ORACLE.tabinchideretva;
GRANT EXECUTE ON tabinchideretva TO PUBLIC;
DROP PUBLIC SYNONYM tabelavaloritaguri;
CREATE PUBLIC SYNONYM tabelavaloritaguri FOR CONTAFIN_ORACLE.tabelavaloritaguri;
GRANT EXECUTE ON tabelavaloritaguri TO PUBLIC;
DROP PUBLIC SYNONYM vanzari_detalii_tab;
CREATE PUBLIC SYNONYM vanzari_detalii_tab FOR CONTAFIN_ORACLE.vanzari_detalii_tab;
GRANT EXECUTE ON vanzari_detalii_tab TO PUBLIC;
DROP PUBLIC SYNONYM randinchideretva;
CREATE PUBLIC SYNONYM randinchideretva FOR CONTAFIN_ORACLE.randinchideretva;
GRANT EXECUTE ON randinchideretva TO PUBLIC;
DROP PUBLIC SYNONYM PIVOT_ROW;
CREATE PUBLIC SYNONYM PIVOT_ROW FOR CONTAFIN_ORACLE.PIVOT_ROW;
GRANT EXECUTE ON PIVOT_ROW TO PUBLIC;
DROP PUBLIC SYNONYM SERVER_INFO;
CREATE PUBLIC SYNONYM SERVER_INFO FOR CONTAFIN_ORACLE.SERVER_INFO;
GRANT SELECT,UPDATE ON SERVER_INFO TO PUBLIC;
DROP PUBLIC SYNONYM PACK_UTILS;
CREATE PUBLIC SYNONYM PACK_UTILS FOR CONTAFIN_ORACLE.PACK_UTILS;
GRANT EXECUTE ON PACK_UTILS TO PUBLIC;
DROP PUBLIC SYNONYM PACK_UTILS_FILE;
CREATE PUBLIC SYNONYM PACK_UTILS_FILE FOR CONTAFIN_ORACLE.PACK_UTILS_FILE;
GRANT EXECUTE ON PACK_UTILS_FILE TO PUBLIC;
create public synonym pack_roartvai for contafin_oracle.pack_roartvai;
grant execute on pack_roartvai to public;
create or replace public synonym syn_nom_tipapatrid for contafin_oracle.nom_tipapatrid;
GRANT SELECT ON syn_nom_tipapatrid TO PUBLIC;
grant references on syn_nom_tipapatrid to PUBLIC;
create or replace public synonym syn_vnom_um_iso for contafin_oracle.vnom_um_iso;
grant select, references on syn_vnom_um_iso to public;
grant select, references on contafin_oracle.nom_um_iso to public;
create public synonym rtvai_agenti for contafin_oracle.rtvai_agenti;
create public synonym rtvai_istoric for contafin_oracle.rtvai_istoric;
grant select on rtvai_agenti to public;
grant select on rtvai_istoric to public;
--------------------------------------------------------
GRANT ALL ON DIRECTORY DMPDIR TO PUBLIC;
GRANT EXECUTE ON UTL_FILE TO PUBLIC;
GRANT EXECUTE ON UTL_INADDR TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_TCP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_SMTP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_HTTP TO CONTAFIN_ORACLE;
GRANT EXECUTE ON UTL_MAIL TO CONTAFIN_ORACLE;
grant execute on dbms_lock to public;
---------------------------------------------------------
-----------------------------------
BEGIN
DBMS_NETWORK_ACL_ADMIN.DROP_ACL(acl => 'roaupdate.xml');
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'roaupdate.xml',
description => 'Permissions to send mail',
principal => 'CONTAFIN_ORACLE',
is_grant => true,
privilege => 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'roaupdate.xml',
principal => 'CONTAFIN_ORACLE',
is_grant => true,
privilege => 'resolve');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'roaupdate.xml',
host => '*');
END;
/
COMMIT;
SPOOL OFF
disconnect
quit

View File

@@ -0,0 +1,25 @@
REINSTALARE BAZA DE DATE DIN DUMP
1. Creare server scripturi
2. Recreare sys.vauth_serii
create or replace view sys.vauth_serii 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;
3. Instalare utlmail
@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlmail.sql
@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\prvtmail.plb
4. Completare customer_id in sys.auth_detalii
5. Verificare contafin_oracle.server_info
Schimbare cai roaupdate, parole sys, contafin_oracle, updprereq = 0
6. syn_new_schema_job

View File

@@ -0,0 +1,4 @@
sqlplus.exe /nolog @roa.sql
call import_co.bat
call post_co.bat
call import_firma.bat

View File

@@ -0,0 +1,108 @@
set verify off
PROMPT 'CREATI DIRECTORUL [C:\DMPDIR\] PENTRU IMPORTUL DUMP-URILOR SI COPIATI FISIERELE CONTAFIN_ORACLE.DMP SI FIRMANOUA.DMP!'
ACCEPT systemPassword CHAR PROMPT 'Specificati parola pentru SYSTEM>'
PROMPT
ACCEPT oraSID CHAR PROMPT 'Specificati SID-ul bazei de date>'
PROMPT
ACCEPT dataDirectory CHAR PROMPT 'Specificati directorul unde se va instala baza de date (fara \ la sfarsit)>'
PROMPT
ACCEPT coPassword CHAR PROMPT 'Specificati parola pentru Contafin Oracle>'
PROMPT
ACCEPT fnName CHAR PROMPT 'Specificati numele pentru firma noua>'
PROMPT
ACCEPT fnPassword CHAR PROMPT 'Specificati parola pentru &&fnName>'
PROMPT
connect SYSTEM/&&systemPassword@&&oraSID
PROMPT se creeaza tablespace ROA
@CreateDB.sql
PROMPT se creeaza userul CONTAFIN_ORACLE
@CreateCO.sql
PROMPT se creeaza userul <FIRMA>
@CreateFN.sql
disconnect
-- se importa scripturi pe sys
connect SYS/&&systemPassword@&&oraSID as sysdba
@sys_2006_06_26_01.sql
@sys_2007_03_26_01.sql
@sys_2007_12_11_01.sql
@sys_2009_09_15_01_LICENTA.sql
@sys_2012_06_19_01_LOG.sql
@sys_2012_06_21_01_FIRMA.sql
@sys_2012_06_21_02_PACK_AUTH.sql
@sys_2013_01_23_01_PACK_AUTH.sql
@sys_2013_01_23_01_PACK_AUTH.sql
@sys_2013_01_23_02.sql
@sys_2013_06_17_01_COMUN.sql
@sys_2013_07_18_01_AUTH_PACK.sql
@sys_2013_07_24_01.sql
@sys_2013_08_29_01_AUTH_PACK.sql
@sys_2014_07_10_01_FIRMA.sql
@sys_2014_07_24_01.sql
@sys_2014_08_18_01.sql
@sys_2014_08_18_02_UPDATE_UPDATESQLPLUS.sql
@sys_2014_08_18_03_UPDATE.sql
@sys_2014_09_04_01_FIRMA.sql
@sys_2014_10_10_01_DREPTURI.sql
@sys_2014_10_21_01_FIRMA.sql
@sys_2014_11_06_01_FIRMA.sql
@sys_2017_02_28_01_SCHEMA.sql
@sys_2020_04_07_01_SCHEMA.sql
@sys_2020_07_01_01_AUTH_PACK.sql
@sys_2021_12_08_01_COMUN.sql
@sys_2023_05_03_01_COMUN.sql
@sys_2024_02_22_01_COMUN.sql
@sys_2025_09_24_03_EXECUTESCRIPTOS.sql
@sys_2026_01_14_01_AUTH_PACK.sql
--------------------------------------------------
create or replace view vauth_serii 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
/
--------------------------------------------------
disconnect
spool import_co.bat
rem imp SYSTEM/&&systemPassword@&&oraSID fromuser=CONTAFIN_ORACLE touser=CONTAFIN_ORACLE file=contafin_oracle.dmp log=contafin_oracle.log
PROMPT impdp SYSTEM/&&systemPassword@&&oraSID directory=DMPDIR dumpfile=contafin_oracle.dmp logfile=contafin_oracle.log
spool off
spool post_co.bat
PROMPT sqlplus SYSTEM/&&systemPassword@&&oraSID @postdbcreation.sql
spool off
spool import_firma.bat
REM imp SYSTEM/&&systemPassword@&&oraSID fromuser=firmanoua touser=&&fnName file=firmanoua.dmp log=&&fnName.log
PROMPT impdp SYSTEM/&&systemPassword@&&oraSID directory=DMPDIR dumpfile=firmanoua.dmp logfile=&&fnName..log remap_schema=firmanoua:&&fnName
spool off
quit

View File

@@ -0,0 +1,2 @@
sqlplus.exe /nolog @roa_firma.sql
call import_firma.bat

View File

@@ -0,0 +1,26 @@
set verify off
ACCEPT systemPassword CHAR PROMPT 'Specificati parola pentru SYSTEM>'
PROMPT
ACCEPT oraSID CHAR PROMPT 'Specificati SID-ul bazei de date>'
PROMPT
ACCEPT fnName CHAR PROMPT 'Specificati numele pentru firma noua>'
PROMPT
ACCEPT fnPassword CHAR PROMPT 'Specificati parola pentru &&fnName>'
PROMPT
connect SYSTEM/&&systemPassword@&&oraSID
@CreateFN.sql
disconnect
spool import_firma.bat
PROMPT impdp SYSTEM/&&systemPassword@&&oraSID directory=DMPDIR dumpfile=firmanoua.dmp logfile=&&fnName.log remap_schema=firmanoua:&&fnName
spool off
quit

View File

@@ -0,0 +1,570 @@
drop table AUTH_DETALII;
drop package body GEN_SERII;
drop package GEN_SERII;
drop table gen_seriiprog;
drop table gen_clienti;
drop table gen_programe;
drop view VGEN_SERIIPROG;
drop view VGEN_clienti;
drop view VGEN_PROGRAME;
drop view contafin_oracle.vdef_programe_serii;
prompt
prompt Creare tabela AUTH_DETALII
prompt =========================
prompt
-- Create table
create table AUTH_DETALII
(
DETALII VARCHAR2(15) not null
)
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 16K
minextents 1
maxextents unlimited
);
prompt
prompt Creare tabela AUTH_SERII
prompt ========================
prompt
create table AUTH_SERII
(
ID_SERIE NUMBER(5) not null,
ID_PROGRAM NUMBER(2) not null,
SERIE RAW(128) not null,
STERS NUMBER(1) default 0 not null,
DATAORA DATE default sysdate not null,
ID_UTIL NUMBER(5) not null,
DATAORAS DATE,
ID_UTILS NUMBER(5)
)
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 16K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table AUTH_SERII
add constraint PK_AUTH_SERII primary key (ID_SERIE)
using index
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
prompt
prompt Creare secventa SEQ_AUTH_SERII
prompt ==============================
prompt
create sequence SEQ_AUTH_SERII
minvalue 1
maxvalue 99999999999999999
start with 1
increment by 1
nocache;
prompt
prompt Creare package AUTH_PACK
prompt ========================
prompt
create or replace package 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 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;
/
prompt
prompt Creare package body AUTH_PACK
prompt =============================
prompt
create or replace package body AUTH_PACK is
procedure verifica_program is
v_program VARCHAR2(256);
v_modul VARCHAR2(256);
v_sid NUMBER(16);
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';
IF v_program not in ('PLSQLDEV.EXE', 'ROASTART.EXE') THEN
IF v_program <> v_modul THEN
RAISE_APPLICATION_ERROR(-20000, 'Acces interzis!');
END IF;
auth_pack.verifica_licenta(v_sid, v_program);
END IF;
end;
-------------------------------------------------------------------------------------
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
RAISE_APPLICATION_ERROR(-20000, 'Acces interzis!');
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_utilizatori := auth_pack.decripteaza_nr_util(v_seriec);
v_data_val := auth_pack.decripteaza_data_val(v_seriec, v_zi);
IF v_data_val >= SYSDATE THEN
IF v_utilizatori > 0 THEN
SELECT COUNT(*)
INTO v_nr_util
FROM v$session
WHERE UPPER(TRIM(PROGRAM)) = v_program
AND SID != v_sid;
IF v_nr_util >= v_utilizatori THEN
RAISE_APPLICATION_ERROR(-20000,
'Ati depasit numarul de licente (' ||
v_utilizatori || ') pentru programul ' ||
v_nume_program || ' !');
END IF;
ELSE
RAISE_APPLICATION_ERROR(-20000,
'Seria introdusa pentru acest program nu este corecta!');
END IF;
ELSE
RAISE_APPLICATION_ERROR(-20000,
'Licenta pentru acest program a expirat!');
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 VARCHAR2(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 := 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');
dbms_obfuscation_toolkit.DES3Decrypt(input => v_serie,
key => utl_raw.cast_to_raw(v_cheie),
decrypted_data => v_serieval);
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;
/
prompt
prompt Creare trigger LOGON_AUDIT_TRIGGER
prompt ==================================
prompt
CREATE OR REPLACE TRIGGER logon_audit_trigger
AFTER LOGON ON DATABASE
BEGIN
auth_pack.verifica_program();
DBMS_APPLICATION_INFO.SET_CLIENT_INFO (sys_context('userenv', 'ip_address'));
/* IF USER NOT IN ('SYSMAN', 'DBSNMP') THEN
insert into stats$user_log
values
(user,
sys_context('USERENV', 'SESSIONID'),
sys_context('USERENV', 'HOST'),
null,
null,
null,
sysdate,
to_char(sysdate, 'hh24:mi:ss'),
null,
null,
null,
null,
null,
null,
sys_context('userenv', 'ip_address'));
update stats$user_log
set first_action = UPPER((select action
from v$session
where sys_context('USERENV', 'SESSIONID') =
audsid))
where sys_context('USERENV', 'SESSIONID') = session_id;
--***************************************************
-- Update the last program accessed
-- ***************************************************
update stats$user_log
set first_program = UPPER((select program
from v$session
where sys_context('USERENV', 'SESSIONID') =
audsid))
where sys_context('USERENV', 'SESSIONID') = session_id;
-- ***************************************************
-- Update the last module accessed
-- ***************************************************
update stats$user_log
set first_module = UPPER((select module
from v$session
where sys_context('USERENV', 'SESSIONID') =
audsid))
where sys_context('USERENV', 'SESSIONID') = session_id;
END IF;*/
END;
/
prompt
prompt Creare view VAUTH_SERII
prompt =======================
prompt
create or replace view vauth_serii 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
/
CREATE PUBLIC SYNONYM SYN_VDEF_PROGRAME FOR CONTAFIN_ORACLE.VDEF_PROGRAME;
GRANT SELECT ON SYN_VDEF_PROGRAME TO PUBLIC;
GRANT REFERENCES ON SYN_VDEF_PROGRAME TO PUBLIC;
create synonym contafin_oracle.pack_autentificare for sys.auth_pack;
grant execute on contafin_oracle.pack_autentificare to public;
GRANT EXECUTE ON AUTH_PACK TO CONTAFIN_ORACLE;
create synonym contafin_oracle.vdef_programe_serii for sys.vauth_serii;

View File

@@ -0,0 +1,26 @@
------------------------------------------------------
-- AUTH_PACK.VERIFICA_PROGRAM (START.EXE)
-- Creat de marius.mutu pe 11/12/2007
------------------------------------------------------
create or replace view vauth_serii 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;
/
CREATE OR REPLACE TRIGGER logon_audit_trigger
AFTER LOGON ON DATABASE
BEGIN
DBMS_APPLICATION_INFO.SET_CLIENT_INFO(sys_context('userenv',
'ip_address'));
auth_pack.verifica_program();
END;
/

View File

@@ -0,0 +1 @@
alter table AUTH_SERII modify ID_PROGRAM NUMBER(5);

View File

@@ -0,0 +1,41 @@
prompt
prompt table INFO
prompt ================================
prompt
create table INFO
(
INFO CLOB,
DATAORA TIMESTAMP(6) default SYSTIMESTAMP,
LOCATIA VARCHAR2(200) NULL
);
prompt
prompt PROCEDURE pINFO
prompt ================================
prompt
CREATE OR REPLACE PROCEDURE 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==
/
commit;

View File

@@ -0,0 +1,126 @@
prompt
prompt procedure NewSchema
prompt ================================
prompt
create or replace procedure NewSchema wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
ce0 483
Ewb+02W/Ux+ctMgwkXYISVy+8K8wg+0rea4FfC8ZFz8CAiG+jXs2igUvt2hd8gDxV8du+09R
UOzRCZqnYYSQzgiYVy5aEWvpGOMlhY1PEkK5/8FOY0vdy2wvriQ51poj08SJlFQQuIg6lRo9
F5s0x6LLI4nBRhxqAh9FTMgHbX9yVsAt3+778nunbHGcQp8pYB6K0tKgEFKR38cf1mk5VrEJ
6Q36xAzmEnFRNOeI7U3jtC8WuX+VOLoacEGGzVCBEmg3JbOr+YgLx6GfC1/9YTUELEqXSbcy
RgFoMFwl8d18gkBba10pJgbKJ31PXKx1xrlRIbMC1bkBG9nEJ0XneckByPwwJvona+tF934u
oWV36wGbyH2ovg/Bpm1ES5AFEyIwFNIQyAFEDfRqZDdpAn+1WfTm20rsDsYXwQ/QKTPLV5iK
L8UCBQs3nqKueaH7wmU/KIGENKuW+mW8LB6VehwRZkSEzgmuiwMh3LE9YkTi0BJO9TPIXyot
a8bmgFgaOmge9CuIA//Hi1my3WJUa+EVTB9+/7hc5i6nl8QcgcyrrpyRfBPcgaaQbu1HuxyV
mD1jI3+6Y1qwqBATJXWPSS4GUpsobY8gUSz9PNDMLH3uxXmDuwL5AyXr1Go4l+jekN5lq+77
flQeIxmgjC7oqk276oybdFbS4PdH6C4+D31S6CpB4hMutCd73Bv6067mYxA0ur87ghfXvp/u
Dg2SspwyoLfukdyZoYpz58KYSC8xWX8sbK5GKIdtwLEfCbPLa77hcUJrhvWfcanNHz9+P5U9
zKAio3hqftplh3sGGLyKQEaKOcSSWtqd8padjP4g/zlYqcZxfLSk/mH01DDfUSAnrwwfVmxd
TOhjUwL+g1y/P0j+Cu7HZwRpTgdGa01KaqGchvru2HJBk53cVUSVwiT32zSKSQ8HxDNL/ywn
S8zMFfhEJ8FDpM6D3k1lliLa50QOZk+hWfAVOFs6j0ZqRcuiuNlSVvR1Y1OlR/M0iyI7Pj8A
5TfgCekkor8gZwwUg+IWtd3GdUa6meRfJn8g1CQ370F05daH3CrOKamJud9/5hSG+6JH/qRB
eeeW5hrIO5bBMVOaqP2zzzyDoP8jV37YlgpPxgYWE7V6UzGg7q61+zXj5Hk=
/
prompt
prompt procedure NewSchemaPost
prompt ================================
prompt
create or replace procedure NewSchemaPost wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
980 3f5
dqDiV7hCSWDDu3lWWO+FYFjQhJMwgw0rTK4FfI5Vx6qVEAwV4Scdt+ifWWX0DGJsn8na3TPT
6VzoLpliUQIuTSQ/+VoTGjuiiO8ojWQQzxD/7cYrXv/mdgF2HWKqbSnQm2FawW1j1YTz3Lis
3T/q4we22x2dW1sQ8dSI6RPIyfpEiwcgYKCUg9ccL7NevQZpz/QFfSoqv1C7/u33QPX+ZILd
pWgaYcjLndGilohpjqj0Wh0JqEhv1BJvfXjThleZrfF0KVHsoBjssF7+YkAI35EkGzV4efOy
1FYHf5n3FDAPsllvSV1USSy24iN93SdEHkqDNp92OKi9KlifCSHOmc+hTSlMgoOSLUyzWxcm
0UAAwHJ/ClyxNv+h4+BZ79s1cL3jyX9uariP1t7Iqzm87Fwd+sAuUKRBIyJp8Bhejr5qgiyO
21KSSoat77cAbPVHcWr6IBhDMenP1mpZfxShrO9RvqtwLtW2RoerWzoNoeTcGsegkbHLiKsj
o1P2WjGkGFjgQ1jytJMTlktO/P4KkvHbJlg7eWPCaxaXtmBDolOBiCJ0eldAr01cIHyUD4lc
rUwccVJMTpjgktWd1bsfTpPMkFltJ5JpjZVe93K5TrBPXCn8OXQdKNRubC8BFp/LPhxr8c1o
N0g4seAnOw3sO9Vrw81oGu/OUyZz1WgbaW4grf/OsntACnI8syYoGG7IWn19R6KBJQfEwrrq
RZ1MT5D0Yl5I5e+4X4S9xJUsxHVCaVaP4sXJpXM/P/is8WNSTW7OIzsN2kfZyQiRNEIpIhBh
cmFucKOGtb7ZsincB2RJVDqFYDViwYg1cqGDSHAME8B1Jb9pF0o5r/j8OCswls1H9bxWTkML
CLUSTvyAkKFu2dV3SGceQHkja2NkF66a/HsNReBj7hMvsPF8HiGVAuFe1IZReSQMhEPUbkn4
2K/z81eA3qu27d0R4shfmMY3ku8l/msZJ6WXsoyHrhKsBva6nYm9rSP+H3W7f+8=
/
prompt
prompt function NewSchemaProgress
prompt ================================
prompt
create or replace function 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=
/
prompt
prompt sinonime, drepturi
prompt ================================
prompt
create or replace directory DMPDIR as 'C:\DMPDIR';
CREATE PUBLIC SYNONYM SYN_NEWSCHEMA FOR NEWSCHEMA;
GRANT EXECUTE ON SYN_NEWSCHEMA TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_NEWSCHEMAPROGRESS FOR NEWSCHEMAPROGRESS;
GRANT EXECUTE ON SYN_NEWSCHEMAPROGRESS TO PUBLIC;
CREATE PUBLIC SYNONYM SYN_NEWSCHEMAPOST FOR NEWSCHEMAPOST;
GRANT EXECUTE ON SYN_NEWSCHEMAPOST TO PUBLIC;
commit;

View File

@@ -0,0 +1,109 @@
prompt
prompt package AUTH_PACK
prompt ================================
prompt
create or replace package AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
4b0 1be
CtprDYbYCTb/dB7mvvqXyFlHLtAwg42Jr0gCyi/pmD8Pr8KWKeW66l4EjcOzX3ATxO61tVHW
tGbeN3cRZu/Hi/9EcTW8aqnhbqRzlx1rxAUu406LF2PpUcBG4IAl7aePrSEvR0zuThpsq5ly
mJqg04Pnhot4Gh8tqhdAj8sUgA6xEupjzvpYqeG3t+ZX6fIv+Z5dEi6Cny1jIb2OU/vk1Mf3
mREyXL9vBkYVDcbbV1OgXi7uq//8vYmFGhfC320hcEwr5nkBUNC9YsN+RoQ2LPMl2u87h1+0
uObe8xwyl0wvo4D6AmaVUKiYlfRqZun7IF+k7ARBB62iaxTtYdrlVoYPCnL/KoKsfQKPR+cl
q2FMDRuaShVl2jUqseLIbXmdPjhJevXUAHvFo60GsEwEciE/ArUWwpkXuBlSeh4F5/DyJLC5
KZmapdUK
/
create or replace package body AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
38c8 f1d
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
/

View File

@@ -0,0 +1,109 @@
prompt
prompt package AUTH_PACK
prompt ================================
prompt
create or replace package AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
4b0 1be
CtprDYbYCTb/dB7mvvqXyFlHLtAwg42Jr0gCyi/pmD8Pr8KWKeW66l4EjcOzX3ATxO61tVHW
tGbeN3cRZu/Hi/9EcTW8aqnhbqRzlx1rxAUu406LF2PpUcBG4IAl7aePrSEvR0zuThpsq5ly
mJqg04Pnhot4Gh8tqhdAj8sUgA6xEupjzvpYqeG3t+ZX6fIv+Z5dEi6Cny1jIb2OU/vk1Mf3
mREyXL9vBkYVDcbbV1OgXi7uq//8vYmFGhfC320hcEwr5nkBUNC9YsN+RoQ2LPMl2u87h1+0
uObe8xwyl0wvo4D6AmaVUKiYlfRqZun7IF+k7ARBB62iaxTtYdrlVoYPCnL/KoKsfQKPR+cl
q2FMDRuaShVl2jUqseLIbXmdPjhJevXUAHvFo60GsEwEciE/ArUWwpkXuBlSeh4F5/DyJLC5
KZmapdUK
/
create or replace package body AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
38cb f25
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
KLqPlMY=
/

View File

@@ -0,0 +1,8 @@
prompt
prompt drepturi DMPDIR pentru CONTAFIN_ORACLE
prompt ================================
prompt
grant all on directory DMPDIR to CONTAFIN_ORACLE;
grant exp_full_database to CONTAFIN_ORACLE;
grant imp_full_database to CONTAFIN_ORACLE;
grant select on dba_datapump_jobs to CONTAFIN_ORACLE;

View File

@@ -0,0 +1,6 @@
-------------------------------------------------
-- CREAT DE MARIUS.MUTU PE 17.06.2013
-------------------------------------------------
-- DREPTURI PENTRU CREAREA DIRECTOARELOR UPD_ROAUPDATE
grant create any directory to CONTAFIN_ORACLE;

View File

@@ -0,0 +1,109 @@
prompt
prompt package AUTH_PACK
prompt ================================
prompt
create or replace package AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
4b0 1be
CtprDYbYCTb/dB7mvvqXyFlHLtAwg42Jr0gCyi/pmD8Pr8KWKeW66l4EjcOzX3ATxO61tVHW
tGbeN3cRZu/Hi/9EcTW8aqnhbqRzlx1rxAUu406LF2PpUcBG4IAl7aePrSEvR0zuThpsq5ly
mJqg04Pnhot4Gh8tqhdAj8sUgA6xEupjzvpYqeG3t+ZX6fIv+Z5dEi6Cny1jIb2OU/vk1Mf3
mREyXL9vBkYVDcbbV1OgXi7uq//8vYmFGhfC320hcEwr5nkBUNC9YsN+RoQ2LPMl2u87h1+0
uObe8xwyl0wvo4D6AmaVUKiYlfRqZun7IF+k7ARBB62iaxTtYdrlVoYPCnL/KoKsfQKPR+cl
q2FMDRuaShVl2jUqseLIbXmdPjhJevXUAHvFo60GsEwEciE/ArUWwpkXuBlSeh4F5/DyJLC5
KZmapdUK
/
create or replace package body AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
38d8 f29
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
zq61HfBNBB4=
/

View File

@@ -0,0 +1,20 @@
GRANT EXECUTE ON dbms_scheduler TO CONTAFIN_ORACLE;
grant create any job to CONTAFIN_ORACLE;
grant create external job to CONTAFIN_ORACLE;
BEGIN
DBMS_RULE_ADM.grant_system_privilege(
privilege => DBMS_RULE_ADM.create_rule_set_obj,
grantee => 'CONTAFIN_ORACLE',
grant_option => FALSE);
DBMS_RULE_ADM.grant_system_privilege(
privilege => DBMS_RULE_ADM.create_evaluation_context_obj,
grantee => 'CONTAFIN_ORACLE',
grant_option => FALSE);
DBMS_RULE_ADM.grant_system_privilege(
privilege => DBMS_RULE_ADM.create_rule_obj,
grantee => 'CONTAFIN_ORACLE',
grant_option => FALSE);
END;
/

View File

@@ -0,0 +1,115 @@
prompt
prompt Modificare package AUTH_PACK
prompt ============================
prompt
create or replace package AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
506 1c6
ix9Hsmg5Tf3Okokvs7pOGDEGZGUwg42JDEhGfC+iA0FeMFj3wpenXMZIDpR8TXOhIf25qm0h
fL3JZgWrNtP5d8e+EYLW+UbLlDaalgMhjr7Z6Sb4YnJHt2C2BFyi6KchViU9f18uyTDK8Dxq
9nF2iOkrMXw/yp0mzgpx2u9LuTeaZC73wnSv4hZL8mxWs3fiU6FPPTDstzLAi5GOMN70gM9a
+3RGy29Jgsx+t6H+cSrTv+4ZWubF8pHwj96mx98/wkN6wAcBuluXQzWq83dp+GAabe72B6Cv
J663XMtbdxzuK+hxlIwozxrIY1QZfrFXEoIMf8pDb2sY90IwQAR3WccQgI3Tz+SS8XFcLexB
BLkYPaNsYXce9wVhSyKQ2QknPhT0zSQBO0b9kFMFSsLMM87NSa+ZLofuiIA/0wJ9YWqT0e+g
i85DKpYkSJdXOw==
/
prompt
prompt Modificare package body AUTH_PACK
prompt =================================
prompt
create or replace package body AUTH_PACK wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
3bfc faf
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
/

View File

@@ -0,0 +1,83 @@
prompt
prompt NewSchema
prompt ================================
prompt
create or replace procedure NewSchema wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
cd0 47f
XXSAHf/uoPEHO/9IjItNTH0bYxYwg+0rTCATfI5Vx6oCXN7AZgFcg+07/BRbbtTVcMlHgyKo
7FOICeZlWisB/NCalTaevXkJvZTzXYXBQfgpHh6eSGnrH46t/Pr9tStOS++ycgTMEw4PogTv
ZtEjSX1NgHunuy9UV7wADgYwfwZ96dE86Ucdodl8U3m2xlbXfW7++HO5Q/QZRy7Sz+73bmMY
/FEg6ucoWKZCubbPk/N/JklYhBSM+GYCwa0Z0nm/hVajq6NqnXBZG2mCYBM4J0Zh7hrPZZNt
/YNf6myyNb2RYPg3fCM/4gTndIxO8i9OtEynxTnS7K1Yl5s75dHmE96IScVxPqDcXAnq8Tt/
GBvFh+nQ9+wOBy7LfOOA/scS2lHLm0ycGMKsRYXgeI44vX+1X/c2ooQuj+tObWSwMKoHoy4j
L29oHNOuI88W/hoWMGPNQU3GuAC6a1zOfF4pZXbVFFf7zvLXnG0UWd89YqF5HzOn+gZ/7D6R
JagIYia3i2UXhdoBRyOWWOsqZ7tN7gwYdXlet/NUjWmQY5s7gBDsRgie8B9S2NRwXeB4nVvj
EynTjdE8vVPr05phIYuloVG4b3PWZs79JrCnOqj8CyqTSXkFkOUk9pTEHMtM33nHG7P1nltL
ATzXwnmEBVm1ogDYsEOIWlzsYG1TYpvD12U8fBmgE0syem2Ls57c5mMQNBOYPFgDi3GYuGe6
c0DZe4MxkbzbAhTSP6ZYHQWZWWb0mfEXaGPcW4IFQ+YGHBWt+9h2msIjsh9wv8ZKzWRTexg8
Bx4n4945g/JtD4ZVSONpglOC4cROCtL82lS1i37IvVfb6KsFuCAeEUdvXuQbmXFFd8hxaBdW
lWLPaWQ0v8ftD059dp7hpT9aLxiDVxlDwFetGcFOFcGxpMQmFDFPZ2fcy5iHB7/Lzm4kVAvW
Uc8omXf/l9qlmEk4Hr/53rjUjGW49KkaWgTA3R91foXdUfvtC3xKNtvIX9qSfVV8H5waZIDr
t6KFj1ssdnSR9DbtltsszpGy1w5Ii2sr4sYAy++QpeXWTLno/utR5rT43KgU504RZ3Gx4DE5
v+FnwLM6wPvrEJ0HYVE6fg15jYFpdWle1BH9B34Zx33NYc0/kihI8ZJ+
/
prompt
prompt NewSchemaPost
prompt ================================
prompt
create or replace procedure NewSchemaPost wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
a49 412
S1TTOCsSGk6ASxhiCjWIafBzqg4wgw0rTK4FfI5Vgp0GvGw4+w0CoV7aG1jbY6fT2gOkcDSi
zI3e6/JtETEbdywkqhQuJclRdIWElAXGscFoEuLrRgOmBz7GZ22a4JLtU9e3lcBDl2c2tnbv
S3JsBq82CDeqphIA8WA+6ROoLobHR/6aXxELEXgSZ9s3ni9EBgx3oup3aD9ksU5gqyUZD+mp
7li9eahiP3njh2UOfKLT96saQFOHBL9WUP3T7hayV/F0KRrsSxjssIT+VkAIGxr9towe6OOr
C6fW40Ra02iNHbaVvVc8r8ZGCqt7S4eEXMz93bwHVFrmLhqQLyr5dg8vJyfqnXlztOV91uui
SWocMVJHI1XfN8d2DufrL1IvVOFR3jYXfIr4cJ4ah1u87FyW8QHsDtp6CM8Oq5RsFvUHsCIW
44bSdsbHYBsj5n11vkC3D0nZA23Oq1sm4FoGBAeixyrd8SvF5+18y5sMt84790qzyEx7kRF9
3u7iqAG/FskYjRdlOBd5NDeQ6p0PPbbG3PrYwo0YQBV8bYiNtu6nF85Q/o/nkoxgvK+Rz5NH
GCknu18ebppD608xTFKdcUdOMQghTy4syen5dRdO+IoIxti4MvtAHSjUbpUv6BbAM6Eca/HN
0mfaLY11CfYmyQpsieWQ3HtG0BNond154ekxp4Zfmg4BU5t+AHsINfe2070AeyqMwClqujE7
YlWa/3L/232PXHvMwUDbvZiom5r6QpnXjBu30T7hgFfIuBO1Uk6+WzrTuck6drxVlkhPa5b0
4T0Jlh9pg2hxs2+u1BPV+OsX+HP3tlkM5KqcGhtV5dQ9NgpAS4zlHK7nI/Iln1yrg8MKFhC6
/oe/Acv41v4DB0K5AMRl65XlhSudm7Fk122d3FkGWYdRyfurVUsmAqeH10E0Pe1QTRiNQGQd
bloV2OuOH55ZiNBt6HNWspT9xxy/k9bvZrhA8RRmIzezWaiIv9A5/CxccgfACq/VeE0FYBKs
BtUTnUa9rSP+Hyu2h20=
/

View File

@@ -0,0 +1 @@
GRANT EXECUTE ON UTL_FILE TO PUBLIC;

View File

@@ -0,0 +1,7 @@
prompt
prompt UTL_HTTP
prompt
grant execute on UTL_HTTP to contafin_oracle;
grant execute on UTL_SMTP to contafin_oracle;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_08_18_01','','SYS');
commit;

View File

@@ -0,0 +1,33 @@
prompt
prompt UpdateSQLPLUS
prompt
create or replace procedure UpdateSQLPLUS wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
2b3 1a9
f6pKgyTHWgwSQY8fo6q7G9gRoJowg5Dxr9xqfHRArf4+zwxJLnzFU3yy9xsZo4kabKFJgY6N
zK84fBTf9GocQdgTPKzorKU+wj+qYapJsYiEhxFGBnMmo7GLNV1RfGsBB+rceeEmrK09Vmt7
qzmlwaUv6Oto31/RkaZ3NqxVFy1R09AppSMhq1/WBBcmm3mjr9c2hehYuwsICZ0rSt2fmd/H
mMJQiUBebYTKYyg+ra7xffLo1C+uHY8tIf9L27s+aU+C8IfNetp6n32al212Ad/XwxMTaBV4
0JK95ch/J5wupD0D5lHCyYDjP7v22XaYrQ/p/HIjLZPq0Nns0h1ps1TKByypPpQ5rpMLUEXJ
MWrISNzpN6QTjyWYzwhho+JB+rWm91tozXKxOqSwVPjuBaNkNZXGFw+a5g5X
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_08_18_02_UPDATE_UPDATESQLPLUS','','SYS');
commit;

View File

@@ -0,0 +1,7 @@
prompt
prompt UpdateSQLPLUS
prompt
grant execute on UpdateSQLPLUS to contafin_oracle;
grant execute on UTL_MAIL to contafin_oracle;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_08_18_03_UPDATE','','SYS');
commit;

View File

@@ -0,0 +1,45 @@
prompt
prompt NewSchema
prompt ================================
prompt
create or replace procedure NewSchemaPost wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
b18 490
E3BkWrZ+YiWKLtIqWyBUI5SJPtswgw0reSDrfC+Lx6qVEAxlwuXNZ+ZiE12t0Q1ainDafooM
jlw1WZFVoJ+p6HMw5PGgobqgr1R36Ag6zz9BwbloGqwL0wGsptWqlzrEm+VaZJzVDzj0FxQ1
j+JyWo+I04xLW65Fjm2CQDyEp2ywonoQf+A7a7p2po0ApA5z9C3kjsTq33xz7nB85xvUY/0K
9DmGC5jwxylwzUV1Ph6O6VqoRVIlhMJYdblYcB8hG1JARAl2iDd5VLJifGtb/wdtYdk/TzaQ
xKF+z4ohSq1gGPEQq7QWHG/bNk8Ja04pr2odITEy+2jHohpRR2CDvS0IJGwsFgNCaHqB/CAe
i2UL33IJ7+MFn3IrKChVUaWSBJVG6VqpFJ4v2eBXQAh8NhMUc1eeDVwkFkH9yPnOFuc3iGRX
6fckP7asnwg0N8FEGdtgrj4TwJrgnnisREjxbrZu3kYhoVqisiseVGqXFAEsfpQCMmtGkLMa
sWtM6vq0FYLbEJmXO1CFIeXdxe7Y0RmFMYFzbbzx2wr3KmNjjGsWl7b/d1mSgRyodB1XRu4a
Y3hUlZwBXP/qritoET9eR53BeEPNmyPMw3NCzNe75cJTlpuVeT+qk428od0wjt3DpTZRdJUZ
XtuMWQiQIn2eBcgmvjx+YYPmA4Mp6B0wxDz5iD0bzG4gXG47eH2Oce3EiKQCDq+hAhqI7S2M
I/zNDI26nCNTO3JKOCX4lpARoGuhl5ZNkgNXlq9CJWDC0BgUf6+e4hgPPy3nDlQVLlxWjx7N
gT0PpQwL2Lr8Ojb8ZcTGoE6w64Etc/nbc1smiDgNtSSwkR1Ft/ADiLOy7mAuIhyo0gRjzdig
Uykrs+Rh/+1zWK0ESofqv21mzgVHR2TqAbySzOS1aHr4mvTV8QpyTZCpK3jYxzhNeDyMnHsf
o5MxaGjRHOxkuRj8m7xTYjjemh4OxY/5wpq7EpiYE+zmXpfA0S9KoSTpzgu52ymYLK/3ZHUS
YN6exkl85/3W26zoxbag9t+Akj7x21QHOE7T814mX2OIW/Y5XXa3w8y5q+kM+qkevPPCVQBK
T6dA5/eKCn43TRS+1ARegq+T4gC+pSiAkmO4L+btd5Ie4DwHYz7eYP92bokMKkKB/Y4X8b4=
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_09_04_01_FIRMA.sql','','SYS');
commit;

View File

@@ -0,0 +1,20 @@
------------------------------------------------------
-- view vauth_serii
-- Creat de marius.mutu pe 10/10/2014
------------------------------------------------------
create or replace view vauth_serii 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;
GRANT EXECUTE ON UTL_INADDR TO CONTAFIN_ORACLE;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_10_10_01_DREPTURI','','SYS');
commit;

View File

@@ -0,0 +1,306 @@
------------------------------------------------------
-- view vauth_serii
-- Creat de marius.mutu pe 21/10/2014
------------------------------------------------------
PROMPT
PROMPT procedure NEWSCHEMA
PROMPT
create or replace procedure 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;
/
PROMPT
PROMPT procedure NEWSCHEMAJOB
PROMPT
create or replace procedure 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;
/
BEGIN
EXECUTE IMMEDIATE 'CREATE PUBLIC SYNONYM SYN_NEWSCHEMAJOB FOR NEWSCHEMAJOB';
EXECUTE IMMEDIATE 'GRANT EXECUTE ON SYN_NEWSCHEMAJOB TO CONTAFIN_ORACLE';
EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM SYN_NEWSCHEMAPOST';
EXECUTE IMMEDIATE 'DROP procedure NewSchemaPost';
EXCEPTION WHEN OTHERS THEN
NULL;
END;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_10_21_01_FIRMA','','SYS');
commit;

View File

@@ -0,0 +1,38 @@
------------------------------------------------------
-- function NEWSCHEMAPROGRESS - se verifica in dba_datapump_jobs daca mai exista job-ul de import date
-- Creat de marius.mutu pe 06/11/2014
------------------------------------------------------
PROMPT
PROMPT function NEWSCHEMAPROGRESS
PROMPT
create or replace function NEWSCHEMAPROGRESS(tcSchema VARCHAR2)
return varchar2 is
Result Varchar2(10000);
lcSchema VARCHAR2(100) := UPPER(tcSchema);
begin
begin
select state
into Result
from dba_datapump_jobs
where job_name = lcSchema
AND OPERATION = 'IMPORT'
AND JOB_MODE = 'SCHEMA';
if upper(Result) = 'EXECUTING' THEN
Result := 'IN EXECUTIE';
elsif upper(Result) = 'COMPLETING' THEN
Result := 'SE FINALIZEAZA';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
Result := 'FINALIZAT';
end;
return(Result);
end NEWSCHEMAPROGRESS;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2014_11_06_01_FIRMA','','SYS');
commit;

View File

@@ -0,0 +1,292 @@
PROMPT
PROMPT NewSchema
PROMPT
create or replace procedure NewSchema(tcSchema varchar2,
tnLuna number,
tnAn number) is
lcCommand varchar2(1000);
lcSchemaSursa VARCHAR2(100) := 'FIRMANOUA';
lcSchemaDestinatie VARCHAR2(100) := tcSchema;
lcDumpFile VARCHAR2(100) := 'firmanoua.dmp';
lcLogFile VARCHAR2(100) := LOWER(tcSchema) || '.log';
-- 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).
begin
-- 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);
PINFO('DBMS_DATAPUMP.ADD_FILE LOG', lcLocatie);
DBMS_DATAPUMP.ADD_FILE(handle => h1,
filename => lcLogFile,
directory => 'DMPDIR',
filetype => 3);
PINFO('DBMS_DATAPUMP.ADD_FILE DMP', lcLocatie);
DBMS_DATAPUMP.ADD_FILE(handle => h1,
filename => lcDumpFile,
directory => 'DMPDIR',
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);
DBMS_DATAPUMP.DETACH(h1);
EXCEPTION
WHEN OTHERS THEN
PINFO(SQLERRM, lcLocatie);
raise_application_error(-20000, SQLERRM);
END;
BEGIN
------------------------------------------------------------------------
-- 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';
-- Da eroare pe linux - starea pachetului pack_personal a fost revocata???
-- EXECUTE IMMEDIATE lcSql INTO lnZileLucratoare USING ldDataI, ldDataF;
lnZileLucratoare := 20; -- un numar ales aleator
lnOreLucratoare := lnZileLucratoare * 8;
-- Nu stiu de ce, dar este invalidat pack_sesiune si se apeleaza din trg > pack_validare
-- Il fac disabled temporar
EXECUTE IMMEDIATE 'ALTER TRIGGER ' || lcSchemaDestinatie || '.TRG_SAL_CALENDAR_BU DISABLE';
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;
EXECUTE IMMEDIATE 'ALTER TRIGGER ' || lcSchemaDestinatie || '.TRG_SAL_CALENDAR_BU ENABLE';
-- SAL_IMPOZITAR
EXECUTE IMMEDIATE 'ALTER TRIGGER ' || lcSchemaDestinatie || '.TRG_SAL_IMPOZITAR_BU DISABLE';
lcSql := 'UPDATE ' || lcSchemaDestinatie || '.SAL_IMPOZITAR SET AN = :1 , LUNA = :2';
PINFO(lcSql, lcLocatie);
EXECUTE IMMEDIATE lcSql
USING lnAn, lnLuna;
EXECUTE IMMEDIATE 'ALTER TRIGGER ' || lcSchemaDestinatie || '.TRG_SAL_IMPOZITAR_BU ENABLE';
-- 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;
EXCEPTION
WHEN OTHERS THEN
PINFO(SQLERRM, lcLocatie);
raise_application_error(-20000, SQLERRM);
END;
BEGIN
------------------------------------------------------------------------
-- 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);
-- nu mai ridic exceptie, in caz ca nu este configurata actualizarea
-- raise_application_error(-20000, SQLERRM);
END;
end NewSchema;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2017_02_28_01_SCHEMA','','SYS');
commit;

View File

@@ -0,0 +1,266 @@
create or replace procedure 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;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2020_04_07_01_SCHEMA','','SYS');
commit;

View File

@@ -0,0 +1,110 @@
create or replace package AUTH_PACK wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
9
506 1c6
ix9Hsmg5Tf3Okokvs7pOGDEGZGUwg42JDEhGfC+iA0FeMFj3wpenXMZIDpR8TXOhIf25qm0h
fL3JZgWrNtP5d8e+EYLW+UbLlDaalgMhjr7Z6Sb4YnJHt2C2BFyi6KchViU9f18uyTDK8Dxq
9nF2iOkrMXw/yp0mzgpx2u9LuTeaZC73wnSv4hZL8mxWs3fiU6FPPTDstzLAi5GOMN70gM9a
+3RGy29Jgsx+t6H+cSrTv+4ZWubF8pHwj96mx98/wkN6wAcBuluXQzWq83dp+GAabe72B6Cv
J663XMtbdxzuK+hxlIwozxrIY1QZfrFXEoIMf8pDb2sY90IwQAR3WccQgI3Tz+SS8XFcLexB
BLkYPaNsYXce9wVhSyKQ2QknPhT0zSQBO0b9kFMFSsLMM87NSa+ZLofuiIA/0wJ9YWqT0e+g
i85DKpYkSJdXOw==
/
create or replace package body AUTH_PACK wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
b
3bad faf
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
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2020_07_01_01_AUTH_PACK','','SYS');
commit;

View File

@@ -0,0 +1,4 @@
alter system set NLS_LANGUAGE='ROMANIAN' scope=spfile;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2021_12_08_01_COMUN','','SYS');
commit;

View File

@@ -0,0 +1,25 @@
-- ExecuteScriptOS - executa script powershell pentru download programe
create or replace procedure ExecuteScriptOS(tcPowerShellPath in varchar2,
tcScriptPath in varchar2) as
lcJobName varchar2(500);
begin
lcJobName := 'exec_ps_' || to_char(sysdate, 'YYYYMMDDHH24MISS');
dbms_scheduler.create_job(lcJobName,
job_action => tcPowerShellPath,
number_of_arguments => 1,
job_type => 'executable',
enabled => false);
dbms_scheduler.set_job_argument_value(lcJobName, 1, tcScriptPath);
dbms_scheduler.enable(lcJobName);
end ExecuteScriptOS;
/
grant execute on dbms_lock to public;
create or replace public SYNONYM ExecuteScriptOS for ExecuteScriptOS;
grant execute on ExecuteScriptOS to contafin_oracle;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2023_05_03_01_COMUN','','SYS');
commit;

View File

@@ -0,0 +1,38 @@
create or replace noneditionable procedure ExecuteScriptOS(tcPowerShellPath in varchar2,
tcScriptPath in varchar2) as
lcJobName varchar2(500);
begin
lcJobName := 'exec_ps_' || to_char(sysdate, 'YYYYMMDDHH24MISS');
dbms_scheduler.create_job(lcJobName,
job_action => tcPowerShellPath,
number_of_arguments => 1,
job_type => 'executable',
enabled => false);
dbms_scheduler.set_job_argument_value(lcJobName, 1, tcScriptPath);
dbms_scheduler.enable(lcJobName);
end ExecuteScriptOS;
/
grant execute on ExecuteScriptOS to contafin_oracle;
create or replace procedure 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;
/
grant execute on UpdateSQLPLUS to contafin_oracle;
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2024_02_22_01_COMUN','','SYS');
commit;

View File

@@ -0,0 +1,25 @@
create or replace procedure 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;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2025_09_24_03_EXECUTESCRIPTOS','','SYS');
commit;

View File

@@ -0,0 +1,553 @@
create or replace package 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;
/
create or replace package body 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;
/
exec contafin_oracle.pack_migrare.UpdateVersiune('sys_2026_01_14_01_AUTH_PACK','','SYS');
commit;

View File

@@ -0,0 +1,493 @@
create or replace noneditionable package body AUTH_PACK is
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',
'WEBDEV.WEBSERVER.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 := 10; -- auth_pack.decripteaza_nr_util(v_seriec);
--v_data_val := sysdate; -- auth_pack.decripteaza_data_val(v_seriec, v_zi);
v_data_val := TO_DATE('31122099','DDMMYYYY');
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 := TO_DATE('31122099','DDMMYYYY'); -- 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 := 50; --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 := 10; -- 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 := SYSDATE ; --auth_pack.decripteaza_data_val(V_SERIEC, V_ZI);
v_data_val := TO_DATE('31122099','DDMMYYYY');
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 VARCHAR2(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 := 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');
/* dbms_obfuscation_toolkit.DES3Decrypt(input => v_serie,
key => utl_raw.cast_to_raw(v_cheie),
decrypted_data => v_serieval);*/
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;
v_seriedec := NULL;
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;

View File

@@ -0,0 +1,13 @@
TODO: REZOLVAT ERORI
Compilation errors for VIEW VCRM_FACTURI
ORA-00904: "C"."NR_CTR": identificator nevalid
Compilation errors for VIEW VCRM_FACTURI
ORA-00904: "C"."NR_CTR": identificator nevalid
Compilation errors for VIEW VCRM_RATE
ORA-00904: "C"."NR_CTR": identificator nevalid