Oracle to postgre.md 3.6 KB

#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: OraclePostgreSQL (kõigis PostgreSQL andmebaasides)
  • oracle_host_stringpostgres_host_string (kõigis PostgreSQL andmebaasides)
  • oracle_versionpostgresql_version (väärtusega PostgreSQL 15)
  • database_version LDR konfiguratsioonides: muudetud Oracle Database 12cPostgreSQL 15

Andmetüübid

  • NUMBER / DECIMALNUMERIC
  • VARCHAR2VARCHAR
  • CLOBTEXT
  • BLOBBYTEA
  • INTEGERINT
  • RAWBYTEA (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
  • USERCURRENT_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).