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.
Migre los paquetes Oracle SERIALLY _ REUSABLE pragma a Postgre SQL
Creado por Vinay Paladi () AWS
Entorno: PoC o piloto | Origen: base de datos de Oracle | Objetivo: Postgre SQL |
Tipo R: renovar arquitectura | Carga de trabajo: Oracle; código abierto | Tecnologías: migración; bases de datos |
AWSservicios: AWS SCT Amazon Aurora |
Resumen
Este patrón proporciona un step-by-step enfoque para migrar paquetes de Oracle que se definen como SERIALLY _ REUSABLE pragma a Postgre en Amazon Web SQL Services (). AWS Este enfoque mantiene la funcionalidad del pragma _. SERIALLY REUSABLE
Postgre SQL no admite el concepto de paquetes ni el pragma _. SERIALLY REUSABLE Para obtener una funcionalidad similar en PostgreSQL, puede crear esquemas para paquetes e implementar todos los objetos relacionados (como funciones, procedimientos y tipos) dentro de los esquemas. Para lograr la funcionalidad del REUSABLE pragma SERIALLY _, el script de función contenedora de ejemplo que se proporciona en este patrón utiliza un paquete de extensiones AWS Schema Conversion Tool (AWSSCT).
Para obtener más información, consulte SERIALLY_ REUSABLE Pragma
Requisitos previos y limitaciones
Requisitos previos
Una cuenta activa AWS
La última versión AWS SCT y los controladores necesarios
Una base de datos Amazon Aurora de edición SQL compatible con Postgre o una base de datos Amazon Relational Database Service (AmazonRDS) para Postgre SQL
Versiones de producto
Oracle Database versión 10g y posteriores
Arquitectura
Pila de tecnología de origen
Oracle Database en las instalaciones
Pila de tecnología de destino
Aurora Postgre: compatible con Amazon SQL para
Postgre RDS SQL AWS SCT
Arquitectura de migración
Herramientas
AWSservicios
AWSSchema Conversion Tool (AWSSCT) admite migraciones de bases de datos heterogéneas al convertir automáticamente el esquema de la base de datos de origen y la mayoría del código personalizado a un formato compatible con la base de datos de destino.
Amazon Aurora Postgre SQL -Compatible Edition es un motor de base de datos relacional totalmente administrado y ACID compatible que le ayuda a configurar, operar y escalar las implementaciones de Postgre. SQL
Amazon Relational Database Service (RDSAmazon) para SQL Postgre le ayuda a configurar, operar y escalar una base de datos relacional de SQL Postgre en la nube. AWS
Otras herramientas
pgAdmin
es una herramienta de administración de código abierto para Postgre. SQL Proporciona una interfaz gráfica que permite crear, mantener y utilizar objetos de bases de datos.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configurar AWSSCT. | Configure AWS SCT la conectividad con la base de datos de origen. Para obtener más información, consulte Uso de Oracle Database como fuente de AWS SCT. | DBA, desarrollador |
Convierta el script. | AWSSCTUtilícelo para convertir el paquete Oracle seleccionando la base de datos de destino como compatible con Aurora Postgre. SQL | DBA, Desarrollador |
Guarde los archivos.sql. | Antes de guardar el archivo.sql, modifique la opción Configuración del proyecto AWS SCT para convertirla en Archivo único por etapa. AWSSCTseparará el archivo.sql en varios archivos.sql según el tipo de objeto. | DBA, Desarrollador |
Cambie el código. | Abra la | DBA, desarrollador |
Pruebe la conversión. | Implemente la | DBA, Desarrollador |
Recursos relacionados
Información adicional
Source Oracle Code: CREATE OR REPLACE PACKAGE test_pkg_var IS PRAGMA SERIALLY_REUSABLE; PROCEDURE function_1 (test_id number); PROCEDURE function_2 (test_id number ); END; CREATE OR REPLACE PACKAGE BODY test_pkg_var IS PRAGMA SERIALLY_REUSABLE; v_char VARCHAR2(20) := 'shared.airline'; v_num number := 123; PROCEDURE function_1(test_id number) IS begin dbms_output.put_line( 'v_char-'|| v_char); dbms_output.put_line( 'v_num-'||v_num); v_char:='test1'; function_2(0); END; PROCEDURE function_2(test_id number) is begin dbms_output.put_line( 'v_char-'|| v_char); dbms_output.put_line( 'v_num-'||v_num); END; END test_pkg_var; Calling the above functions set serveroutput on EXEC test_pkg_var.function_1(1); EXEC test_pkg_var.function_2(1); Target Postgresql Code: CREATE SCHEMA test_pkg_var; CREATE OR REPLACE FUNCTION test_pkg_var.init(pg_serialize IN INTEGER DEFAULT 0) RETURNS void AS $BODY$ DECLARE BEGIN if aws_oracle_ext.is_package_initialized( 'test_pkg_var' ) AND pg_serialize = 0 then return; end if; PERFORM aws_oracle_ext.set_package_initialized( 'test_pkg_var' ); PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'shared.airline.basecurrency'::CHARACTER VARYING(100)); PERFORM aws_oracle_ext.set_package_variable('test_pkg_var', 'v_num', 123::integer); END; $BODY$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION test_pkg_var.function_1(pg_serialize int default 1) RETURNS void AS $BODY$ DECLARE BEGIN PERFORM test_pkg_var.init(pg_serialize); raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char'); raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num'); PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'test1'::varchar); PERFORM test_pkg_var.function_2(0); END; $BODY$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION test_pkg_var.function_2(IN pg_serialize integer default 1) RETURNS void AS $BODY$ DECLARE BEGIN PERFORM test_pkg_var.init(pg_serialize); raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char'); raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num'); END; $BODY$ LANGUAGE plpgsql; Calling the above functions select test_pkg_var.function_1() select test_pkg_var.function_2()