---
title: "Oracle dışa aktarımını başka bir sürüme taşıyın"
description: "Oracle 11g veya sonrasından bir SQL Developer veya SQLcl dışa aktarımını Oracle 19c ve sonrasında yüklenen bir betiğe dönüştürün; aynı tablolar, anahtarlar ve verilerle."
canonical: https://intosql.com/tr/oracle-oracle-donusturme
last_updated: 2026-10-15
---

# Oracle dışa aktarımını başka bir sürüme taşıyın

SQL Developer'ın Database Export aracının veya SQLcl'in tabloları ve Insert ifadeleriyle yazdığı .sql dosyasını bırakın ve Oracle 19c ve sonrasında yüklenen bir betik indirin. NUMBER, DATE, TIMESTAMP, LOB'lar, identity'ler ve diziler olduğu gibi kalır, XMLTYPE ve JSON metinlerini bir CLOB içinde korur ve her değişiklik raporda listelenir.

[Oracle - Oracle taşıma kılavuzu](https://intosql.com/docs/migrations/oracle-to-oracle)

[Oracle - Oracle veri türleri](https://intosql.com/docs/types/oracle-to-oracle)

## Dosya ile betik 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.

| Dosyada | Betikte | Rapor satırı |
| --- | --- | --- |
| BOOLEAN (23ai) | 23ai'de BOOLEAN, değilse 0 ve 1'i denetleyen bir CHECK ile NUMBER(1) |  |
| VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONG | BYTE veya CHAR uzunluklarıyla aynı türler |  |
| VARCHAR2 and NVARCHAR2 past what the target's own types hold | her değer 4000 bayta sığıyorsa VARCHAR2(4000 CHAR), değilse CLOB | `text_as_lob` |
| NUMBER, NUMBER(p,s), FLOAT(b) | aynı NUMBER türleri |  |
| INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND | aynı INTERVAL türleri |  |
| DATE, TIMESTAMP(p) | bildirildiği gibi DATE ve TIMESTAMP(p) |  |
| TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE | aynı türler |  |
| JSON (21c), and CLOB holding JSON | 21c ve sonrasında JSON, değilse CLOB |  |
| BLOB, RAW(n), LONG RAW | aynı türler; LONG RAW, BLOB olarak |  |
| ROWID, UROWID, XMLTYPE, SDO_GEOMETRY | metinleriyle CLOB | `type_replaced` |
| collations that ignore case (BINARY_CI) | tam karşılaştırma | `case_insensitive_collation` |
| identity columns, and a sequence a BEFORE INSERT trigger assigns | en yüksek id'den sonra devam eden GENERATED BY DEFAULT ON NULL AS IDENTITY |  |
| identity columns the target can't count | düz bir tam sayı | `counter_dropped` |
| CREATE SEQUENCE | aynı seçeneklerle CREATE SEQUENCE |  |
| virtual columns (GENERATED ALWAYS AS ... VIRTUAL) | sanal sütunlar | `stored_as_virtual` |
| virtual columns with functions IntoSQL doesn't write, and the || operator | düz bir sütun | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write (SYS_GUID(), ||) | varsayılan değer yok | `default_not_translated` |
| CHECK constraints | çevrilir |  |
| CHECK constraints with functions IntoSQL doesn't write | oluşturulmaz | `check_skipped` |
| CHECK constraints that are DISABLE or ENABLE NOVALIDATE | oluşturulmaz | `check_not_enforced` |
| function-based, bitmap and domain indexes | oluşturulmaz | `index_skipped` |
| foreign keys | veriden sonra ENABLE NOVALIDATE, ardından yetim satırlar için uyarıyla doğrulanır |  |
| ON DELETE CASCADE that cascades in a cycle or along a second path | kaldırılır | `foreign_key_action_unsupported` |
| foreign keys to tables the export doesn't create, and DISABLE or NOVALIDATE ones | oluşturulmaz | `foreign_key_skipped` |
| names longer than Oracle 12.1 allows | kısaltılır | `name_shortened` |
| partitioned tables | her bölümün satırlarını içeren tek tablo | `partitions_dropped` |
| several schemas in one export | tek şema, tabloların adı önce şemalarının adıyla başlar | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL kaldırılır | `not_null_relaxed` |
| views, synonyms, types, packages, procedures, functions and other triggers | raporda listelenir | `not_converted_objects` |
| exports without CREATE TABLE (data only) | değerlerden okunan türler | `no_schema` |
| expressions in INSERT values other than the ones exports write | NULL | `expression_value` |
| types IntoSQL doesn't know, and object types | CLOB | `unknown_type` |
| dates before year 1 and time zones given as region names | NULL | `date_out_of_range` |
| NaN and Infinity in BINARY_FLOAT and BINARY_DOUBLE | NaN ve Infinity korunur |  |
| NUL characters in text | korunur |  |
| text that isn't valid in its encoding | hatalı baytlar yerine koyma karakteri olarak | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | olduğu gibi kopyalanır | `mojibake_suspected` |

## Betiği Oracle 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.

```shell
NLS_LANG=.AL32UTF8 sqlplus -S -L user@//localhost/mydb @oracle.oracle.sql
```

Yabancı anahtarlar ENABLE NOVALIDATE ile eklenir, böylece yeni satırlar hemen denetlenir, ardından doğrulanır. Eski bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıt olduğunu söyler ve onu doğrulanmamış bırakır.

Büyük bir döküm için SQL*Plus'ı veritabanıyla aynı makinede çalıştırın. Betik her 100 satırda bir commit yapar. Betiği çalıştıran kullanıcının CREATE TABLE, CREATE SEQUENCE, CREATE TRIGGER ve CREATE PROCEDURE yetkilerine ve tablo alanında kotaya ihtiyacı vardır.

## 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

Oracle kendi dilinde yazılmış görünümler, tetikleyiciler, yordamlar, fonksiyonlar ve diğer nesneler raporda adlarıyla listelenir, asla sessizce atlanmaz; böylece yeniden oluşturmadan önce her birini yüklediğiniz Oracle sürümüyle karşılaştırabilirsiniz.

## Oracle sürümleri arasında taşıma hakkında sorular

### 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?

Olduğu gibi kalırlar: duyarlığıyla NUMBER, DATE, TIMESTAMP, interval'lar, uzunluklarıyla CHAR ve VARCHAR2, RAW ve LOB'lar. XMLTYPE ve JSON metinlerini bir CLOB içinde korur, böylece betik 19c'de yüklenir.

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

Evet. Kimlik sütunları ve sequence'lar olduğu gibi kalır ve 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; böylece tablolar yüklendikten sonra onları yeniden oluşturabilirsiniz.

### Betik hangi Oracle sürümlerinde yüklenir?

Oracle 19c ve sonrası. Her test dışa aktarımı 21c ve 23ai üzerinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: Oracle

- [Oracle - PostgreSQL](https://intosql.com/tr/oracle-postgresql-donusturme)
- [Oracle - MySQL](https://intosql.com/tr/oracle-mysql-donusturme)
- [Oracle - MariaDB](https://intosql.com/tr/oracle-mariadb-donusturme)
- [Oracle - SQLite](https://intosql.com/tr/oracle-sqlite-donusturme)
- [Oracle - SQL Server](https://intosql.com/tr/oracle-sql-server-donusturme)

## Hedef: Oracle

- [MySQL - Oracle](https://intosql.com/tr/mysql-oracle-donusturme)
- [MariaDB - Oracle](https://intosql.com/tr/mariadb-oracle-donusturme)
- [PostgreSQL - Oracle](https://intosql.com/tr/postgresql-oracle-donusturme)
- [SQL Server - Oracle](https://intosql.com/tr/sql-server-oracle-donusturme)
- [SQLite - Oracle](https://intosql.com/tr/sqlite-oracle-donusturme)

## Kılavuz ve tüm ikililer

- [Oracle - Oracle taşıma kılavuzu](https://intosql.com/docs/migrations/oracle-to-oracle)
- [Oracle - Oracle veri türleri](https://intosql.com/docs/types/oracle-to-oracle)
- [Tüm veritabanı ikilileri](https://intosql.com/tr/veritabani-tasima)
