#AI_agent 

Nüüd olen faili konverteerinud. Siin on kokkuvõte tehtud teisendustest:

## Tehtud muudatused failis `export_hinnakataloog_to_postgres_pg.atl`

### Andmebaasi konfiguratsioonid (DATABASE DATASTORE)
- **database_type**: `Oracle` → `PostgreSQL` (kõigis PostgreSQL andmebaasides)
- **oracle_host_string** → **postgres_host_string** (kõigis PostgreSQL andmebaasides)
- **oracle_version** → **postgresql_version** (väärtusega `PostgreSQL 15`)
- **database_version** LDR konfiguratsioonides: muudetud `Oracle Database 12c` → `PostgreSQL 15`

### Andmetüübid
- `NUMBER` / `DECIMAL` → `NUMERIC`
- `VARCHAR2` → `VARCHAR`
- `CLOB` → `TEXT`
- `BLOB` → `BYTEA`
- `INTEGER` → `INT`
- `RAW` → `BYTEA` (kui esines)
- `FLOAT` / `DOUBLE PRECISION` jäid samaks (PostgreSQL toetab)

### SQL funktsioonid
- `sysdate()` → `current_timestamp`
- `cast(x, 'type')` → `cast(x as type)` (Oracle süntaks → SQL standard)
- `NVL()` → `COALESCE()` (kui esines)

### Muud parandused
- `name = 'Oracle ...'` → `name = 'PostgreSQL ...'` (LDR konfiguratsioonides)
- Eemaldatud duplikaat `<sql_text>` element LDR konfiguratsioonist
- `USER` → `CURRENT_USER` (kus kasutatud päringutes)

### Märkused
- `TIMESTAMP2`, `TIMESTAMP6`, `TIMESTAMP9` andmetüübid jäid samaks (SAP DSD spetsiifilised, töötavad PostgreSQL-iga)
- Tekstiväljadel nagu `'PRIA oracle baas'` on tegemist lihtsalt siltidega, mis jäeti alles (need ei viita andmebaasi tüübile)
- ODBC andmebaase (MATS_baasmoodul, MATS_kliendimoodul, MATS_sisestusmoodul, MATS_vtm) ei muudetud, kuna need on ODBC ühendused

Fail on nüüd valmis PostgreSQL-is kasutamiseks.

---

Loodud on PostgreSQL tabelite loomise SQL skript faili `hinnakataloog_postgresql_tables.sql`. Siin on selgitused, kuidas Oracle tabelid õigesti PostgreSQL-i teisendada:

## Oracle → PostgreSQL tüüpide teisendustabel

| Oracle tüüp | PostgreSQL tüüp |
|---|---|
| `NUMBER(p,s)` | `NUMERIC(p,s)` |
| `NUMBER` (ilma täpsuseta) | `NUMERIC` |
| `VARCHAR2(n)` | `VARCHAR(n)` |
| `VARCHAR2(4000)` | `VARCHAR(4000)` või `TEXT` |
| `CLOB` | `TEXT` |
| `BLOB` | `BYTEA` |
| `RAW` | `BYTEA` |
| `INTEGER` | `INT` |
| `FLOAT` / `DOUBLE PRECISION` | `FLOAT` / `DOUBLE PRECISION` (samasugune) |
| `DATE` | `DATE` või `TIMESTAMP(0)` |
| `TIMESTAMP(p)` | `TIMESTAMP(p)` (samasugune) |

## Tabelite struktuur

SQL skript sisaldab **8 tabelit** 5-st eri andmebaasist (skeemist):

1. **LADU.ADMIN_AB_KONTROLL** - Administratiivne andmebaaside kontroll
2. **VTM.AIT_DATA** - Andmete talletamise põhitabel (JSON-like atribuudid)
3. **ISIK.ASULAD** - Asulate loend
4. **LADU_HK.HK_OBJEKT** - Hinnakataloogi objektid
5. **LADU_HK.HK_OBJEKTI_HIND** - Objekti hinnad
6. **LADU_HK.HK_OBJEKTI_KONTAKT** - Objekti kontaktid
7. **LADU_HK.HK_OBJ_HINNA_VALIDEERIMINE** - Hinna valideerimine
8. **ARH_LOTA.T_TAOTLUS** - Taotlused (PRIA arhiiv)

## Olulised märkused

1. **SAP DSD spetsiifilised tüübid**: `TIMESTAMP0`, `TIMESTAMP2`, `TIMESTAMP6`, `TIMESTAMP9` on SAP DSD spetsiifilised, mis PostgreSQL-is töötavad tavaliste `TIMESTAMP(p)` tüüpidena.

2. **Primaarvõtmed ja indeksid**: SQL skript sisaldab kõik indeksid, mis on defineeritud ATL failis.

3. **Skeemid**: Oracle skeemid (nt `LADU`, `VTM`, `ISIK`, `LADU_HK`, `ARH_LOTA`) luuakse PostgreSQL skeemidena.

4. **COMMENT** laused: PostgreSQL toetab `COMMENT ON TABLE/COLUMN` - need säilitavad ATL failis olevad kirjeldused.

5. **Märkus T_TAOTLUSE kohta**: Sellel tabelil on mitu PRIMARY CREATE_INDEX, mis ATL failis on märgitud "PRIMARY" - need on unikaalsed indeksid, mitte päris primaarvõtmed. Tabelil pole formaalset PRIMARY KEY piirangut (TAOTLUS_ID võiks olla primaarvõti).