Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione dei pacchetti Oracle SERIALLY _ REUSABLE pragma in Postgre SQL
Creato da Vinay Paladi () AWS
Ambiente: PoC o pilota | Fonte: database Oracle | Destinazione: Postgre SQL |
Tipo R: Re-architect | Carico di lavoro: Oracle; open source | Tecnologie: migrazione; database |
AWSservizi: AWSSCT; Amazon Aurora |
Riepilogo
Questo modello fornisce un step-by-step approccio per la migrazione dei pacchetti Oracle definiti come SERIALLY _ REUSABLE pragma verso Postgre su Amazon Web SQL Services (). AWS Questo approccio mantiene la funzionalità del pragma _. SERIALLY REUSABLE
Postgre SQL non supporta il concetto di pacchetti e il pragma _. SERIALLY REUSABLE Per ottenere funzionalità simili in PostgreSQL, puoi creare schemi per pacchetti e distribuire tutti gli oggetti correlati (come funzioni, procedure e tipi) all'interno degli schemi. Per ottenere la funzionalità del REUSABLE pragma SERIALLY _, lo script della funzione wrapper di esempio fornito in questo modello utilizza un pacchetto di estensione AWSSchema Conversion Tool () AWS SCT.
Per ulteriori informazioni, vedere SERIALLY_ REUSABLE Pragma nella documentazione di Oracle
Prerequisiti e limitazioni
Prerequisiti
Un account attivo AWS
La versione più recente AWS SCT e i driver richiesti
Un database Amazon Aurora Postgre SQL -Compatible Edition o un database Amazon Relational Database Service (Amazon) per Postgre RDS SQL
Versioni del prodotto
Database Oracle versione 10g e successive
Architettura
Stack tecnologico di origine
Database Oracle locale
Stack tecnologico Target
Aurora Postgre -Compatibile con Amazon per SQL Postgre
RDS SQL AWS SCT
Architettura di migrazione
Strumenti
AWSservizi
AWSSchema Conversion Tool (AWSSCT) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
Amazon Aurora Postgre SQL -Compatible Edition è un motore di database relazionale completamente gestito e ACID conforme che ti aiuta a configurare, gestire e scalare le distribuzioni Postgre. SQL
Amazon Relational Database Service (RDSAmazon) per SQL Postgre ti aiuta a configurare, gestire e scalare un database relazionale SQL Postgre nel cloud. AWS
Altri strumenti
pgAdmin
è uno strumento di gestione open source per SQL Postgre. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Configurare AWSSCT. | Configura la AWS SCT connettività al database di origine. Per ulteriori informazioni, vedere Utilizzo del database Oracle come fonte per AWS SCT. | DBA, Sviluppatore |
Convertire lo script. | Utilizzare AWS SCT per convertire il pacchetto Oracle selezionando il database di destinazione come Aurora SQL Postgre -Compatible. | DBA, Sviluppatore |
Salva i file.sql. | Prima di salvare il file.sql, modificate l'opzione Impostazioni del progetto in File singolo AWS SCT per fase. AWSSCTseparerà il file.sql in più file.sql in base al tipo di oggetto. | DBA, Sviluppatore |
Cambia il codice. | Apri la | DBA, Sviluppatore |
Prova la conversione. | Distribuisci la | DBA, Sviluppatore |
Risorse correlate
Informazioni aggiuntive
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()