diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR1.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR1.txt new file mode 100644 index 0000000..1dd9436 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR1.txt @@ -0,0 +1,103 @@ +setup.exe +---------------------------------------------------------------- + +Advanced installation + + +Destination : Path : c:\oracle\product\10.1.0\db_1 + + +Advanced + + + +---------------------------------------------------------------- +Database Configuration Assistant + +Custom Database + + +Global Database Name: ROA +SID: ROA + + +Configure the Database With Enterprise Manager: Da +Enable Email Notification : Da +Enable Daily Backup : Da + + +Use the same password for all accounts : Da +Password: oracleromfast + + +File System : Da + + +Use Common Location For All Database Files : Da +Database Files Location: D:\ROA_DB + + +Specify Flash Recovery Area : Da +Flash Recovery Area : D:\ROA_FLASH +Flash Recovery Area Size : 20480 MB (20 GB) +Enable Archiving : Da + + +Standard Database Components: Nu +Enterprise Manager Repository : Da +Restul optiunilor : Nu + + + +Typical : Da +Percentage : 60% (600-900 MB) + + +Default Language : ROMANIAN +Default Date Format : ROMANIA + + +Block Size : 8 +Processes : 150 + + +Dedicated Server Mode : Da + + + +Optiunile default + + +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 + diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR2.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR2.txt new file mode 100644 index 0000000..8bc6065 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/Oracle10gR2.txt @@ -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: 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 + \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/ROA_ACTUALIZARI.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/ROA_ACTUALIZARI.txt new file mode 100644 index 0000000..017d729 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/ROA_ACTUALIZARI.txt @@ -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/ + @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/ +@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; diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/citeste.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/citeste.txt new file mode 100644 index 0000000..180bf5e --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/citeste.txt @@ -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; + diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/createco.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/createco.sql new file mode 100644 index 0000000..e756f30 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/createco.sql @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/createdb.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/createdb.sql new file mode 100644 index 0000000..fecf7e7 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/createdb.sql @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/createfn.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/createfn.sql new file mode 100644 index 0000000..cb4d00b --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/createfn.sql @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/directory.bat b/proxmox/lxc108-oracle/new-roa-oracle-server/directory.bat new file mode 100644 index 0000000..b950aa5 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/directory.bat @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/postdbcreation.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/postdbcreation.sql new file mode 100644 index 0000000..f4a6e75 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/postdbcreation.sql @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/reinstalare_baza_date_dump.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/reinstalare_baza_date_dump.txt new file mode 100644 index 0000000..b2b47a9 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/reinstalare_baza_date_dump.txt @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/roa.bat b/proxmox/lxc108-oracle/new-roa-oracle-server/roa.bat new file mode 100644 index 0000000..385af64 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/roa.bat @@ -0,0 +1,4 @@ +sqlplus.exe /nolog @roa.sql +call import_co.bat +call post_co.bat +call import_firma.bat \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/roa.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/roa.sql new file mode 100644 index 0000000..2885a93 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/roa.sql @@ -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 +@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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.bat b/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.bat new file mode 100644 index 0000000..64f593b --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.bat @@ -0,0 +1,2 @@ +sqlplus.exe /nolog @roa_firma.sql +call import_firma.bat \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.sql new file mode 100644 index 0000000..dc8901a --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/roa_firma.sql @@ -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 \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_03_26_01.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_03_26_01.sql new file mode 100644 index 0000000..a1afa61 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_03_26_01.sql @@ -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; + diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_12_11_01.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_12_11_01.sql new file mode 100644 index 0000000..e903990 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2007_12_11_01.sql @@ -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; +/ + + diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2009_09_15_01_LICENTA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2009_09_15_01_LICENTA.sql new file mode 100644 index 0000000..c281c12 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2009_09_15_01_LICENTA.sql @@ -0,0 +1 @@ +alter table AUTH_SERII modify ID_PROGRAM NUMBER(5); diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_19_01_LOG.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_19_01_LOG.sql new file mode 100644 index 0000000..7b03371 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_19_01_LOG.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_01_FIRMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_01_FIRMA.sql new file mode 100644 index 0000000..1979878 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_01_FIRMA.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_02_PACK_AUTH.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_02_PACK_AUTH.sql new file mode 100644 index 0000000..1c3cb2d --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2012_06_21_02_PACK_AUTH.sql @@ -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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 + + +/ diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_01_PACK_AUTH.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_01_PACK_AUTH.sql new file mode 100644 index 0000000..7c95058 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_01_PACK_AUTH.sql @@ -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= + +/ diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_02.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_02.sql new file mode 100644 index 0000000..eabf366 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_01_23_02.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_06_17_01_COMUN.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_06_17_01_COMUN.sql new file mode 100644 index 0000000..8e07b80 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_06_17_01_COMUN.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_18_01_AUTH_PACK.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_18_01_AUTH_PACK.sql new file mode 100644 index 0000000..5a6ef37 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_18_01_AUTH_PACK.sql @@ -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= + +/ diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_24_01.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_24_01.sql new file mode 100644 index 0000000..ece7684 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_07_24_01.sql @@ -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; +/ diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_08_29_01_AUTH_PACK.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_08_29_01_AUTH_PACK.sql new file mode 100644 index 0000000..01a33ef --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2013_08_29_01_AUTH_PACK.sql @@ -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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 + + +/ \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_10_01_FIRMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_10_01_FIRMA.sql new file mode 100644 index 0000000..529e8d8 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_10_01_FIRMA.sql @@ -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= + +/ diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_24_01.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_24_01.sql new file mode 100644 index 0000000..9d0146a --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_07_24_01.sql @@ -0,0 +1 @@ +GRANT EXECUTE ON UTL_FILE TO PUBLIC; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_01.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_01.sql new file mode 100644 index 0000000..e52b2f7 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_01.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_02_UPDATE_UPDATESQLPLUS.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_02_UPDATE_UPDATESQLPLUS.sql new file mode 100644 index 0000000..e56693c --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_02_UPDATE_UPDATESQLPLUS.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_03_UPDATE.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_03_UPDATE.sql new file mode 100644 index 0000000..231e23b --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_08_18_03_UPDATE.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_09_04_01_FIRMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_09_04_01_FIRMA.sql new file mode 100644 index 0000000..afed860 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_09_04_01_FIRMA.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_10_01_DREPTURI.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_10_01_DREPTURI.sql new file mode 100644 index 0000000..39e4a56 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_10_01_DREPTURI.sql @@ -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; diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_21_01_FIRMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_21_01_FIRMA.sql new file mode 100644 index 0000000..f5de0f0 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_10_21_01_FIRMA.sql @@ -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; diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_11_06_01_FIRMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_11_06_01_FIRMA.sql new file mode 100644 index 0000000..032f7ca --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2014_11_06_01_FIRMA.sql @@ -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; diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2017_02_28_01_SCHEMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2017_02_28_01_SCHEMA.sql new file mode 100644 index 0000000..439b771 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2017_02_28_01_SCHEMA.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_04_07_01_SCHEMA.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_04_07_01_SCHEMA.sql new file mode 100644 index 0000000..899026a --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_04_07_01_SCHEMA.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_07_01_01_AUTH_PACK.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_07_01_01_AUTH_PACK.sql new file mode 100644 index 0000000..638de10 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2020_07_01_01_AUTH_PACK.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2021_12_08_01_COMUN.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2021_12_08_01_COMUN.sql new file mode 100644 index 0000000..3ad6f04 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2021_12_08_01_COMUN.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2023_05_03_01_COMUN.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2023_05_03_01_COMUN.sql new file mode 100644 index 0000000..505613a --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2023_05_03_01_COMUN.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2024_02_22_01_COMUN.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2024_02_22_01_COMUN.sql new file mode 100644 index 0000000..002b376 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2024_02_22_01_COMUN.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2025_09_24_03_EXECUTESCRIPTOS.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2025_09_24_03_EXECUTESCRIPTOS.sql new file mode 100644 index 0000000..01d26fc --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2025_09_24_03_EXECUTESCRIPTOS.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2026_01_14_01_AUTH_PACK.sql b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2026_01_14_01_AUTH_PACK.sql new file mode 100644 index 0000000..c8397a9 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_2026_01_14_01_AUTH_PACK.sql @@ -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; \ No newline at end of file diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/sys_AUTH_PACK_fara_decriptare.pck b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_AUTH_PACK_fara_decriptare.pck new file mode 100644 index 0000000..b2fa349 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/sys_AUTH_PACK_fara_decriptare.pck @@ -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; + diff --git a/proxmox/lxc108-oracle/new-roa-oracle-server/todo.txt b/proxmox/lxc108-oracle/new-roa-oracle-server/todo.txt new file mode 100644 index 0000000..e3a3967 --- /dev/null +++ b/proxmox/lxc108-oracle/new-roa-oracle-server/todo.txt @@ -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 + + + +