İçeriğe geç
IntoSQL ana sayfası

Oracle - PostgreSQL dönüştürme

SQL Developer'ın Database Export aracının veya SQLcl'in tabloları ve Insert ifadeleriyle yazdığı .sql dosyasını bırakın ve aynı tablolar, anahtarlar, indeksler ve verilerle bir PostgreSQL betiği indirin. PostgreSQL'in olduğu gibi tutamadığı her değer ve taşımadığı her nesne raporda listelenir.

Dosyanız
sqlshop_2024_oracle.sqlÖrnek dosya, 9,3 kB
Veritabanınız

18 satır dönüştürüldü, düzeltme yok, reddedilen yok

Göster

shop_2024_oracle.sql içindeki tablolarOracle dökümü · SQL Developer ile yazıldı · utf-8

  • customers8 satır
    7 sütun
    idbigint not null
    namevarchar(100) not null
    emailvarchar(150) not null
    countryvarchar(2) not null
    is_activesmallint not null
    signed_uptimestamp(0)
    created_attimestamp(0) not null
  • orders10 satır
    9 sütun
    idbigint not null
    customer_idbigint not null
    invoicebigint
    statusvarchar(10) not null
    totalnumeric(10,2) not null
    itemsinteger not null
    ordered_attimestamp(0) not null
    shipped_attimestamp(0)
    notevarchar(255)
-- Written by IntoSQL from a Oracle dump. Load it with: psql -v ON_ERROR_STOP=1 -f <file>
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET synchronous_commit = off;
SET maintenance_work_mem = '512MB';

CREATE SEQUENCE invoice_numbers INCREMENT BY 1 MINVALUE 1 START WITH 1020;
CREATE TABLE customers (
    id bigint GENERATED BY DEFAULT AS IDENTITY NOT NULL,
    name varchar(100) NOT NULL,
    email varchar(150) NOT NULL,
    country varchar(2) DEFAULT 'US' NOT NULL,
    is_active smallint DEFAULT 1 NOT NULL,
    signed_up timestamp(0),
    created_at timestamp(0) DEFAULT LOCALTIMESTAMP NOT NULL,
    CONSTRAINT customers_check1 CHECK (is_active IN (0, 1))
);

CREATE TABLE orders (
    id bigint GENERATED BY DEFAULT AS IDENTITY NOT NULL,
    customer_id bigint NOT NULL,
    invoice bigint DEFAULT (nextval('invoice_numbers')),
    status varchar(10) DEFAULT 'pending' NOT NULL,
    total numeric(10,2) NOT NULL,
    items integer DEFAULT 1 NOT NULL,
    ordered_at timestamp(0) NOT NULL,
    shipped_at timestamp(0),
    note varchar(255),
    CONSTRAINT orders_check1 CHECK (status IN ('pending', 'paid', 'shipped', 'cancelled'))
);

COPY customers (id, name, email, country, is_active, signed_up, created_at) FROM stdin;
1	Ana Martínez	ana@example.com	MX	1	2023-01-15 00:00:00	2023-01-15 10:24:00.000000
2	Zoë Müller	zoe@example.de	DE	1	2023-02-03 00:00:00	2023-02-03 08:11:42.000000
3	José Peña	jose@example.es	ES	0	2023-03-21 00:00:00	2023-03-21 19:05:17.000000
4	李雷	lilei@example.cn	CN	1	2023-05-09 00:00:00	2023-05-09 02:40:00.000000
5	Noah O'Brien	noah@example.ie	IE	1	\N	2023-06-30 14:00:00.000000
6	Amélie Laurent	amelie@example.fr	FR	1	2024-01-02 00:00:00	2024-01-02 09:30:00.000000
7	Ravi Patel	ravi@example.in	IN	0	2024-02-29 00:00:00	2024-02-29 23:59:59.000000
8	Sofia Rossi 🌻	sofia@example.it	IT	1	2024-04-12 00:00:00	2024-04-12 12:12:12.000000
\.

COPY orders (id, customer_id, invoice, status, total, items, ordered_at, shipped_at, note) FROM stdin;
1	1	1000	shipped	129.9	3	2024-03-01 10:00:00	2024-03-02 16:30:00	\N
2	2	1001	paid	54	1	2024-03-02 11:15:00	\N	Gift wrap 🎁
3	1	1002	cancelled	12.5	1	2024-03-03 09:45:00	\N	Customer changed their mind
4	4	1003	shipped	980	12	2024-03-05 02:10:00	2024-03-07 08:00:00	请小心轻放
5	5	1004	pending	45.75	2	2024-03-08 17:20:00	\N	Leave at the door; ring twice
6	6	1005	shipped	310.4	5	2024-03-10 13:00:00	2024-03-11 09:00:00	Fragile: "glass"
7	8	1006	paid	76.2	2	2024-03-11 18:45:00	\N	\N
8	2	1007	paid	19.99	1	2024-03-12 08:00:00	\N	Paid at the counter
9	3	1008	shipped	64	2	2024-03-14 15:30:00	\N	Shipping date never recorded
10	7	1009	paid	1499	1	2024-03-15 21:05:00	\N	C:\\Users\\ravi\\invoice.pdf
\.


-- Keys, indexes and constraints, after the rows so each builds once.
CREATE UNIQUE INDEX customers_customers_pk ON customers (id);
CREATE UNIQUE INDEX customers_customers_email_uk ON customers (email);
CREATE UNIQUE INDEX orders_orders_pk ON orders (id);
CREATE INDEX orders_orders_status_date_ix ON orders (status, ordered_at);
ALTER TABLE customers ADD CONSTRAINT customers_customers_pk PRIMARY KEY USING INDEX customers_customers_pk;
ALTER TABLE customers ADD CONSTRAINT customers_customers_email_uk UNIQUE USING INDEX customers_customers_email_uk;
ALTER TABLE orders ADD CONSTRAINT orders_orders_pk PRIMARY KEY USING INDEX orders_orders_pk;
ALTER TABLE orders ADD CONSTRAINT orders_customer_fk FOREIGN KEY (customer_id) REFERENCES customers (id) NOT VALID;
DO $f$ BEGIN
    ALTER TABLE orders VALIDATE CONSTRAINT orders_customer_fk;
EXCEPTION WHEN foreign_key_violation THEN
    RAISE WARNING 'foreign key % has rows without a parent: it stays NOT VALID, and new rows are checked', 'orders_customer_fk';
END $f$;
SELECT setval(pg_get_serial_sequence('customers', 'id'), LEAST(GREATEST(COALESCE((SELECT max(id) FROM customers)::numeric, 0) + 1, 1), 9223372036854775807)::bigint, false);
COMMENT ON TABLE customers IS 'People who bought at least once';
SELECT setval(pg_get_serial_sequence('orders', 'id'), LEAST(GREATEST(COALESCE((SELECT max(id) FROM orders)::numeric, 0) + 1, 1), 9223372036854775807)::bigint, false);

Düzeltmeler

Düzeltilecek bir şey yoktu.

Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.

Diğer örnekler:

Oracle ile PostgreSQL arasında neler değişir

Her satır, dönüştürücünün uyguladığı bir kuraldır; yanında, kural verilerinizde bir şeyi değiştirdiğinde yazılan rapor satırı yer alır.

  • BOOLEAN (23ai)

    boolean

    TRUE ve FALSE, true ve false olarak kalır.

  • VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONG

    varchar(n) ve text

    Oracle ister bayt ister karakter saymış olsun, uzunluklar karakter sayar; böylece her değer sığar.

  • NUMBER, NUMBER(p,s), FLOAT(b)

    numeric(p,s) veya bigint

    NUMBER her basamağı korur; duyarlığı olmayan ve tüm değerleri en fazla 18 basamaklı tam sayı olan bir NUMBER 64 bitlik tam sayı olur ve negatif bir ölçek ondalık noktadan önce o kadar basamak tutar.

  • DATE, TIMESTAMP(p)

    timestamp(p)

    Oracle'ın DATE türü saniyesine kadar bir saat tutar, yani bir tarih ve saattir. Amerikan veya Alman oturumundaki bir dışa aktarım tarihleri saatleri ve yüzyılları olmadan (DD-MON-RR) yazar; bunları korumak için ISO oturumunda (SYYYY-MM-DD HH24:MI:SS) dışa aktarın.

  • TIMESTAMP(7) to TIMESTAMP(9)

    saniyenin altı basamağı, yedincisi kesilir

    PostgreSQL mikrosaniyeleri tutar; yedinci basamak (100 nanosaniye) yuvarlanmaz, kesilir, böylece hiçbir değer sonraki saniyeye veya güne kaymaz.

    Rapor satırı: fraction_cut

  • TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE

    timestamptz, aynı anlar

    timestamptz anı korur; PostgreSQL onu her değerin sahip olduğu fark yerine oturumun saat diliminde gösterir.

  • JSON (21c), and CLOB holding JSON

    jsonb

    Aynı JSON değerleri; dışa aktarımın 'null' olarak yazdığı bir SQL NULL, NULL olarak kalır.

  • BLOB, RAW(n), LONG RAW

    bytea

    Baytlar bayt olarak kalır.

  • ROWID, UROWID, XMLTYPE, SDO_GEOMETRY

    text, XMLTYPE için xml

    Oracle'ın kendi türlerinin karşılığı yoktur; değerleri, ROWID değerleri dahil, metinlerini korur, ancak Oracle dışında bir anlam taşımazlar.

    Rapor satırı: type_replaced

  • collations that ignore case (BINARY_CI)

    tam karşılaştırma

    PostgreSQL metni tam karşılaştırır, bu yüzden Oracle'da büyük/küçük harfi yok sayan sütunlar artık Ana ile ana'yı ayırt eder.

    Rapor satırı: case_insensitive_collation

  • identity columns, and a sequence a BEFORE INSERT trigger assigns

    en yüksek id'den sonra devam eden GENERATED BY DEFAULT AS IDENTITY

    Kopyalanan id'ler olduğu gibi yüklenir ve sayaç en yüksek id'den sonra devam eder. Bir tetikleyicinin bir sequence'tan doldurduğu sütun (12c öncesi yöntem) da kimlik sütunu olur.

  • CREATE SEQUENCE

    aynı seçeneklerle CREATE SEQUENCE

    Dışa aktarım, bir sequence'ın ulaştığı değeri START WITH olarak yazar; böylece oradan devam eder.

  • virtual columns (GENERATED ALWAYS AS ... VIRTUAL)

    üretilen sütunlar, STORED

    PostgreSQL 13 ile 17 üretilen sütunları yalnızca saklar; formül aynıdır ve ||, NULL'u Oracle'daki gibi boş sayacak şekilde yazılır.

    Rapor satırı: virtual_as_stored

  • virtual columns with functions IntoSQL doesn't write, and the || operator

    düz bir sütun

    PostgreSQL için yazılamayan bir formül düz bir sütun ve bir rapor satırı bırakır; dışa aktarımın sanal sütunlar için yazdığı değerler dışarıda bırakılır ve PostgreSQL bunları hesaplayamaz.

    Rapor satırı: generated_not_translated

  • defaults with functions IntoSQL doesn't write (SYS_GUID(), ||)

    varsayılan değer yok

    PostgreSQL için yazılamayan bir varsayılan değer dışarıda bırakılır ve raporlanır.

    Rapor satırı: default_not_translated

  • CHECK constraints

    çevrilir

    Aynı CHECK kısıtları, her satır yüklenirken denetlenir.

  • CHECK constraints with functions IntoSQL doesn't write

    oluşturulmaz

    PostgreSQL için yazılamayan bir CHECK kısıtı dışarıda bırakılır ve raporlanır.

    Rapor satırı: check_skipped

  • CHECK constraints that are DISABLE or ENABLE NOVALIDATE

    oluşturulmaz

    Oracle bu CHECK kısıtlarını zaten var olan satırlara uygulamaz, bu yüzden satırlar onları ihlal edebilir.

    Rapor satırı: check_not_enforced

  • function-based, bitmap and domain indexes

    oluşturulmaz

    IntoSQL sütunlar üzerinde b-tree indeksleri yazar; diğerlerini yüklemeden sonra yeniden oluşturun.

    Rapor satırı: index_skipped

  • foreign keys

    satırlardan sonra yabancı anahtarlar

    Satırlar herhangi bir sırada yüklenir ve anahtarlar onları sonradan denetler.

  • foreign keys to tables the export doesn't create, and DISABLE or NOVALIDATE ones

    oluşturulmaz

    Bir anahtar, var olmayan bir tabloya başvuramaz ve Oracle'ın denetlemediği bir anahtarın üst satırı olmayan satırları olabilir.

    Rapor satırı: foreign_key_skipped

  • partitioned tables

    her bölümün satırlarını içeren tek tablo

    Satırlar aynıdır; gerekiyorsa tabloyu PostgreSQL'de yeniden bölümleyin.

    Rapor satırı: partitions_dropped

  • NOT NULL columns with values that become NULL

    NOT NULL kaldırılır

    Değerleri NULL olmak zorunda kalan bir sütun NOT NULL kısıtını koruyamaz, yoksa yükleme durur.

    Rapor satırı: not_null_relaxed

  • views, synonyms, types, packages, procedures, functions and other triggers

    raporda listelenir

    Kodları PL/SQL ile yazılmıştır, bu yüzden yeniden oluşturmanız için listelenirler.

    Rapor satırı: not_converted_objects

  • exports without CREATE TABLE (data only)

    değerlerden okunan türler

    Yalnızca veri içeren bir dışa aktarımda yalnızca satırlar vardır, bu yüzden türler değerlerden gelir.

    Rapor satırı: no_schema

  • expressions in INSERT values other than the ones exports write

    NULL

    Veritabanı çalıştırmayan bir dönüştürücü bunları hesaplayamaz; dışa aktarımların yazdığı to_date, to_timestamp, TO_CLOB, HEXTORAW ve diğerleri okunur.

    Rapor satırı: expression_value

  • types IntoSQL doesn't know, and object types

    text

    Metin her değeri tutar; yüklemeden sonra türü değiştirin.

    Rapor satırı: unknown_type

  • dates before year 1 and time zones given as region names

    NULL

    Tarih olmayan bir değer NULL olur ve rapor onu sayar.

    Rapor satırı: date_out_of_range

  • NaN and Infinity in BINARY_FLOAT and BINARY_DOUBLE

    NaN ve Infinity korunur

    PostgreSQL'in kayan noktalı türleri NaN ve sonsuzluğu tutar.

  • NUL characters in text

    kaldırılır

    PostgreSQL'in metni NUL karakteri tutamaz. Karakter kaldırılır ve rapor bu değerleri sayar.

    Rapor satırı: nul_removed

  • text that isn't valid in its encoding

    hatalı baytlar yerine koyma karakteri olarak

    PostgreSQL metni geçerli UTF-8 olmalıdır.

    Rapor satırı: invalid_utf8_replaced

  • text decoded twice (ñ)

    olduğu gibi kopyalanır

    Betik tam olarak bu karakterleri içerir, bu yüzden kopyalanırlar; rapor onları gösterir.

    Rapor satırı: mojibake_suspected

Oracle içindePostgreSQL içindeRapor satırı
BOOLEAN (23ai)booleanTRUE ve FALSE, true ve false olarak kalır.
VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONGvarchar(n) ve textOracle ister bayt ister karakter saymış olsun, uzunluklar karakter sayar; böylece her değer sığar.
NUMBER, NUMBER(p,s), FLOAT(b)numeric(p,s) veya bigintNUMBER her basamağı korur; duyarlığı olmayan ve tüm değerleri en fazla 18 basamaklı tam sayı olan bir NUMBER 64 bitlik tam sayı olur ve negatif bir ölçek ondalık noktadan önce o kadar basamak tutar.
DATE, TIMESTAMP(p)timestamp(p)Oracle'ın DATE türü saniyesine kadar bir saat tutar, yani bir tarih ve saattir. Amerikan veya Alman oturumundaki bir dışa aktarım tarihleri saatleri ve yüzyılları olmadan (DD-MON-RR) yazar; bunları korumak için ISO oturumunda (SYYYY-MM-DD HH24:MI:SS) dışa aktarın.
TIMESTAMP(7) to TIMESTAMP(9)saniyenin altı basamağı, yedincisi kesilirPostgreSQL mikrosaniyeleri tutar; yedinci basamak (100 nanosaniye) yuvarlanmaz, kesilir, böylece hiçbir değer sonraki saniyeye veya güne kaymaz.fraction_cut
TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONEtimestamptz, aynı anlartimestamptz anı korur; PostgreSQL onu her değerin sahip olduğu fark yerine oturumun saat diliminde gösterir.
JSON (21c), and CLOB holding JSONjsonbAynı JSON değerleri; dışa aktarımın 'null' olarak yazdığı bir SQL NULL, NULL olarak kalır.
BLOB, RAW(n), LONG RAWbyteaBaytlar bayt olarak kalır.
ROWID, UROWID, XMLTYPE, SDO_GEOMETRYtext, XMLTYPE için xmlOracle'ın kendi türlerinin karşılığı yoktur; değerleri, ROWID değerleri dahil, metinlerini korur, ancak Oracle dışında bir anlam taşımazlar.type_replaced
collations that ignore case (BINARY_CI)tam karşılaştırmaPostgreSQL metni tam karşılaştırır, bu yüzden Oracle'da büyük/küçük harfi yok sayan sütunlar artık Ana ile ana'yı ayırt eder.case_insensitive_collation
identity columns, and a sequence a BEFORE INSERT trigger assignsen yüksek id'den sonra devam eden GENERATED BY DEFAULT AS IDENTITYKopyalanan id'ler olduğu gibi yüklenir ve sayaç en yüksek id'den sonra devam eder. Bir tetikleyicinin bir sequence'tan doldurduğu sütun (12c öncesi yöntem) da kimlik sütunu olur.
CREATE SEQUENCEaynı seçeneklerle CREATE SEQUENCEDışa aktarım, bir sequence'ın ulaştığı değeri START WITH olarak yazar; böylece oradan devam eder.
virtual columns (GENERATED ALWAYS AS ... VIRTUAL)üretilen sütunlar, STOREDPostgreSQL 13 ile 17 üretilen sütunları yalnızca saklar; formül aynıdır ve ||, NULL'u Oracle'daki gibi boş sayacak şekilde yazılır.virtual_as_stored
virtual columns with functions IntoSQL doesn't write, and the || operatordüz bir sütunPostgreSQL için yazılamayan bir formül düz bir sütun ve bir rapor satırı bırakır; dışa aktarımın sanal sütunlar için yazdığı değerler dışarıda bırakılır ve PostgreSQL bunları hesaplayamaz.generated_not_translated
defaults with functions IntoSQL doesn't write (SYS_GUID(), ||)varsayılan değer yokPostgreSQL için yazılamayan bir varsayılan değer dışarıda bırakılır ve raporlanır.default_not_translated
CHECK constraintsçevrilirAynı CHECK kısıtları, her satır yüklenirken denetlenir.
CHECK constraints with functions IntoSQL doesn't writeoluşturulmazPostgreSQL için yazılamayan bir CHECK kısıtı dışarıda bırakılır ve raporlanır.check_skipped
CHECK constraints that are DISABLE or ENABLE NOVALIDATEoluşturulmazOracle bu CHECK kısıtlarını zaten var olan satırlara uygulamaz, bu yüzden satırlar onları ihlal edebilir.check_not_enforced
function-based, bitmap and domain indexesoluşturulmazIntoSQL sütunlar üzerinde b-tree indeksleri yazar; diğerlerini yüklemeden sonra yeniden oluşturun.index_skipped
foreign keyssatırlardan sonra yabancı anahtarlarSatırlar herhangi bir sırada yüklenir ve anahtarlar onları sonradan denetler.
foreign keys to tables the export doesn't create, and DISABLE or NOVALIDATE onesoluşturulmazBir anahtar, var olmayan bir tabloya başvuramaz ve Oracle'ın denetlemediği bir anahtarın üst satırı olmayan satırları olabilir.foreign_key_skipped
partitioned tablesher bölümün satırlarını içeren tek tabloSatırlar aynıdır; gerekiyorsa tabloyu PostgreSQL'de yeniden bölümleyin.partitions_dropped
NOT NULL columns with values that become NULLNOT NULL kaldırılırDeğerleri NULL olmak zorunda kalan bir sütun NOT NULL kısıtını koruyamaz, yoksa yükleme durur.not_null_relaxed
views, synonyms, types, packages, procedures, functions and other triggersraporda listelenirKodları PL/SQL ile yazılmıştır, bu yüzden yeniden oluşturmanız için listelenirler.not_converted_objects
exports without CREATE TABLE (data only)değerlerden okunan türlerYalnızca veri içeren bir dışa aktarımda yalnızca satırlar vardır, bu yüzden türler değerlerden gelir.no_schema
expressions in INSERT values other than the ones exports writeNULLVeritabanı çalıştırmayan bir dönüştürücü bunları hesaplayamaz; dışa aktarımların yazdığı to_date, to_timestamp, TO_CLOB, HEXTORAW ve diğerleri okunur.expression_value
types IntoSQL doesn't know, and object typestextMetin her değeri tutar; yüklemeden sonra türü değiştirin.unknown_type
dates before year 1 and time zones given as region namesNULLTarih olmayan bir değer NULL olur ve rapor onu sayar.date_out_of_range
NaN and Infinity in BINARY_FLOAT and BINARY_DOUBLENaN ve Infinity korunurPostgreSQL'in kayan noktalı türleri NaN ve sonsuzluğu tutar.
NUL characters in textkaldırılırPostgreSQL'in metni NUL karakteri tutamaz. Karakter kaldırılır ve rapor bu değerleri sayar.nul_removed
text that isn't valid in its encodinghatalı baytlar yerine koyma karakteri olarakPostgreSQL metni geçerli UTF-8 olmalıdır.invalid_utf8_replaced
text decoded twice (ñ)olduğu gibi kopyalanırBetik tam olarak bu karakterleri içerir, bu yüzden kopyalanırlar; rapor onları gösterir.mojibake_suspected

Betiği PostgreSQL veritabanına yükleyin

Betik tabloları oluşturur, satırları kopyalar, ardından anahtarları, indeksleri ve yabancı anahtarları ekler; böylece hızlı yüklenir ve ilk hatada durur.

psql -v ON_ERROR_STOP=1 -d mydb -f oracle.postgresql.sql

Yabancı anahtarlar NOT VALID olarak eklenir ve ardından doğrulanır. Bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıtın sorunlu olduğunu söyler.

Büyük bir döküm için önce veritabanını oluşturun ve betiği sunucuyla aynı makinede psql ile çalıştırın.

IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan PostgreSQL veritabanına yükler; betik yazmanız gerekmez.

En iyi sonuç için Oracle dökümü nasıl alınır

Dönüştürücü, dökümün içerdiğini okur. Bu seçenekler verilerinizin daha fazlasını dökümde tutar:

  • SQL Developer'da DDL ve Insert veri biçimiyle Tools, Database Export'u seçin. SQLcl aynısını SET SQLFORMAT INSERT ile yazar.
  • Dışa aktarmadan önce ALTER SESSION SET NLS_DATE_FORMAT = 'SYYYY-MM-DD HH24:MI:SS' çalıştırın: varsayılan biçim tarihleri saatleri ve yüzyılları olmadan yazar.
  • exp veya expdp ile alınan bir .dmp dosyası ikilidir: dosyayı bir Oracle veritabanına, örneğin Docker'daki Oracle Database Free'ye içe aktarın ve SQL Developer ile dışa aktarın.

Neler dönüştürülmez

Görünümler, paketler, saklı yordamlar, fonksiyonlar, tetikleyiciler, türler ve eş anlamlılar PL/SQL ile yazılır. Raporda adlarıyla listelenirler, asla sessizce atlanmazlar; böylece onları PostgreSQL için yeniden yazabilirsiniz.

Oracle - PostgreSQL dönüştürme hakkında sorular

Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası

Dökümüm yükleniyor mu?

Hayır. Dönüştürücü tarayıcınızda çalışır ve dökümü diskinizden parça parça okur; böylece döküm bilgisayarınızdan hiç çıkmaz. Masaüstü uygulaması ve komut satırı da bilgisayarınızda dönüştürür.

Döküm ne kadar büyük olabilir?

Dönüştürücü dökümün tamamını asla bellekte tutmaz: dosyayı aralıklar halinde iki kez okur ve betiği ilerledikçe yazar. Birkaç gigabaytlık dökümler tarayıcıda, masaüstü uygulamasında ve komut satırıyla dönüştürülür.

exp veya expdp ile alınan bir .dmp dosyasını dönüştürebilir miyim?

Doğrudan değil: Data Pump ve özgün Export, yalnızca Oracle'ın okuyabildiği ikili bir biçim yazar. Dosyayı herhangi bir Oracle veritabanına içe aktarın (Oracle Database Free Docker'da çalışır) ve SQL Developer'ın Database Export aracıyla veya SQLcl ile dışa aktarın. Dönüştürücü bir .dmp dosyası aldığında bunu söyler.

Dışa aktarım hangi Oracle sürümlerinden gelebilir?

Oracle 11g ve sonrasından, DBMS_METADATA tablo tanımlarıyla SQL Developer ve SQLcl dışa aktarımları. Her test dışa aktarımı Amerikan, Alman ve ISO oturumlarında Oracle 21c ve 23ai'den gelir ve kaynağıyla hücre hücre karşılaştırılır.

NUMBER, DATE ve diğer Oracle türleri ne olur?

NUMBER numeric olur, her değer tam sayıysa bigint; DATE saatini koruyarak timestamp olur; CLOB text, BLOB ve RAW bytea, BINARY_DOUBLE NaN ve Infinity ile double precision, interval'lar ise interval olur.

Kimlik sütunları ve sequence'lar korunuyor mu?

Evet. Kimlik sütunları kimlik sütunu olarak kalır ve en yüksek id'den sonra devam eder; bir tetikleyicinin bir sequence'tan doldurduğu sütun da öyle. Sequence'lar, dışa aktarımın ulaştıklarını söylediği değerden devam eder.

PL/SQL paketleri, saklı yordamlar ve tetikleyiciler ne olur?

Raporda adlarıyla listelenirler ve dönüştürülmezler, çünkü her veritabanı onları kendi dilinde yazar.

Betik hangi PostgreSQL sürümlerinde yüklenir?

PostgreSQL 13 ile 18 arası. Aynı betik her birinde yüklenir ve bir sorun çıkarsa ilk hatada durur.