View a markdown version of this page

Pengaturan konversi Oracle ke PostgreSQL - AWS Database Migration Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengaturan konversi Oracle ke PostgreSQL

Pengaturan berikut berlaku ketika sumbernya adalah Oracle dan targetnya adalah Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL. Anda dapat mengonfigurasi pengaturan ini menggunakan AWS Management Console atau operasi ModifyConversionConfigurationAPI.

Topik ini mencakup pengaturan khusus untuk jalur konversi Oracle ke PostgreSQL. Selain pengaturan ini, Konversi Skema DMS menyediakan pengaturan yang berlaku untuk semua pasangan sumber dan target, seperti tingkat keparahan untuk komentar item tindakan di SQL yang dikonversi dan opsi untuk menggunakan AI generatif untuk konversi. Untuk pengaturan tersebut, lihatPengaturan konversi umum.

Saat Anda menggunakan API atau AWS CLI, tentukan pengaturan jalur konversi di bawah nama bagianORACLE_TO_POSTGRESQL,ORACLE_TO_POSTGRESQL_14, atau. ORACLE_TO_POSTGRESQL_15 Ketiga bagian berversi menerima kunci yang sama. Untuk menemukan nama bagian mana yang digunakan proyek Anda, panggil DescribeConversionConfigurationdulu dan perbarui hanya bagian yang ada dalam respons.

Setiap pengaturan menunjukkan AWS Management Console label diikuti oleh API dan nama parameter AWS CLI dalam tanda kurung. Gunakan nama parameter saat mengonfigurasi pengaturan dengan API atau AWS CLI. Pengaturan tercantum dalam urutan yang sama dengan yang muncul di AWS Management Console.

Versi mesin target (ORACLE_TO_POSTGRESQL_target_engine_version)

Pilih versi mesin untuk database target Anda. Pengaturan ini adalah fitur versi utama PostgreSQL yang menetapkan target Konversi Skema DMS untuk konversi, dan menentukan bagian pengaturan berversi mana yang diterapkan Konversi Skema DMS (atau). ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 Nilai 15 menargetkan fitur PostgreSQL 15 dan versi yang lebih baru, dan menargetkan fitur PostgreSQL 14, sehingga database 14 target Anda dapat menjalankan versi yang lebih baru daripada nilai yang Anda pilih (misalnya, nilai untuk target PostgreSQL 16). 15 Tidak seperti pengaturan lain di halaman ini, pengaturan ini tidak disimpan di bagian jalur konversi. Sebaliknya, itu disimpan di Conversion version bagian tingkat atas, seperti yang ditunjukkan pada contoh berikut.

{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }

Jenis: String (14|15)

Default: 15

Tampilan terwujud () MaterializedViewConvert

Menentukan bagaimana DMS Schema Conversion mengkonversi tampilan terwujud Oracle pada target.

API/CLI nilai Hasil pada target
TABLE Konversi Skema DMS membuat tabel biasa dengan kolom yang sama. Gunakan ini saat Anda mengelola penyegaran secara manual atau dengan alat replikasi.
MATERIALIZED_VIEW Konversi Skema DMS menciptakan PostgreSQL. MATERIALIZED VIEW Gunakan ini ketika target mendukungREFRESH MATERIALIZED VIEW.

Jenis: String (TABLE|MATERIALIZED_VIEW)

Default: TABLE

Hasilkan id baris (GenerateRowId)

Database Oracle sumber Anda dapat menggunakan ROWID pseudocolumn. PostgreSQL tidak mendukung fungsionalitas serupa. Pengaturan ini menentukan apakah Konversi Skema DMS mengemulasi ROWID pseudocolumn dalam kode yang dikonversi, dan tipe data yang digunakan DMS Schema Conversion untuk emulasi.

Label konsol API/CLI nilai Perilaku
Jangan menghasilkan false Konversi Skema DMS tidak meniru ROWID pseudocolumn dan meninggalkan referensi sebagai item tindakan. Gunakan ini ketika kode Oracle sumber Anda tidak digunakanROWID. Kode yang dikonversi berjalan lebih cepat.
Gunakan tipe data bigint untuk meniru pseudocolumn ROWID true Konversi Skema DMS mengemulasi ROWID pseudocolumn dalam kode yang dikonversi dengan menggunakan tipe data. bigint
Gunakan karakter yang bervariasi tipe data untuk meniru pseudocolumn ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPE Konversi Skema DMS mengemulasi ROWID pseudocolumn dalam kode yang dikonversi dengan menggunakan tipe data. character varying

Jenis: String (enum)

Default: false

Kode

Pilih pengaturan konversi yang spesifik untuk kode Oracle sumber Anda.

Gunakan pemetaan tipe data yang dioptimalkan untuk kolom tipe data NUMBER () UseOptimizedMappingForNumberConversion

Menentukan apakah DMS Schema Conversion memetakan setiap NUMBER kolom Oracle ke tipe data numerik yang paling sesuai berdasarkan presisi dan skala.

  • true— Konversi Skema DMS memetakan setiap NUMBER kolom ke jenis numerik PostgreSQL yang paling spesifik (misalnya,, SMALLINTINTEGER, atau) berdasarkan presisi dan skalanya. BIGINT

  • false— Konversi Skema DMS memetakan semua NUMBER kolom ke. NUMERIC

Jenis: Boolean (true|false)

Default: true

Gunakan fungsi PostgreSQL TO_CHAR asli () ToCharFunctionOracle

Menentukan apakah DMS Schema Conversion mengemulasi TO_CHAR fungsi Oracle dalam kode dikonversi.

  • false— Konversi Skema DMS mengemulasi TO_CHAR perilaku Oracle dalam kode yang dikonversi.

  • true— Konversi Skema DMS mengonversi TO_CHAR dan TO_NCHAR memanggil ke fungsi PostgreSQL asli. TO_CHAR Pilih ini untuk menghindari emulasi ketika string format Anda kompatibel dengan PostgreSQL.

Jenis: Boolean (true|false)

Default: false

Gunakan fungsi asli PostgreSQL TO_DATE () ToDateFunctionOracle

Menentukan apakah DMS Schema Conversion mengemulasi TO_DATE fungsi Oracle dalam kode dikonversi.

  • false— Konversi Skema DMS mengemulasi TO_DATE perilaku Oracle dalam kode yang dikonversi.

  • true— Konversi Skema DMS mengonversi TO_DATE panggilan ke fungsi PostgreSQL asli. TO_DATE

Jenis: Boolean (true|false)

Default: false

Gunakan fungsi PostgreSQL TO_NUMBER asli () ToNumber

Menentukan apakah DMS Schema Conversion mengemulasi TO_NUMBER fungsi Oracle dalam kode dikonversi.

  • false— Konversi Skema DMS mengemulasi TO_NUMBER perilaku Oracle dalam kode yang dikonversi.

  • true— Konversi Skema DMS mengonversi TO_NUMBER panggilan ke fungsi PostgreSQL asli. TO_NUMBER

Jenis: Boolean (true|false)

Default: false

Meningkatkan kinerja kode yang dikonversi di mana database dan aplikasi menggunakan zona waktu yang sama (ToTimeZone)

Menentukan apakah DMS Schema Konversi mengemulasi zona waktu dalam kode dikonversi.

  • true— Konversi Skema DMS tidak meniru zona waktu. Gunakan ini ketika database dan aplikasi Anda menggunakan zona waktu yang sama. Kode yang dikonversi berjalan lebih cepat.

  • false— Konversi Skema DMS mengemulasi zona waktu dalam kode yang dikonversi.

Jenis: Boolean (true|false)

Default: false

Isi urutan yang dikonversi dengan nilai terakhir yang dihasilkan di sisi sumber () AlertSequenceRestart

Menentukan apakah Konversi Skema DMS melanjutkan urutan dikonversi dari nilai terakhir yang dihasilkan pada sumber.

  • true— Konversi Skema DMS menetapkan setiap urutan yang dikonversi untuk memulai dari nilai terakhir yang dihasilkan pada sumber, sehingga urutan berlanjut tanpa konflik.

  • false— Konversi Skema DMS memulai urutan yang dikonversi dari nilai awal defaultnya.

Jenis: Boolean (true|false)

Default: false

Mengkonversi kolom kunci primer dan asing dari tipe data NUMBER ke tipe data BIGINT () ConvertNumberToBigint

Menentukan apakah DMS Schema Konversi mengkonversi kunci primer dan kolom kunci asing dari tipe data ke. NUMBER BIGINT Gunakan dengan hati-hati untuk menghindari kehilangan data jika database sumber Anda menyimpan nomor floating-point di kolom ini.

  • true— Konversi Skema DMS memetakan kunci utama dan NUMBER kolom kunci asing ke. BIGINT

  • false— Konversi Skema DMS menggunakan pemetaan numerik standar untuk kolom ini.

Jenis: Boolean (true|false)

Default: false

Konversikan hanya pemicu dan kendala aktif () IgnoreDisabledTriggersConstraints

Menentukan apakah DMS Schema Conversion melompati pemicu dinonaktifkan dan kendala selama konversi.

  • true— Konversi Skema DMS hanya mengonversi pemicu dan kendala aktif dan melewatkan yang dinonaktifkan.

  • false— Konversi Skema DMS mengonversi semua pemicu dan kendala, termasuk yang dinonaktifkan.

Jenis: Boolean (true|false)

Default: false

Mengkonversi kode SQL dinamis yang dibuat dalam disebut routines () ConvertOutputAsDynamic

Menentukan apakah DMS Schema Konversi mengkonversi variabel string yang direferensikan di luar rutin sebagai SQL dinamis.

  • true— Konversi Skema DMS mengonversi variabel string yang direferensikan di luar rutinitas sebagai SQL dinamis.

  • false— Konversi Skema DMS tidak mengonversi variabel string ini sebagai SQL dinamis.

Jenis: Boolean (true|false)

Default: false

Konversi prosedur ke fungsi (ConvertProceduresToFunction)

Menentukan apakah DMS Schema Conversion mengkonversi prosedur Oracle disimpan untuk PostgreSQL fungsi void.

  • true- Konversi Skema DMS mengonversi prosedur yang disimpan Oracle ke fungsi void PostgreSQL.

  • false— Konversi Skema DMS mengubah prosedur tersimpan Oracle ke prosedur PostgreSQL.

Jenis: Boolean (true|false)

Default: false

Simpan nama-nama kendala yang dihasilkan sistem () ConvertSysConstraintNamesUsingOriginal

Menentukan apakah DMS Schema Conversion menyimpan nama kendala Oracle yang dihasilkan sistem asli dalam target. Gunakan opsi ini jika kode Oracle sumber Anda menggunakan nama kendala yang dihasilkan sistem untuk membuat batasan dengan nama yang sama di database target Anda.

  • true— Konversi Skema DMS menyimpan nama kendala asli yang dihasilkan sistem Oracle di target.

  • false— Konversi Skema DMS menghasilkan nama kendala baru.

Jenis: Boolean (true|false)

Default: false

Mengatur zona waktu database sumber Anda (UseDefaultTimeZoneForSysdateEmulation)

Menentukan apakah fungsi yang mengemulasi SYSDATE fungsi Oracle menggunakan zona waktu diDefaultTimeZoneForSysdateEmulation, sehingga kode dikonversi mengembalikan nilai yang sama dengan database sumber Anda.

  • true— Konversi Skema DMS menggunakan zona waktu yang ditentukan DefaultTimeZoneForSysdateEmulation untuk SYSDATE emulasi.

  • false— Konversi Skema DMS menggunakan zona waktu default untuk SYSDATE emulasi.

Jenis: Boolean (true|false)

Default: false

DefaultTimeZoneForSysdateEmulation

Zona waktu yang digunakan Konversi Skema DMS saat SYSDATE emulasi dihidupkan. UseDefaultTimeZoneForSysdateEmulation Tentukan nama zona waktu IANA yang valid, sepertiUTC,America/New_York, atauEurope/Berlin. Nilai ini tidak berpengaruh kapan UseDefaultTimeZoneForSysdateEmulation adafalse.

Jenis: String (nama zona waktu IANA)

Default: UTC

catatan

AWS Management Console Daftar opsi tambahan, Tambahkan fungsi paket ekstensi yang meningkatkan pengecualian yang ditentukan pengguna, antara Mengonversi prosedur ke fungsi dan Simpan nama kendala yang dihasilkan sistem. Opsi ini hanya dikonfigurasi di AWS Management Console dan tidak tersedia melalui API atau AWS CLI. Perilaku tingkat keparahan terkait dikendalikan oleh pengaturan umum. ShowSeverityLevelInSql Untuk informasi selengkapnya, lihat Pengaturan konversi umum.

Rutinitas bawaan Orafce

Pilih rutinitas bawaan Orafce untuk digunakan dalam kode yang dikonversi. Orafce adalah ekstensi PostgreSQL yang menyediakan rutinitas yang kompatibel dengan fungsi bawaan Oracle. Setiap rutinitas memiliki pengaturan Boolean khusus. Ketika Anda mengatur rutinitas ketrue, DMS Schema Conversion mengubah fungsi bawaan Oracle yang cocok ke rutinitas Orafce-nya. Saat Anda mengaturnyafalse, Konversi Skema DMS meninggalkan fungsi sebagai item tindakan untuk tinjauan manual. Untuk menggunakan rutinitas ini, ekstensi orafce harus tersedia di database target Anda. Semua rutinitas ini default kefalse. Tetapkan rutinitas true hanya setelah Anda memverifikasi bahwa perilaku fungsi dalam penggunaan Anda kompatibel dengan rutinitas Orafce.

Nama pengaturan Fungsi bawaan Oracle
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle paket DBMS_ASSERT
DbmsOutputBuiltinFunctionOracle paket DBMS_OUTPUT
DbmsRandomBuiltinFunctionOracle paket DBMS_RANDOM
DbtimezoneBuiltinFunctionOracle DBTIMEZONE
DecodeBuiltinFunctionOracle DECODE
DumpBuiltinFunctionOracle DUMP
InstrBuiltinFunctionOracle INSTR
InstrbBuiltinFunctionOracle INSTRB
LastDayBuiltinFunctionOracle LAST_DAY
LengthBuiltinFunctionOracle LENGTH
LengthbBuiltinFunctionOracle LENGTHB
ListaggBuiltinFunctionOracle LISTAGG
LnnvlBuiltinFunctionOracle LNNVL
LpadBuiltinFunctionOracle LPAD
LtrimBuiltinFunctionOracle LTRIM
MedianBuiltinFunctionOracle MEDIAN
MonthsBetweenBuiltinFunctionOracle MONTHS_BETWEEN
NanvlBuiltinFunctionOracle NANVL
NextDayBuiltinFunctionOracle NEXT_DAY
NlssortBuiltinFunctionOracle NLSSORT
Nvl2BuiltinFunctionOracle NVL2
NvlBuiltinFunctionOracle NVL
RoundDateFmtBuiltinFunctionOracle ROUND(tanggal)
RoundNumberBuiltinFunctionOracle ROUND(jumlah)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(datetime)
ToCharNumberBuiltinFunctionOracle TO_CHAR(jumlah)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(tanggal)
TruncNumberBuiltinFunctionOracle TRUNC(jumlah)

Setiap rutinitas adalah kunci Boolean terpisah. Contoh berikut mengaktifkan rutinitas Orafce untuk OracleADD_MONTHS,, NVL dan fungsi. SUBSTR Tambahkan atau hapus kunci untuk mencocokkan fungsi dalam kode sumber Anda, dan terapkan kunci yang sama untuk setiap nama bagian yang digunakan proyek Anda.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Pengaturan kode SQL

Konfigurasikan bagaimana Konversi Skema DMS menangani objek bawaan Oracle yang tidak didukung PostgreSQL.

Ubah objek bawaan yang tidak didukung menjadi objek rintisan () ConvUnsupportedBuiltinsToStubs

Menentukan apakah DMS Schema Konversi menggantikan objek built-in yang tidak didukung dengan objek rintisan.

  • false— Konversi Skema DMS meninggalkan objek bawaan yang tidak didukung sebagai item tindakan dalam laporan penilaian.

  • true— Konversi Skema DMS menggantikan setiap objek bawaan yang tidak didukung dengan objek rintisan yang memiliki tanda tangan yang sama. Objek yang dikonversi dikompilasi, sehingga Anda dapat menerapkan dan menguji skema lainnya sebelum Anda mengatasi masing-masing potongan.

Jenis: Boolean (true|false)

Default: false

Buat objek rintisan dalam skema terpisah () CreateStubsInSeparateSchema

Menentukan apakah DMS Schema Konversi menciptakan objek rintisan dalam skema terpisah. Opsi ini muncul AWS Management Console hanya ketika Konversi objek bawaan yang tidak didukung ke objek rintisan dipilih, dan itu hanya berlaku ketika opsi itu diaktifkan.

  • true— Konversi Skema DMS menciptakan objek rintisan dalam skema terpisah. Ini membuat skema aplikasi Anda tetap bersih dan memudahkan untuk mengidentifikasi rintisan mana yang masih perlu diterapkan.

  • false— Konversi Skema DMS menciptakan objek rintisan dalam skema yang sama dengan objek yang dikonversi.

Jenis: Boolean (true|false)

Default: true

Contoh: konfigurasikan Oracle ke pengaturan PostgreSQL

Contoh berikut menyimpan tampilan terwujud sebagai tampilan terwujud PostgreSQL, mengemulasi pseudocolumn dengan menggunakan tipe data, dan ROWID mengonversi prosedur ke fungsi. bigint Terapkan pengaturan yang sama untuk setiap nama bagian yang digunakan proyek Anda (periksa output DescribeConversionConfigurationterlebih dahulu).

{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }