#AI_agent
Nüüd olen faili konverteerinud. Siin on kokkuvõte tehtud teisendustest:
export_hinnakataloog_to_postgres_pg.atlOracle → PostgreSQL (kõigis PostgreSQL andmebaasides)PostgreSQL 15)Oracle Database 12c → PostgreSQL 15NUMBER / DECIMAL → NUMERICVARCHAR2 → VARCHARCLOB → TEXTBLOB → BYTEAINTEGER → INTRAW → BYTEA (kui esines)FLOAT / DOUBLE PRECISION jäid samaks (PostgreSQL toetab)sysdate() → current_timestampcast(x, 'type') → cast(x as type) (Oracle süntaks → SQL standard)NVL() → COALESCE() (kui esines)name = 'Oracle ...' → name = 'PostgreSQL ...' (LDR konfiguratsioonides)<sql_text> element LDR konfiguratsioonistUSER → CURRENT_USER (kus kasutatud päringutes)TIMESTAMP2, TIMESTAMP6, TIMESTAMP9 andmetüübid jäid samaks (SAP DSD spetsiifilised, töötavad PostgreSQL-iga)'PRIA oracle baas' on tegemist lihtsalt siltidega, mis jäeti alles (need ei viita andmebaasi tüübile)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 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) |
SQL skript sisaldab 8 tabelit 5-st eri andmebaasist (skeemist):
SAP DSD spetsiifilised tüübid: TIMESTAMP0, TIMESTAMP2, TIMESTAMP6, TIMESTAMP9 on SAP DSD spetsiifilised, mis PostgreSQL-is töötavad tavaliste TIMESTAMP(p) tüüpidena.
Primaarvõtmed ja indeksid: SQL skript sisaldab kõik indeksid, mis on defineeritud ATL failis.
Skeemid: Oracle skeemid (nt LADU, VTM, ISIK, LADU_HK, ARH_LOTA) luuakse PostgreSQL skeemidena.
COMMENT laused: PostgreSQL toetab COMMENT ON TABLE/COLUMN - need säilitavad ATL failis olevad kirjeldused.
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).