As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Migre pacotes Oracle SERIALLY _ REUSABLE pragma para o Postgre SQL
Criado por Vinay Paladi () AWS
Ambiente: PoC ou piloto | Origem: banco de dados Oracle | Alvo: Postgre SQL |
Tipo R: redefinir arquitetura | Workload: Oracle; código aberto | Tecnologias: migração; bancos de dados |
AWSserviços: AWSSCT; Amazon Aurora |
Resumo
Esse padrão fornece uma step-by-step abordagem para migrar pacotes Oracle definidos como SERIALLY _ REUSABLE pragma para o Postgre SQL na Amazon Web Services (). AWS Essa abordagem mantém a funcionalidade do REUSABLE pragma SERIALLY _.
O Postgre SQL não suporta o conceito de pacotes e o REUSABLE pragma SERIALLY _. Para obter uma funcionalidade semelhante no PostgreSQL, você pode criar esquemas para pacotes e implantar todos os objetos relacionados (como funções, procedimentos e tipos) dentro dos esquemas. Para obter a funcionalidade do REUSABLE pragma SERIALLY _, o exemplo de script de função wrapper fornecido nesse padrão usa um pacote de extensão AWSSchema Conversion Tool () AWS SCT.
Para obter mais informações, consulte SERIALLY_ REUSABLE Pragma
Pré-requisitos e limitações
Pré-requisitos
Uma AWS conta ativa
A versão mais recente AWS SCT e os drivers necessários
Um banco de dados Amazon Aurora Postgre SQL -Compatible Edition ou um banco de dados Amazon Relational Database Service (RDSAmazon) para Postgre SQL
Versões do produto
Banco de dados Oracle versão 10g e posterior
Arquitetura
Pilha de tecnologia de origem
Banco de dados Oracle on-premises
Pilha de tecnologias de destino
Aurora Postgre — SQL Compatível com Amazon para Postgre
RDS SQL AWS SCT
Arquitetura de migração
Ferramentas
AWSserviços
AWSA Schema Conversion Tool AWS SCT () suporta migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
O Amazon Aurora Postgre SQL -Compatible Edition é um mecanismo de banco de dados relacional totalmente gerenciado e ACID compatível que ajuda você a configurar, operar e escalar implantações do Postgre. SQL
O Amazon Relational Database Service (RDSAmazon) para SQL Postgre ajuda você a configurar, operar e escalar um banco de dados relacional SQL Postgre na nuvem. AWS
Outras ferramentas
pgAdmin
é uma ferramenta de gerenciamento de código aberto para o Postgre. SQL Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Configurar AWSSCT. | Configure a AWS SCT conectividade com o banco de dados de origem. Para obter mais informações, consulte Usando o Oracle Database como fonte para AWS SCT. | DBA, Desenvolvedor |
Converter o script. | Use AWS SCT para converter o pacote Oracle selecionando o banco de dados de destino como compatível com Aurora SQL Postgre. | DBA, Desenvolvedor |
Salve os arquivos .sql. | Antes de salvar o arquivo.sql, modifique a opção Configurações do projeto em AWS SCT Arquivo único por estágio. AWSSCTseparará o arquivo.sql em vários arquivos.sql com base no tipo de objeto. | DBA, Desenvolvedor |
Alterar o código. | Abra a | DBA, Desenvolvedor |
Teste a conversão. | Implante a | DBA, Desenvolvedor |
Recursos relacionados
Mais informações
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()