96 lines
4.6 KiB
Markdown
96 lines
4.6 KiB
Markdown
# Conventii - mediul Oracle de dev/test
|
|
|
|
Regula lui Marius, 20.08.2026. Se aplica **de fiecare data**, si sesiunii principale, si
|
|
subagentilor. Nu e context, e conventie de lucru.
|
|
|
|
## 1. Nu se spune "baza"
|
|
|
|
Termenul e vag si a produs deja o intrebare care n-ar fi trebuit sa existe: *"ce este baza? care
|
|
schema?"*. Se scrie intotdeauna **schema + instanta**, explicit:
|
|
|
|
> "se ruleaza pe schema `MARIUSM_AUTO` de pe `ROA_CENTRAL`"
|
|
|
|
nu "se ruleaza pe baza". Acelasi lucru in rapoarte, in handoff-uri, in propuneri si in mesaje.
|
|
|
|
## 2. Pe dev/test se lucreaza NUMAI cu ROA_CENTRAL
|
|
|
|
Instanta: **`ROA_CENTRAL`**. Schemele permise, singurele doua:
|
|
|
|
| Schema | Ce este |
|
|
|---|---|
|
|
| **`MARIUSM_AUTO`** | schema **de firma** - datele si pachetele de business (`VANZARI`, `VANZARI_DETALII`, `JTVA_COLOANE`, `PACK_FACTURARE`...). Aici se lucreaza pe functionalitate. |
|
|
| **`CONTAFIN_ORACLE`** | schema **comuna tuturor schemelor de firma**: pachete comune, actualizarea bazei de date, utilizatori, drepturi de utilizator, nomenclatorul de firme. Se creeaza **pe fiecare server**. |
|
|
|
|
Nimic altceva. Daca o sarcina pare sa ceara altceva, se intreaba intai.
|
|
|
|
Modelul de retinut: fiecare firma are schema ei (in dev/test, `MARIUSM_AUTO`), iar
|
|
`CONTAFIN_ORACLE` sta alaturi, o singura data per server, si deserveste toate schemele de firma.
|
|
Deci o modificare in `CONTAFIN_ORACLE` e **transversala peste toate firmele de pe acel server** -
|
|
se trateaza cu grija corespunzatoare, nu ca o schimbare locala.
|
|
|
|
## 3. Schema `ACN` nu se foloseste si nu se citeaza
|
|
|
|
Nu se interogheaza, nu se ia ca sursa de adevar, nu se pomeneste in rapoarte ca element de
|
|
comparatie. Daca apare in rezultatul unei interogari pe `ALL_OBJECTS`/`ALL_SOURCE`, se **filtreaza
|
|
din start**, nu se comenteaza.
|
|
|
|
Consecinta practica pentru interogarile de dictionar: se pune **intotdeauna** filtrul de `owner`.
|
|
Fara el, randurile mai multor scheme se intercaleaza si output-ul devine ilizibil - capcana deja
|
|
platita o data la citirea unui corp de pachet din `ALL_SOURCE`.
|
|
|
|
```sql
|
|
select text from all_source
|
|
where owner = 'MARIUSM_AUTO' -- niciodata fara aceasta linie
|
|
and name = 'PACK_FACTURARE'
|
|
and type = 'PACKAGE BODY'
|
|
order by line;
|
|
```
|
|
|
|
## 4. Conectare
|
|
|
|
Client: `D:\ROA\instantclient_19_18\sqlplus.exe` (`TNS_ADMIN` deja setat spre acelasi folder).
|
|
Alias TNS: `ROA_CENTRAL` -> `10.0.20.121:1521`, `SERVICE_NAME=ROA` (`tnsnames.ora` din acelasi
|
|
folder).
|
|
|
|
```
|
|
& 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'MARIUSM_AUTO/ROMFASTSOFT@ROA_CENTRAL' '@fisier.sql'
|
|
```
|
|
|
|
Fisierul `.sql` se scrie in **ASCII**. SQL trimis prin pipe din PowerShell e spart de BOM
|
|
(`SP2-0734: unknown command beginning "...select..."` - BOM UTF-16 sparge parserul).
|
|
|
|
Parola nu e versionata in git - in `COMUN\docs\local\oracle.md` (ignorat de git, exista in SVN).
|
|
|
|
## 5. Ce inseamna "se ruleaza un script de pachet"
|
|
|
|
Scripturile din `D:\ROA\DATABASE\SCRIPTURI_CLAR\` **nu modifica date** - inlocuiesc **cod stocat in
|
|
Oracle** (`CREATE OR REPLACE PACKAGE` + `PACKAGE BODY`). De retinut:
|
|
|
|
- Efectul e **imediat si pentru toti cei conectati**. Nu seamana cu VFP, unde fiecare statie ruleaza
|
|
propriul `.exe`.
|
|
- Se recreeaza si **specificatia**, nu doar corpul - asta invalideaza obiectele dependente, care se
|
|
recompileaza la prima folosire.
|
|
- **Nu exista "undo".** Revenirea inseamna rularea unei versiuni anterioare a pachetului.
|
|
- Scripturile sunt scrise **necalificat** (`CREATE OR REPLACE PACKAGE "PACK_FACTURARE"`, fara
|
|
`CONNECT`, fara prefix de schema). Deci **se aplica schemei cu care esti conectat**, nu au tinta
|
|
proprie. Schema tinta o decide exclusiv sirul de conectare.
|
|
- Rularea unui script pe orice schema **se face doar la cererea explicita a lui Marius**. Un agent
|
|
scrie scriptul; nu il aplica.
|
|
|
|
## 6. Stare constatata pe `ROA_CENTRAL`, 20.08.2026
|
|
|
|
Reper istoric, constatat din ROAFACTURARE; de reconfirmat daca a trecut timp. Punctele 1-5
|
|
sunt conventia propriu-zisa si se aplica in toate produsele ROA.
|
|
|
|
```
|
|
DB_NAME: ROA server: 4e73d257c791 alias TNS: ROA_CENTRAL
|
|
```
|
|
|
|
- `MARIUSM_AUTO` isi detine **propriile tabele** (`VANZARI_DETALII`, `JTVA_COLOANE` sunt TABLE in
|
|
schema, nu sinonime catre alta schema). Deci cifrele obtinute conectat ca `MARIUSM_AUTO` sunt ale
|
|
datelor din `MARIUSM_AUTO`.
|
|
- `CONTAFIN_ORACLE` are 393 de obiecte si **nu** detine `VANZARI_DETALII`/`JTVA_COLOANE` - coerent
|
|
cu rolul ei: infrastructura comuna (utilizatori, drepturi, firme, actualizare), nu date de firma.
|
|
- `MARIUSM_AUTO.PACK_FACTURARE`: PACKAGE si PACKAGE BODY **VALID**, corpul modificat ultima data
|
|
**20.08.2026 08:43** (aplicarea scriptului `ff_2026_08_20_01`, garda `FACT-025`).
|