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_14ORACLE_TO_POSTGRESQL_15Nilai15menargetkan fitur PostgreSQL 15 dan versi yang lebih baru, dan menargetkan fitur PostgreSQL 14, sehingga database14target Anda dapat menjalankan versi yang lebih baru daripada nilai yang Anda pilih (misalnya, nilai untuk target PostgreSQL 16).15Tidak seperti pengaturan lain di halaman ini, pengaturan ini tidak disimpan di bagian jalur konversi. Sebaliknya, itu disimpan diConversion versionbagian 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 TABLEKonversi Skema DMS membuat tabel biasa dengan kolom yang sama. Gunakan ini saat Anda mengelola penyegaran secara manual atau dengan alat replikasi. MATERIALIZED_VIEWKonversi Skema DMS menciptakan PostgreSQL. MATERIALIZED VIEWGunakan ini ketika target mendukungREFRESH MATERIALIZED VIEW.Jenis: String (
TABLE|MATERIALIZED_VIEW)Default:
TABLE - Hasilkan id baris (
GenerateRowId) -
Database Oracle sumber Anda dapat menggunakan
ROWIDpseudocolumn. PostgreSQL tidak mendukung fungsionalitas serupa. Pengaturan ini menentukan apakah Konversi Skema DMS mengemulasiROWIDpseudocolumn dalam kode yang dikonversi, dan tipe data yang digunakan DMS Schema Conversion untuk emulasi.Label konsol API/CLI nilai Perilaku Jangan menghasilkan falseKonversi Skema DMS tidak meniru ROWIDpseudocolumn 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 trueKonversi Skema DMS mengemulasi ROWIDpseudocolumn dalam kode yang dikonversi dengan menggunakan tipe data.bigintGunakan karakter yang bervariasi tipe data untuk meniru pseudocolumn ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPEKonversi Skema DMS mengemulasi ROWIDpseudocolumn dalam kode yang dikonversi dengan menggunakan tipe data.character varyingJenis: 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
NUMBERkolom Oracle ke tipe data numerik yang paling sesuai berdasarkan presisi dan skala.-
true— Konversi Skema DMS memetakan setiapNUMBERkolom ke jenis numerik PostgreSQL yang paling spesifik (misalnya,,SMALLINTINTEGER, atau) berdasarkan presisi dan skalanya.BIGINT -
false— Konversi Skema DMS memetakan semuaNUMBERkolom ke.NUMERIC
Jenis: Boolean (
true|false)Default:
true -
- Gunakan fungsi PostgreSQL TO_CHAR asli ()
ToCharFunctionOracle -
Menentukan apakah DMS Schema Conversion mengemulasi
TO_CHARfungsi Oracle dalam kode dikonversi.-
false— Konversi Skema DMS mengemulasiTO_CHARperilaku Oracle dalam kode yang dikonversi. -
true— Konversi Skema DMS mengonversiTO_CHARdanTO_NCHARmemanggil ke fungsi PostgreSQL asli.TO_CHARPilih 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_DATEfungsi Oracle dalam kode dikonversi.-
false— Konversi Skema DMS mengemulasiTO_DATEperilaku Oracle dalam kode yang dikonversi. -
true— Konversi Skema DMS mengonversiTO_DATEpanggilan 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_NUMBERfungsi Oracle dalam kode dikonversi.-
false— Konversi Skema DMS mengemulasiTO_NUMBERperilaku Oracle dalam kode yang dikonversi. -
true— Konversi Skema DMS mengonversiTO_NUMBERpanggilan 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.
NUMBERBIGINTGunakan 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 danNUMBERkolom 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
SYSDATEfungsi Oracle menggunakan zona waktu diDefaultTimeZoneForSysdateEmulation, sehingga kode dikonversi mengembalikan nilai yang sama dengan database sumber Anda.-
true— Konversi Skema DMS menggunakan zona waktu yang ditentukanDefaultTimeZoneForSysdateEmulationuntukSYSDATEemulasi. -
false— Konversi Skema DMS menggunakan zona waktu default untukSYSDATEemulasi.
Jenis: Boolean (
true|false)Default:
false -
DefaultTimeZoneForSysdateEmulation-
Zona waktu yang digunakan Konversi Skema DMS saat
SYSDATEemulasi dihidupkan.UseDefaultTimeZoneForSysdateEmulationTentukan nama zona waktu IANA yang valid, sepertiUTC,America/New_York, atauEurope/Berlin. Nilai ini tidak berpengaruh kapanUseDefaultTimeZoneForSysdateEmulationadafalse.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 } }