

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 códigos de erro do banco de dados Oracle para um banco de dados compatível com Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database"></a>

*Sai Parthasaradhi e Veeranjaneyulu Grandhi, Amazon Web Services*

## Resumo
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Esse padrão mostra como migrar códigos de erro do banco de dados Oracle para um banco de dados do [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) usando uma tabela de metadados predefinida.

Os códigos de erro do Oracle Database nem sempre têm um código de erro PostgreSQL correspondente. Essa diferença nos códigos de erro pode dificultar a configuração da lógica de processamento dos procedimentos ou funções na arquitetura PostgreSQL de destino.

Você pode simplificar o processo armazenando os códigos de erro do banco de dados de origem e destino que são significativos para o seu PL/pgSQL programa em uma tabela de metadados. Em seguida, configure a tabela para sinalizar códigos de erro válidos do banco de dados Oracle e mapeá-los para seus equivalentes do PostgreSQL antes de continuar com a lógica restante do processo. Se o código de erro do Oracle Database não estiver na tabela de metadados, o processo será encerrado com a exceção. Em seguida, você pode revisar manualmente os detalhes do erro e adicionar o novo código de erro à tabela, se o programa exigir.

Ao usar essa configuração, seu banco de dados compatível com Amazon Aurora PostgreSQL pode lidar com erros da mesma forma que seu banco de dados Oracle de origem.

**nota**  
A configuração de um banco de dados do PostgreSQL para lidar adequadamente com os códigos de erro do Oracle Database normalmente exige alterações no banco de dados e no código da aplicação.

## Pré-requisitos e limitações
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem com serviços de instância e de receptor em execução
+ Um cluster compatível com o Amazon Aurora PostgreSQL que está em execução
+ Familiaridade com o Oracle Database
+ Familiaridade com bancos de dados PostgreSQL

## Arquitetura
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

O diagrama a seguir mostra um exemplo de fluxo de trabalho de banco de dados compatível com Amazon Aurora PostgreSQL para validação e tratamento de códigos de erro de dados:

![Validação e tratamento de códigos de erro de dados para um banco de dados do Aurora compatível com PostgreSQL.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Uma tabela contém os códigos de erro e as classificações do Oracle Database e seus códigos de erro e classificações equivalentes do PostgreSQL. A tabela inclui uma coluna **valid\_error** que classifica se códigos de erro específicos e predefinidos são válidos ou não.

1. **Quando uma PL/pgSQL função (**func\_processdata**) lança uma exceção, ela invoca uma segunda função (error\_validation). PL/pgSQL **

1. A função **error\_validation** aceita o código de erro do Oracle Database como argumento de entrada. Em seguida, a função verifica o código de erro recebido em relação à tabela para ver se o erro está incluído na tabela.

1. Se o código de erro do banco de dados Oracle estiver incluído na tabela, a função **error\_validation** retornará um valor **VERDADEIRO** e a lógica do processo continuará. Se o código de erro não estiver incluído na tabela, a função retornará um valor **FALSO **e a lógica do processo será encerrada com uma exceção.

1. Quando a função retorna um valor **FALSE**, os detalhes do erro são revisados manualmente pelo líder funcional do aplicativo para determinar sua validade.

1. O novo código de erro é então adicionado manualmente à tabela ou não. Se o código de erro for válido e adicionado à tabela, a função **error\_validation** retornará um valor **TRUE** na próxima vez que a exceção ocorrer. Se o código de erro não for válido e o processo falhar quando a exceção ocorrer, o código de erro não será adicionado à tabela.

**Pilha de tecnologia**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Oracle SQL Developer

## Ferramentas
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID, que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento e desenvolvimento de código aberto para o PostgreSQL. Fornece uma interface gráfica que simplifica a criação, manutenção e uso de objetos de banco de dados.
+ [O Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) é um ambiente de desenvolvimento gratuito e integrado que simplifica o desenvolvimento e o gerenciamento do Oracle Database em implantações tradicionais e na nuvem.

## Épicos
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Migre códigos de erro do banco de dados Oracle para seu banco de dados compatível com Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tabela no Amazon Aurora compatível com PostgreSQL. | Execute o seguinte comando [CREATE TABLE](https://www.postgresql.org/docs/current/sql-createtable.html) do PostgreSQL:<pre>(<br /><br />    source_error_code numeric NOT NULL,<br /><br />    target_error_code character varying NOT NULL,<br /><br />    valid_error character varying(1) NOT NULL<br /><br />); </pre> | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Adicione os códigos de erro do PostgreSQL e seus códigos de erro do Oracle Database correspondentes à tabela. | Execute o comando [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) do PostgreSQL para adicionar os valores de código de erro necessários à tabela **error\_codes**.<br />Os códigos de erro do PostgreSQL devem usar o tipo de dados variável de caracteres (valor **SQLSTATE**). Os códigos de erro do Oracle devem usar o tipo de dados numéricos (valor **SQLCODE**).<br />**Exemplo de instruções de inserção:**<pre>insert into error_codes values (-1817,'22007','Y');<br />insert into error_codes values (-1816,'22007','Y');<br />insert into error_codes values (-3114,'08006','N');</pre>Se você estiver capturando exceções específicas da Oracle na conectividade Java com o banco de dados (JDBC), será necessário substituir essas exceções por exceções genéricas compatíveis com diversos bancos de dados ou usar exceções específicas do PostgreSQL. | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Crie uma PL/pgSQL função para validar códigos de erro. | Crie uma PL/pgSQL função executando o comando CREATE FUNCTION do [PostgreSQL](https://www.postgresql.org/docs/current/sql-createfunction.html). Certifique-se de que a função faça o seguinte:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Revise manualmente os novos códigos de erro conforme eles são registrados pela PL/pgSQL função. | Revise manualmente os novos códigos de erro.<br />Se um novo código de erro for válido para seu caso de uso, adicione-o à tabela **error\_codes** executando o comando **INSERT** do PostgreSQL.<br />- ou -<br />Se um novo código de erro não for válido para seu caso de uso, não o adicione à tabela. A lógica do processo continuará falhando e será encerrada, com exceção, quando o erro ocorrer. | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 

## Recursos relacionados
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Apêndice A. Códigos de erro do PostgreSQL](https://www.postgresql.org/docs/11/errcodes-appendix.html) (Documentação do PostgreSQL)

[Mensagens de erro do banco de dados](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm) (Documentação do Oracle Database)