Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Migrer les packages Oracle SERIALLY _ REUSABLE pragma vers Postgre SQL
Créée par Vinay Paladi () AWS
Environnement : PoC ou pilote | Source : base de données Oracle | Cible : Poster SQL |
Type R : Ré-architecte | Charge de travail : Oracle ; logiciel libre | Technologies : migration ; bases de données |
AWSservices : AWS SCT ; Amazon Aurora |
Récapitulatif
Ce modèle fournit une step-by-step approche pour la migration des packages Oracle définis comme SERIALLY _ REUSABLE pragma vers Postgre SQL sur Amazon Web Services (). AWS Cette approche préserve la fonctionnalité du SERIALLY _ REUSABLE pragma.
Postgre SQL ne supporte pas le concept de packages ni le REUSABLE pragma SERIALLY _. Pour obtenir des fonctionnalités similaires dans PostgreSQL, vous pouvez créer des schémas pour les packages et déployer tous les objets associés (tels que les fonctions, les procédures et les types) dans les schémas. Pour obtenir les fonctionnalités du SERIALLY _ REUSABLE pragma, l'exemple de script de fonction wrapper fourni dans ce modèle utilise un pack d'extension AWS Schema Conversion Tool (AWSSCT).
Pour plus d'informations, consultez SERIALLY_ REUSABLE Pragma
Conditions préalables et limitations
Prérequis
Un AWS compte actif
La dernière version de AWS SCT et les pilotes requis
Une base de données Amazon Aurora Postgre SQL -Compatible Edition ou une base de données Amazon Relational Database Service (AmazonRDS) pour Postgre SQL
Versions du produit
Oracle Database version 10g et versions ultérieures
Architecture
Pile technologique source
Base de données Oracle sur site
Pile technologique cible
Aurora Postgre SQL -Compatible
pour Amazon RDS pour Postgre SQL AWS SCT
Architecture de migration
Outils
AWSservices
AWSSchema Conversion Tool (AWSSCT) prend en charge les migrations de bases de données hétérogènes en convertissant automatiquement le schéma de base de données source et la majorité du code personnalisé dans un format compatible avec la base de données cible.
Amazon Aurora Postgre SQL -Compatible Edition est un moteur de base de données relationnelle entièrement géré ACID et conforme qui vous aide à configurer, exploiter et dimensionner les déploiements Postgre. SQL
Amazon Relational Database Service (RDSAmazon) pour SQL Postgre vous aide à configurer, exploiter et dimensionner une base de données relationnelle SQL Postgre dans le cloud. AWS
Autres outils
pgAdmin
est un outil de gestion open source pour SQL Postgre. Il fournit une interface graphique qui vous permet de créer, de gérer et d'utiliser des objets de base de données.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez AWSSCT. | Configurez la AWS SCT connectivité à la base de données source. Pour plus d'informations, consultez la section Utilisation de la base de données Oracle comme source pour AWS SCT. | DBA, Développeur |
Convertissez le script. | AWSSCTÀ utiliser pour convertir le package Oracle en sélectionnant la base de données cible comme étant compatible avec Aurora PostgreSQL. | DBA, Développeur |
Enregistrez les fichiers .sql. | Avant d'enregistrer le fichier .sql, modifiez l'option Paramètres du projet AWS SCT sur Fichier unique par étape. AWSSCTséparera le fichier .sql en plusieurs fichiers .sql en fonction du type d'objet. | DBA, Développeur |
Changez le code. | Ouvrez la | DBA, Développeur |
Testez la conversion. | Déployez la | DBA, Développeur |
Ressources connexes
Informations supplémentaires
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()