Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Migrar os pacotes de pragma Oracle SERIALLY_REUSABLE para o PostgreSQL - Recomendações da AWS

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á.

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á.

Migrar os pacotes de pragma Oracle SERIALLY_REUSABLE para o PostgreSQL

Criado por Vinay Paladi (AWS)

Resumo

Esse padrão fornece uma step-by-step abordagem para migrar pacotes Oracle definidos como pragma SERIALLY_REUSABLE para o PostgreSQL na Amazon Web Services (AWS). Essa abordagem mantém a funcionalidade do pragma SERIALLY_REUSABLE.

O PostgreSQL não suporta o conceito de pacotes e o pragma SERIALLY_REUSABLE. 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 aplicar essas variáveis, o exemplo de script de função wrapper fornecido nesse padrão usa um pacote de extensão do AWS Schema Conversion Tool (AWS SCT).

Para obter mais informações, consulte o Pragma SERIALLY_REUSABLE na documentação da Oracle.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • A versão mais recente do AWS SCT e os drivers necessários

  • Um banco de dados Amazon Aurora Edição Compatível com PostgreSQL ou Amazon Relational Database Service (Amazon RDS) para banco de dados PostgreSQL

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

Arquitetura de migração

Dados de banco de dados Oracle locais que vão para a AWS usando AWS SCT, arquivos.sql, conversão manual, para PostgreSQL.

Ferramentas

Serviços da AWS

Outras ferramentas

  • O pgAdmin é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.

Épicos

TarefaDescriçãoHabilidades necessárias

Configurar o AWS SCT.

Configurar a conectividade do AWS SCT com o banco de dados de origem. Para obter mais informações, consulte Uso de banco de dados Oracle como origem para o AWS SCT.

DBA, Desenvolvedor

Converter o script.

Use o AWS SCT para converter o pacote Oracle selecionando o banco de dados de destino como compatível com o Aurora PostgreSQL.

DBA, Desenvolvedor

Salve os arquivos .sql.

Antes de salvar o arquivo .sql, modifique a opção Configurações do projeto no AWS SCT para Arquivo único por estágio. O AWS SCT deverá separar o arquivo .sql em vários arquivos .sql com base no tipo de objeto.

DBA, Desenvolvedor

Alterar o código.

Abra a função init gerada pelo AWS SCT e altere-a conforme mostrado no exemplo na seção Informações adicionais. Ele adicionará uma variável para obter a funcionalidade pg_serialize = 0.

DBA, Desenvolvedor

Teste a conversão.

Implante a função init no banco de dados compatível com PostgreSQL do Aurora e teste os resultados.

DBA, Desenvolvedor

Migrar o pacote Oracle usando o AWS SCT

TarefaDescriçãoHabilidades necessárias

Configurar o AWS SCT.

Configurar a conectividade do AWS SCT com o banco de dados de origem. Para obter mais informações, consulte Uso de banco de dados Oracle como origem para o AWS SCT.

DBA, Desenvolvedor

Converter o script.

Use o AWS SCT para converter o pacote Oracle selecionando o banco de dados de destino como compatível com o Aurora PostgreSQL.

DBA, Desenvolvedor

Salve os arquivos .sql.

Antes de salvar o arquivo .sql, modifique a opção Configurações do projeto no AWS SCT para Arquivo único por estágio. O AWS SCT deverá separar o arquivo .sql em vários arquivos .sql com base no tipo de objeto.

DBA, Desenvolvedor

Alterar o código.

Abra a função init gerada pelo AWS SCT e altere-a conforme mostrado no exemplo na seção Informações adicionais. Ele adicionará uma variável para obter a funcionalidade pg_serialize = 0.

DBA, Desenvolvedor

Teste a conversão.

Implante a função init no banco de dados compatível com PostgreSQL do Aurora e teste os resultados.

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()
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.