Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de conversión de Oracle a PostgreSQL
La siguiente configuración se aplica cuando el origen es Oracle y el destino es Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL. Puede configurar estos ajustes mediante la operación o la AWS Management Console API. ModifyConversionConfiguration
En este tema se describe la configuración específica de la ruta de conversión de Oracle a PostgreSQL. Además de estos ajustes, la conversión de esquemas de DMS proporciona ajustes que se aplican a todos los pares de origen y destino, como el nivel de gravedad de los comentarios sobre los elementos de acción en el SQL convertido y la opción de utilizar la IA generativa para la conversión. Para conocer esos ajustes, consulte. Ajustes de conversión habituales
Cuando utilice la API o la AWS CLI, especifique la configuración de la ruta de conversión en los nombres de las secciones ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, oORACLE_TO_POSTGRESQL_15. Las tres secciones versionadas aceptan las mismas claves. Para saber qué nombres de sección usa tu proyecto, llama DescribeConversionConfigurationprimero y actualiza solo las secciones presentes en la respuesta.
Cada configuración muestra la AWS Management Console etiqueta seguida del nombre del parámetro de la API y la AWS CLI entre paréntesis. Utilice el nombre del parámetro al configurar los ajustes con la API o la AWS CLI. Los ajustes se muestran en el mismo orden en que aparecen en AWS Management Console.
- Versión del motor de destino (
ORACLE_TO_POSTGRESQL_target_engine_version) -
Elija la versión del motor para la base de datos de destino. Esta configuración es el conjunto de funciones de la versión principal de PostgreSQL que la conversión de esquemas de DMS apunta a la conversión y determina qué sección de configuración versionada se aplica (o) la conversión de esquemas de DMS.
ORACLE_TO_POSTGRESQL_14ORACLE_TO_POSTGRESQL_15El valor se15dirige a las funciones de PostgreSQL 15 y versiones posteriores,14y a las funciones de PostgreSQL 14, de modo que la base de datos de destino pueda ejecutar una versión posterior al valor que elija (por ejemplo, un valor de para un destino de15PostgreSQL 16). A diferencia del resto de la configuración de esta página, esta configuración no se almacena en una sección de rutas de conversión. En su lugar, se almacena en laConversion versionsección de nivel superior, como se muestra en el siguiente ejemplo.{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }Tipo: cadena (
14|15)Valor predeterminado:
15 - Vistas materializadas ()
MaterializedViewConvert -
Especifica cómo la conversión de esquemas de DMS convierte las vistas materializadas de Oracle en el destino.
API/CLI valor Resultado alcanzado el objetivo TABLELa conversión de esquemas de DMS crea una tabla normal con las mismas columnas. Úselo cuando gestione la actualización manualmente o con una herramienta de replicación. MATERIALIZED_VIEWLa conversión de esquemas de DMS crea un PostgreSQL MATERIALIZED VIEW. Úselo cuando el objetivo lo admita.REFRESH MATERIALIZED VIEWTipo: cadena (
TABLE|MATERIALIZED_VIEW)Valor predeterminado:
TABLE - Generar id de fila (
GenerateRowId) -
La base de datos Oracle de origen puede utilizar la pseudocolumna
ROWID. PostgreSQL no admite funciones similares. En la configuración se especifica si la conversión de esquemas de DMS emula laROWIDpseudocolumna del código convertido y qué tipo de datos utiliza la conversión de esquemas de DMS para la emulación.Etiqueta de consola API/CLI valor Comportamiento No generes falseLa conversión de esquemas de DMS no emula la ROWIDpseudocolumna y deja las referencias como elementos de acción. Úselo cuando su código fuente de Oracle no lo utilice.ROWIDEl código convertido se ejecuta más rápido.Utilice el tipo de datos bigint para emular la pseudocolumna ROWID trueLa conversión de esquemas de DMS emula la ROWIDpseudocolumna del código convertido utilizando el tipo de datos.bigintUtilice el tipo de datos que varía entre caracteres para emular la pseudocolumna ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPELa conversión de esquemas de DMS emula la ROWIDpseudocolumna del código convertido utilizando el tipo de datos.character varyingTipo: cadena (enumeración)
Valor predeterminado:
false
Código
Seleccione la configuración de conversión específica de su código fuente de Oracle.
- Utilice el mapeo de tipos de datos optimizado para las columnas del tipo de datos NUMBER (
UseOptimizedMappingForNumberConversion) -
Especifica si la conversión de esquemas de DMS asigna cada
NUMBERcolumna de Oracle al tipo de datos numéricos que mejor se ajuste en función de la precisión y la escala.-
true— La conversión de esquemas de DMS asigna cadaNUMBERcolumna al tipo numérico de PostgreSQL más específico (por ejemploSMALLINT,,INTEGER,BIGINTo) en función de su precisión y escala. -
false— La conversión de esquemas de DMS mapea todas las columnas a.NUMBERNUMERIC
Tipo: booleano (|)
truefalseValor predeterminado:
true -
- Utilice una función TO_CHAR nativa de PostgreSQL ()
ToCharFunctionOracle -
Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertido
TO_CHAR.-
false— La conversión de esquemas de DMS emula elTO_CHARcomportamiento de Oracle en el código convertido. -
true— La conversión de esquemas de DMS convierteTO_CHARyTO_NCHARllama a la función nativa de PostgreSQLTO_CHAR. Seleccione esta opción para evitar la emulación cuando las cadenas de formato sean compatibles con PostgreSQL.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Utilice una función TO_DATE nativa de PostgreSQL ()
ToDateFunctionOracle -
Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertido
TO_DATE.-
false— La conversión de esquemas de DMS emula elTO_DATEcomportamiento de Oracle en el código convertido. -
true— La conversión de esquemas de DMS convierteTO_DATElas llamadas a la función nativa de PostgreSQLTO_DATE.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Utilice una función TO_NUMBER nativa de PostgreSQL ()
ToNumber -
Especifica si la conversión de esquemas de DMS emula la función de Oracle en el código convertido
TO_NUMBER.-
false— La conversión de esquemas de DMS emula elTO_NUMBERcomportamiento de Oracle en el código convertido. -
true— La conversión de esquemas de DMS convierteTO_NUMBERlas llamadas a la función nativa de PostgreSQLTO_NUMBER.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Mejore el rendimiento del código convertido cuando la base de datos y las aplicaciones utilicen la misma zona horaria ()
ToTimeZone -
Especifica si la conversión de esquemas de DMS emula las zonas horarias del código convertido.
-
true— La conversión de esquemas de DMS no emula las zonas horarias. Úselo cuando la base de datos y las aplicaciones utilicen la misma zona horaria. El código convertido se ejecuta más rápido. -
false— La conversión de esquemas DMS emula las zonas horarias del código convertido.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Rellene las secuencias convertidas con el último valor generado en el lado de la fuente ()
AlertSequenceRestart -
Especifica si la conversión de esquemas de DMS continúa con las secuencias convertidas del último valor generado en la fuente.
-
true— La conversión de esquemas DMS establece que cada secuencia convertida comience desde el último valor generado en la fuente, de modo que las secuencias continúen sin conflictos. -
false— La conversión de esquemas DMS inicia las secuencias convertidas a partir de su valor inicial predeterminado.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Convierta las columnas de clave principal y externa del tipo de datos NUMBER al tipo de datos BIGINT ()
ConvertNumberToBigint -
Especifica si la conversión de esquemas DMS convierte las columnas de clave principal y clave externa del tipo de
NUMBERdatos en.BIGINTÚselo con precaución para evitar la pérdida de datos si la base de datos de origen almacena números de punto flotante en estas columnas.-
true— La conversión de esquemas de DMS asigna las columnas de clave principal y clave externa a.NUMBERBIGINT -
false— La conversión de esquemas DMS utiliza el mapeo numérico estándar para estas columnas.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Convierta solo los activadores y las restricciones activos ()
IgnoreDisabledTriggersConstraints -
Especifica si la conversión de esquemas de DMS omite los activadores y las restricciones desactivados durante la conversión.
-
true— La conversión de esquemas de DMS convierte solo los activadores y restricciones activos y omite los desactivados. -
false— La conversión de esquemas DMS convierte todos los activadores y restricciones, incluidas las desactivadas.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Convierte el código SQL dinámico que se crea en las llamadas rutinas ()
ConvertOutputAsDynamic -
Especifica si la conversión de esquemas de DMS convierte las variables de cadena a las que se hace referencia fuera de la rutina en SQL dinámico.
-
true— La conversión de esquemas de DMS convierte las variables de cadena a las que se hace referencia fuera de la rutina en SQL dinámico. -
false— La conversión de esquemas de DMS no convierte estas variables de cadena en SQL dinámico.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Convierte procedimientos en funciones ()
ConvertProceduresToFunction -
Especifica si la conversión de esquemas de DMS convierte los procedimientos almacenados de Oracle en funciones vacías de PostgreSQL.
-
true— La conversión de esquemas DMS convierte los procedimientos almacenados de Oracle en funciones vacías de PostgreSQL. -
false— La conversión de esquemas DMS convierte los procedimientos almacenados de Oracle en procedimientos PostgreSQL.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Mantenga los nombres de las restricciones generadas por el sistema ()
ConvertSysConstraintNamesUsingOriginal -
Especifica si la conversión de esquemas de DMS mantiene los nombres de las restricciones originales generados por el sistema Oracle en el destino. Utilice esta opción si el código fuente de Oracle utiliza nombres de restricciones generados por el sistema para crear restricciones con los mismos nombres en la base de datos de destino.
-
true— La conversión de esquemas de DMS mantiene los nombres de restricciones originales generados por el sistema Oracle en el destino. -
false— La conversión de esquemas de DMS genera nuevos nombres de restricciones.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Establezca la zona horaria de la base de datos de origen ()
UseDefaultTimeZoneForSysdateEmulation -
Especifica si la función que emula a la
SYSDATEfunción de Oracle utiliza la zona horaria de forma que el código convertido devuelva los mismos valores que la base de datos de origen.DefaultTimeZoneForSysdateEmulation-
true— La conversión de esquemas DMS utiliza la zona horaria especificada enDefaultTimeZoneForSysdateEmulationparaSYSDATEla emulación. -
false— La conversión de esquemas DMS utiliza la zona horaria predeterminada para la emulación.SYSDATE
Tipo: booleano (|)
truefalseValor predeterminado:
false -
DefaultTimeZoneForSysdateEmulation-
La zona horaria que utiliza la conversión de esquemas de DMS cuando se activa
SYSDATEla emulación.UseDefaultTimeZoneForSysdateEmulationEspecifique un nombre de zona horaria de la IANA válido, comoUTC,America/New_Yorko.Europe/BerlinEste valor no tiene efecto cuandoUseDefaultTimeZoneForSysdateEmulationesfalse.Tipo: cadena (nombre de zona horaria de la IANA)
Valor predeterminado:
UTC
nota
Incluye una AWS Management Console opción adicional: Añadir funciones de paquetes de extensión que generen excepciones definidas por el usuario, entre Convertir procedimientos en funciones y Mantener los nombres de las restricciones generadas por el sistema. Esta opción está configurada solo en AWS Management Console y no está disponible a través de la API o la AWS CLI. El comportamiento relacionado con el nivel de gravedad se controla mediante la configuración ShowSeverityLevelInSql común. Para obtener más información, consulte Ajustes de conversión habituales.
Rutinas integradas de Oracle
Elija las rutinas integradas de Oracle para utilizarlas en el código convertido. Oracle es una extensión de PostgreSQL que proporciona rutinas compatibles con las funciones integradas de Oracle. Cada rutina tiene una configuración booleana dedicada. Al configurar una rutina entrue, DMS Schema Conversion convierte la función integrada de Oracle correspondiente en su rutina de Oracle. Cuando se configura enfalse, la conversión de esquemas de DMS deja la función como un elemento de acción para su revisión manual. Para utilizar estas rutinas, la extensión orace debe estar disponible en la base de datos de destino. Todas estas rutinas son de forma predeterminada. false Establezca una rutina true solo después de comprobar que el comportamiento de la función durante el uso es compatible con la rutina de Oracle.
| Nombre del conjunto | Función integrada de Oracle |
|---|---|
AddMonthsBuiltinFunctionOracle |
ADD_MONTHS |
BitandBuiltinFunctionOracle |
BITAND |
CoshBuiltinFunctionOracle |
COSH |
DbmsAssertBuiltinFunctionOracle |
Paquete de DBMS_ASSERT |
DbmsOutputBuiltinFunctionOracle |
Paquete de DBMS_OUTPUT |
DbmsRandomBuiltinFunctionOracle |
Paquete de 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(fecha) |
RoundNumberBuiltinFunctionOracle |
ROUND(número) |
RpadBuiltinFunctionOracle |
RPAD |
RtrimBuiltinFunctionOracle |
RTRIM |
SessiontimezoneBuiltinFunctionOracle |
SESSIONTIMEZONE |
SinhBuiltinFunctionOracle |
SINH |
SubstrBuiltinFunctionOracle |
SUBSTR |
SubstrbBuiltinFunctionOracle |
SUBSTRB |
SysdateBuiltinFunctionOracle |
SYSDATE |
TanhBuiltinFunctionOracle |
TANH |
ToCharDatetimeBuiltinFunctionOracle |
TO_CHAR(fecha y hora) |
ToCharNumberBuiltinFunctionOracle |
TO_CHAR(número) |
ToDateBuiltinFunctionOracle |
TO_DATE |
ToMultiByteBuiltinFunctionOracle |
TO_MULTI_BYTE |
ToNumberBuiltinFunctionOracle |
TO_NUMBER |
ToSingleByteBuiltinFunctionOracle |
TO_SINGLE_BYTE |
TruncDateBuiltinFunctionOracle |
TRUNC(fecha) |
TruncNumberBuiltinFunctionOracle |
TRUNC(número) |
Cada rutina es una clave booleana independiente. El siguiente ejemplo activa las rutinas de Oracle para las funciones Oracle ADD_MONTHS yNVL. SUBSTR Agregue o elimine claves para que coincidan con las funciones del código fuente y aplique las mismas claves a cada nombre de sección que utilice su proyecto.
{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Configuración del código SQL
Configure la forma en que DMS Schema Conversion gestiona los objetos integrados de Oracle que PostgreSQL no admite.
- Convierta los objetos integrados no compatibles en objetos auxiliares ()
ConvUnsupportedBuiltinsToStubs -
Especifica si la conversión de esquemas de DMS sustituye los objetos integrados no compatibles por objetos auxiliares.
-
false— La conversión de esquemas de DMS deja los objetos integrados no compatibles como elementos de acción en el informe de evaluación. -
true— La conversión de esquemas de DMS reemplaza cada objeto integrado no compatible por un objeto auxiliar que tiene la misma firma. El objeto convertido se compila, por lo que puede implementar y probar el resto del esquema antes de abordar los códigos auxiliares individuales.
Tipo: booleano (|)
truefalseValor predeterminado:
false -
- Cree objetos auxiliares en un esquema separado ()
CreateStubsInSeparateSchema -
Especifica si la conversión de esquemas de DMS crea objetos auxiliares en un esquema independiente. Esta opción aparece AWS Management Console solo cuando está seleccionada la opción Convertir objetos integrados no compatibles en objetos auxiliares y solo surte efecto cuando esa opción está habilitada.
-
true— La conversión de esquemas DMS crea objetos auxiliares en un esquema independiente. Esto mantiene limpios los esquemas de las aplicaciones y facilita la identificación de los códigos auxiliares que aún deben implementarse. -
false— La conversión de esquemas de DMS crea objetos auxiliares en el mismo esquema que el objeto convertido.
Tipo: booleano (|)
truefalseValor predeterminado:
true -
Ejemplo: configurar Oracle para los ajustes de PostgreSQL
El siguiente ejemplo mantiene las vistas materializadas como vistas materializadas de PostgreSQL, emula ROWID la pseudocolumna mediante el tipo de datos y convierte bigint los procedimientos en funciones. Aplique la misma configuración a cada nombre de sección que utilice su proyecto (compruebe primero el resultado). 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 } }