Complete project setup with: - PACK_MIGRARE utility package - Migration script examples and patterns - Comprehensive documentation in CLAUDE.md and README.md - System instructions for SQL generation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
78 lines
2.8 KiB
Markdown
78 lines
2.8 KiB
Markdown
# 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. |