Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einstellungen für die Konvertierung von Oracle in PostgreSQL
Die folgenden Einstellungen gelten, wenn die Quelle Oracle und das Ziel Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL ist. Sie können diese Einstellungen mithilfe der AWS Management Console oder der API-Operation konfigurieren. ModifyConversionConfiguration
In diesem Thema werden Einstellungen behandelt, die für den Konvertierungspfad von Oracle nach PostgreSQL spezifisch sind. Zusätzlich zu diesen Einstellungen bietet die DMS-Schemakonvertierung Einstellungen, die für alle Quell- und Zielpaare gelten, wie z. B. den Schweregrad für Kommentare zu Aktionselementen in konvertiertem SQL und die Option, generative KI für die Konvertierung zu verwenden. Informationen zu diesen Einstellungen finden Sie unter. Allgemeine Konvertierungseinstellungen
Wenn Sie die API oder AWS CLI verwenden, geben Sie die Einstellungen für den Konvertierungspfad unter den Abschnittsnamen ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, oder anORACLE_TO_POSTGRESQL_15. Alle drei versionierten Abschnitte akzeptieren dieselben Schlüssel. Um herauszufinden, welche Abschnittsnamen Ihr Projekt verwendet, rufen Sie DescribeConversionConfigurationzuerst an und aktualisieren Sie nur die Abschnitte, die in der Antwort enthalten sind.
Jede Einstellung zeigt das AWS Management Console Label gefolgt vom API- und AWS CLI-Parameternamen in Klammern. Verwenden Sie den Parameternamen, wenn Sie Einstellungen mit der API oder AWS CLI konfigurieren. Die Einstellungen werden in derselben Reihenfolge aufgeführt, in der sie in der erscheinen AWS Management Console.
- Version der Ziel-Engine (
ORACLE_TO_POSTGRESQL_target_engine_version) -
Wählen Sie die Engine-Version für Ihre Zieldatenbank aus. Bei dieser Einstellung handelt es sich um den Funktionsumfang der PostgreSQL-Hauptversion, auf den die DMS-Schemakonvertierung abzielt, und sie bestimmt, welcher Abschnitt mit versionierten Einstellungen für die DMS-Schemakonvertierung gilt (oder).
ORACLE_TO_POSTGRESQL_14ORACLE_TO_POSTGRESQL_15Der Wert15zielt auf die Funktionen von PostgreSQL 15 und späteren Versionen sowie auf die Funktionen von PostgreSQL 1414ab, sodass Ihre Zieldatenbank eine neuere Version als den von Ihnen ausgewählten Wert ausführen kann (z. B. ein Wert von15für ein PostgreSQL 16-Ziel). Im Gegensatz zu den anderen Einstellungen auf dieser Seite wird diese Einstellung nicht in einem Konvertierungspfadabschnitt gespeichert. Stattdessen wird sie imConversion versionBereich auf oberster Ebene gespeichert, wie im folgenden Beispiel gezeigt.{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }Typ: Zeichenfolge (
14|15)Standardwert:
15 - Materialisierte Ansichten ()
MaterializedViewConvert -
Gibt an, wie DMS Schema Conversion materialisierte Oracle-Ansichten auf dem Ziel konvertiert.
API/CLI Wert Ergebnis entspricht dem Ziel TABLEDie DMS-Schemakonvertierung erstellt eine reguläre Tabelle mit denselben Spalten. Verwenden Sie diese Option, wenn Sie die Aktualisierung manuell oder mit einem Replikationstool verwalten. MATERIALIZED_VIEWDie DMS-Schemakonvertierung erstellt ein MATERIALIZED VIEWPostgreSQL. Verwenden Sie dies, wenn das Ziel dies unterstützt.REFRESH MATERIALIZED VIEWTyp: Zeichenfolge (
TABLE|MATERIALIZED_VIEW)Standardwert:
TABLE - Generieren Sie die Zeilen-ID (
GenerateRowId) -
Ihre Oracle-Quelldatenbank kann die Pseudospalte
ROWIDverwenden. PostgreSQL unterstützt keine ähnlichen Funktionen. Diese Einstellung legt fest, ob DMS Schema Conversion dieROWIDPseudospalte im konvertierten Code emuliert und welchen Datentyp DMS Schema Conversion für die Emulation verwendet.Bezeichnung der Konsole API/CLI Wert Behavior Nicht generieren falseDie DMS-Schemakonvertierung emuliert die ROWIDPseudospalte nicht und belässt Verweise als Aktionspunkte. Verwenden Sie dies, wenn Ihr Oracle-Quellcode dies nicht verwendet.ROWIDDer konvertierte Code läuft schneller.Verwenden Sie den Bigint-Datentyp, um die ROWID-Pseudospalte zu emulieren trueDie DMS-Schemakonvertierung emuliert die ROWIDPseudospalte im konvertierten Code mithilfe des Datentyps.bigintVerwenden Sie den zeichenvariablen Datentyp, um die ROWID-Pseudospalte zu emulieren GENERATE_AS_CHARACTER_DOMAIN_TYPEDie DMS-Schemakonvertierung emuliert die ROWIDPseudospalte im konvertierten Code mithilfe des Datentyps.character varyingTyp: Zeichenfolge (Enum)
Standardwert:
false
Code
Wählen Sie die Konvertierungseinstellungen aus, die für Ihren Oracle-Quellcode spezifisch sind.
- Verwenden Sie die optimierte Datentypzuordnung für Spalten des NUMBER-Datentyps (
UseOptimizedMappingForNumberConversion) -
Gibt an, ob die DMS-Schemakonvertierung jede
NUMBEROracle-Spalte auf Grundlage der Genauigkeit und Skalierung dem am besten passenden numerischen Datentyp zuordnet.-
true— Die DMS-Schemakonvertierung ordnet jedeNUMBERSpalte auf der Grundlage ihrer Genauigkeit und Skalierung dem spezifischsten numerischen PostgreSQL-Typ zu (z. B.SMALLINTINTEGER,, oderBIGINT). -
false— Die DMS-Schemakonvertierung ordnet alle Spalten zu.NUMBERNUMERIC
Typ: Boolean (|)
truefalseStandardwert:
true -
- Verwenden Sie eine native PostgreSQL-TO_CHAR-Funktion ()
ToCharFunctionOracle -
Gibt an, ob die DMS-Schemakonvertierung die
TO_CHAROracle-Funktion im konvertierten Code emuliert.-
false— Die DMS-Schemakonvertierung emuliert dasTO_CHAROracle-Verhalten im konvertierten Code. -
true— Die DMS-Schemakonvertierung konvertiert die nativeTO_CHARPostgreSQL-FunktionTO_CHARundTO_NCHARruft sie auf. Wählen Sie diese Option, um Emulationen zu vermeiden, wenn Ihre Formatzeichenfolgen mit PostgreSQL kompatibel sind.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Verwenden Sie eine native PostgreSQL-TO_DATE-Funktion ()
ToDateFunctionOracle -
Gibt an, ob die DMS-Schemakonvertierung die
TO_DATEOracle-Funktion im konvertierten Code emuliert.-
false— Die DMS-Schemakonvertierung emuliert dasTO_DATEOracle-Verhalten im konvertierten Code. -
true— Die DMS-Schemakonvertierung konvertiertTO_DATEAufrufe in die native PostgreSQL-FunktionTO_DATE.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Verwenden Sie eine native PostgreSQL-TO_NUMBER-Funktion ()
ToNumber -
Gibt an, ob die DMS-Schemakonvertierung die
TO_NUMBEROracle-Funktion im konvertierten Code emuliert.-
false— Die DMS-Schemakonvertierung emuliert dasTO_NUMBEROracle-Verhalten im konvertierten Code. -
true— Die DMS-Schemakonvertierung konvertiertTO_NUMBERAufrufe in die native PostgreSQL-FunktionTO_NUMBER.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Verbessern Sie die Leistung des konvertierten Codes, wenn die Datenbank und die Anwendungen dieselbe Zeitzone verwenden ()
ToTimeZone -
Gibt an, ob die DMS-Schemakonvertierung Zeitzonen im konvertierten Code emuliert.
-
true— Die DMS-Schemakonvertierung emuliert keine Zeitzonen. Verwenden Sie diese Option, wenn Ihre Datenbank und Anwendungen dieselbe Zeitzone verwenden. Der konvertierte Code wird schneller ausgeführt. -
false— Die DMS-Schemakonvertierung emuliert Zeitzonen im konvertierten Code.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Füllen Sie konvertierte Sequenzen mit dem letzten Wert auf, der auf der Quellseite generiert wurde ()
AlertSequenceRestart -
Gibt an, ob die DMS-Schemakonvertierung die konvertierten Sequenzen aus dem letzten auf der Quelle generierten Wert fortsetzt.
-
true— Die DMS-Schemakonvertierung legt fest, dass jede konvertierte Sequenz mit dem letzten in der Quelle generierten Wert beginnt, sodass die Sequenzen ohne Konflikte fortgesetzt werden. -
false— Die DMS-Schemakonvertierung startet konvertierte Sequenzen mit ihrem standardmäßigen Anfangswert.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Konvertiert Primär- und Fremdschlüsselspalten des NUMBER-Datentyps in den BIGINT-Datentyp ()
ConvertNumberToBigint -
Gibt an, ob die DMS-Schemakonvertierung Primärschlüssel- und Fremdschlüsselspalten des
NUMBERDatentyps in konvertiert.BIGINTGehen Sie vorsichtig vor, um Datenverlust zu vermeiden, wenn Ihre Quelldatenbank Gleitkommazahlen in diesen Spalten speichert.-
true— Die DMS-Schemakonvertierung ordnet Primärschlüssel- und Fremdschlüsselspalten zu.NUMBERBIGINT -
false— Die DMS-Schemakonvertierung verwendet die standardmäßige numerische Zuordnung für diese Spalten.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Konvertiert nur aktive Trigger und Einschränkungen ()
IgnoreDisabledTriggersConstraints -
Gibt an, ob die DMS-Schemakonvertierung deaktivierte Trigger und Einschränkungen bei der Konvertierung überspringt.
-
true— Die DMS-Schemakonvertierung konvertiert nur aktive Trigger und Einschränkungen und überspringt deaktivierte. -
false— Die DMS-Schemakonvertierung konvertiert alle Trigger und Einschränkungen, auch die deaktivierten.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Konvertiert den dynamischen SQL-Code, der in sogenannten Routinen () erstellt wurde
ConvertOutputAsDynamic -
Gibt an, ob die DMS-Schemakonvertierung Zeichenkettenvariablen, auf die außerhalb der Routine verwiesen wird, als dynamisches SQL konvertiert.
-
true— DMS Schema Conversion konvertiert Zeichenkettenvariablen, auf die außerhalb der Routine verwiesen wird, als dynamisches SQL. -
false— Die DMS-Schemakonvertierung konvertiert diese Zeichenkettenvariablen nicht in dynamisches SQL.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Konvertiert Prozeduren in Funktionen ()
ConvertProceduresToFunction -
Gibt an, ob DMS Schema Conversion gespeicherte Oracle-Prozeduren in ungültige PostgreSQL-Funktionen konvertiert.
-
true— Die DMS-Schemakonvertierung konvertiert gespeicherte Oracle-Prozeduren in PostgreSQL-Void-Funktionen. -
false— Die DMS-Schemakonvertierung konvertiert gespeicherte Oracle-Prozeduren in PostgreSQL-Prozeduren.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Behalten Sie die Namen der vom System generierten Einschränkungen () bei
ConvertSysConstraintNamesUsingOriginal -
Gibt an, ob die DMS-Schemakonvertierung die ursprünglichen, vom Oracle-System generierten Constraint-Namen im Ziel beibehält. Verwenden Sie diese Option, wenn Ihr Oracle-Quellcode systemgenerierte Constraint-Namen verwendet, um Constraints mit denselben Namen in Ihrer Zieldatenbank zu erstellen.
-
true— Die DMS-Schemakonvertierung behält die ursprünglichen, vom Oracle-System generierten Constraint-Namen im Ziel bei. -
false— Die DMS-Schemakonvertierung generiert neue Einschränkungsnamen.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Stellen Sie die Zeitzone Ihrer Quelldatenbank ein ()
UseDefaultTimeZoneForSysdateEmulation -
Gibt an, ob die Funktion, die die
SYSDATEOracle-Funktion emuliert, die Zeitzone in verwendetDefaultTimeZoneForSysdateEmulation, sodass der konvertierte Code dieselben Werte zurückgibt wie Ihre Quelldatenbank.-
true— Die DMS-Schemakonvertierung verwendet die in angegebene ZeitzoneDefaultTimeZoneForSysdateEmulationfürSYSDATEdie Emulation. -
false— Die DMS-Schemakonvertierung verwendet die Standardzeitzone für die Emulation.SYSDATE
Typ: Boolean (|)
truefalseStandardwert:
false -
DefaultTimeZoneForSysdateEmulation-
Die Zeitzone, die die DMS-Schemakonvertierung verwendet, wenn die
SYSDATEEmulation aktiviert ist.UseDefaultTimeZoneForSysdateEmulationGeben Sie einen gültigen IANA-Zeitzonennamen an, z. B.UTC,America/New_Yorkoder.Europe/BerlinDieser Wert hat keine Auswirkung, wenn erUseDefaultTimeZoneForSysdateEmulationistfalse.Typ: Zeichenfolge (Name der IANA-Zeitzone)
Standardwert:
UTC
Anmerkung
AWS Management Console In der Liste ist eine zusätzliche Option aufgeführt: Erweiterungspaket-Funktionen hinzufügen, die benutzerdefinierte Ausnahmen auslösen, zwischen Prozeduren in Funktionen umwandeln und Namen von systemgenerierten Einschränkungen beibehalten. Diese Option ist nur in der konfiguriert AWS Management Console und nicht über die API oder AWS CLI verfügbar. Das entsprechende Verhalten beim Schweregrad wird durch die ShowSeverityLevelInSql allgemeine Einstellung gesteuert. Weitere Informationen finden Sie unter Allgemeine Konvertierungseinstellungen.
Integrierte Oracle-Routinen
Wählen Sie die integrierten Orace-Routinen aus, die im konvertierten Code verwendet werden sollen. Oracle ist eine PostgreSQL-Erweiterung, die Routinen bereitstellt, die mit den integrierten Funktionen von Oracle kompatibel sind. Jede Routine hat eine eigene boolesche Einstellung. Wenn Sie eine Routine auf setzentrue, konvertiert DMS Schema Conversion die entsprechende integrierte Oracle-Funktion in ihre Oracle-Routine. Wenn Sie sie auf einstellenfalse, bleibt die Funktion bei der DMS-Schemakonvertierung als Aktionspunkt für die manuelle Überprüfung übrig. Um diese Routinen verwenden zu können, muss die Oracle-Erweiterung in Ihrer Zieldatenbank verfügbar sein. Alle diese Routinen sind standardmäßig auf. false Setzen Sie eine Routine true erst auf, nachdem Sie sich vergewissert haben, dass das Verhalten der Funktion bei Ihrer Verwendung mit der Orace-Routine kompatibel ist.
| Einstellungsname | Integrierte Oracle-Funktion |
|---|---|
AddMonthsBuiltinFunctionOracle |
ADD_MONTHS |
BitandBuiltinFunctionOracle |
BITAND |
CoshBuiltinFunctionOracle |
COSH |
DbmsAssertBuiltinFunctionOracle |
DBMS_ASSERTPaket |
DbmsOutputBuiltinFunctionOracle |
DBMS_OUTPUTPaket |
DbmsRandomBuiltinFunctionOracle |
DBMS_RANDOMPaket |
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(Datum) |
RoundNumberBuiltinFunctionOracle |
ROUND(Zahl) |
RpadBuiltinFunctionOracle |
RPAD |
RtrimBuiltinFunctionOracle |
RTRIM |
SessiontimezoneBuiltinFunctionOracle |
SESSIONTIMEZONE |
SinhBuiltinFunctionOracle |
SINH |
SubstrBuiltinFunctionOracle |
SUBSTR |
SubstrbBuiltinFunctionOracle |
SUBSTRB |
SysdateBuiltinFunctionOracle |
SYSDATE |
TanhBuiltinFunctionOracle |
TANH |
ToCharDatetimeBuiltinFunctionOracle |
TO_CHAR(Datum/Uhrzeit) |
ToCharNumberBuiltinFunctionOracle |
TO_CHAR(Zahl) |
ToDateBuiltinFunctionOracle |
TO_DATE |
ToMultiByteBuiltinFunctionOracle |
TO_MULTI_BYTE |
ToNumberBuiltinFunctionOracle |
TO_NUMBER |
ToSingleByteBuiltinFunctionOracle |
TO_SINGLE_BYTE |
TruncDateBuiltinFunctionOracle |
TRUNC(Datum) |
TruncNumberBuiltinFunctionOracle |
TRUNC(Zahl) |
Jede Routine ist ein separater boolescher Schlüssel. Im folgenden Beispiel werden die Oracle-Routinen für die Funktionen OracleADD_MONTHS, und aktiviert. NVL SUBSTR Fügen Sie Schlüssel hinzu oder entfernen Sie sie, sodass sie den Funktionen in Ihrem Quellcode entsprechen, und wenden Sie dieselben Schlüssel auf jeden Abschnittsnamen an, den Ihr Projekt verwendet.
{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Einstellungen für den SQL-Code
Konfigurieren Sie, wie DMS Schema Conversion mit integrierten Oracle-Objekten umgeht, die PostgreSQL nicht unterstützt.
- Konvertiert nicht unterstützte integrierte Objekte in Stub-Objekte ()
ConvUnsupportedBuiltinsToStubs -
Gibt an, ob die DMS-Schemakonvertierung nicht unterstützte integrierte Objekte durch Stub-Objekte ersetzt.
-
false— Bei der DMS-Schemakonvertierung werden nicht unterstützte integrierte Objekte als Aktionspunkte im Bewertungsbericht angezeigt. -
true— Die DMS-Schemakonvertierung ersetzt jedes nicht unterstützte integrierte Objekt durch ein Stub-Objekt mit derselben Signatur. Das konvertierte Objekt wird kompiliert, sodass Sie den Rest des Schemas bereitstellen und testen können, bevor Sie einzelne Stubs bearbeiten.
Typ: Boolean (|)
truefalseStandardwert:
false -
- Erstellen Sie Stub-Objekte in einem separaten Schema ()
CreateStubsInSeparateSchema -
Gibt an, ob die DMS-Schemakonvertierung Stub-Objekte in einem separaten Schema erstellt. Diese Option wird AWS Management Console nur angezeigt, wenn die Option Nicht unterstützte integrierte Objekte in Stub-Objekte konvertieren ausgewählt ist, und sie ist nur wirksam, wenn diese Option aktiviert ist.
-
true— Die DMS-Schemakonvertierung erstellt Stub-Objekte in einem separaten Schema. Dadurch bleiben Ihre Anwendungsschemas sauber und Sie können leicht erkennen, welche Stubs noch implementiert werden müssen. -
false— Die DMS-Schemakonvertierung erstellt Stub-Objekte im gleichen Schema wie das konvertierte Objekt.
Typ: Boolean (|)
truefalseStandardwert:
true -
Beispiel: Konfiguration der Oracle-Einstellungen für PostgreSQL
Im folgenden Beispiel werden materialisierte Ansichten als materialisierte PostgreSQL-Ansichten beibehalten, die ROWID Pseudospalte mithilfe des bigint Datentyps emuliert und Prozeduren in Funktionen konvertiert. Wenden Sie dieselben Einstellungen auf jeden Abschnittsnamen an, den Ihr Projekt verwendet (überprüfen Sie zuerst die Ausgabe von). DescribeConversionConfiguration
{ "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 } }