# System Instructions - ROMFASTSQL Acest director contine instructiuni system si exemple pentru proiectul ROMFASTSQL - un sistem de migrare pentru baza de date ERP romaneasca Oracle. ## Structura - `system_prompt.md` - Instructiuni principale pentru generarea scripturilor SQL - `knowledge_base/` - Colectie de exemple si utilitare - `PACK_MIGRARE.pck` - Package-ul central cu functii utilitare - Multiple fisiere exemplu de scripturi (ff_*.sql, co_*.sql) ## Componente Principale ### PACK_MIGRARE Package Package-ul central care ofera functii de verificare: - `ColumnExist()` - Verifica daca o coloana exista - `ObjectExist()` - Verifica daca un obiect exista - `ConstraintExist()` - Verifica daca o restrictie exista - `UpdateVersiune()` - Tracking versiuni pentru scripturi ### Exemple Scripturi Migrare Directorul `knowledge_base/` contine exemple pentru: - **ff_*.sql** - Scripturi de tip "Fast Forward" pentru modificari structurale - **co_*.sql** - Scripturi pentru obiecte comune ## Conventii Obligatorii ### Formatare SQL - **NU** folositi ghilimele in jurul numelor de tabele/coloane - **NU** specificati numele schemei (ex: folositi `JV2007` nu `"SCHEMA"."JV2007"`) - **MAJUSCULE** pentru toate cuvintele cheie SQL - Comentarii in romana ### Structura Scripturi 1. Comentariu scurt in romana la inceput 2. Verificari existenta prin PACK_MIGRARE 3. Operatiuni DDL in blocuri PL/SQL 4. MERGE cu NOT MATCHED pentru inserari 5. COMMENT statements directe (nu EXECUTE IMMEDIATE) 6. `pack_migrare.UpdateVersiune()` la sfarsit 7. `commit;` ### Nomenclatura - Fisiere: `ff_YYYY_MM_DD_NN_TYPE.sql` sau `co_YYYY_MM_DD_NN_TYPE.sql` - Exemple: `ff_2024_08_28_02_COMUN_EFACTURA.sql`, `co_2024_03_04_01_OBIECTE.sql` - **ff_** - Fast Forward, pentru modificari structurale si date - **co_** - Common Objects, pentru obiecte si definitii sistem ## Tipuri Comune de Modificari ### 1. Adaugare Coloane - Verificare existenta cu `PACK_MIGRARE.COLUMNEXIST()` - Executie in bloc PL/SQL cu `EXECUTE IMMEDIATE` - Adaugare `COMMENT ON COLUMN` pentru documentare ### 2. Inserare Date Configurare (OPTIUNI) - `MERGE INTO` cu `USING DUAL` - Doar clauza `WHEN NOT MATCHED` pentru idempotenta - Tipuri: CHARACTER, NUMERIC ### 3. Inserare Obiecte Sistem (DEF_OBIECTE) - MERGE pe `id_obiect` unic - Include relatii parinte-copil (`id_tata`) - Gestionare drepturi prin `DEF_GRUP_DREPT_OBIECTE` ### 4. Creare/Modificare View-uri - `CREATE OR REPLACE VIEW` - Join-uri complexe pentru agregare date - Alias-uri descriptive in romana ### 5. Update-uri Simple - UPDATE direct pentru corectii date - TRIM pentru curatare spatii - REPLACE pentru modificari cai/valori ## Utilizare Aceste fisiere servesc ca ghid si exemple pentru crearea scripturilor SQL de migrare sigure si idempotente in cadrul proiectului ROMFASTSQL.