Esegui la migrazione di funzioni e procedure Oracle con più di 100 argomenti a PostgreSQL - Prontuario AWS

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

Esegui la migrazione di funzioni e procedure Oracle con più di 100 argomenti a PostgreSQL

Srinivas Potlachervoo, Amazon Web Services

Riepilogo

Questo modello mostra come migrare le funzioni e le procedure di Oracle Database con più di 100 argomenti a PostgreSQL. Ad esempio, puoi utilizzare questo modello per migrare le funzioni e le procedure Oracle verso uno dei seguenti servizi di database AWS compatibili con PostgreSQL:

  • Amazon Relational Database Service (Amazon RDS) per PostgreSQL

  • Amazon Aurora PostgreSQL-Compatible Edition

PostgreSQL non supporta funzioni o procedure con più di 100 argomenti. Come soluzione alternativa, puoi definire un nuovo tipo di dati con campi di tipo che corrispondono agli argomenti della funzione di origine. È quindi possibile creare ed eseguire una PL/pgSQL funzione che utilizza il tipo di dati personalizzato come argomento.

Prerequisiti e limitazioni

Prerequisiti

Versioni del prodotto

  • Istanza Amazon RDS Oracle DB versioni 10.2 e successive

  • Istanza DB Amazon RDS PostgreSQL 9.4 e successive o istanze DB compatibili con Aurora PostgreSQL versioni 9.4 e successive

  • Oracle SQL Developer versione 18 e successive

  • pGAdmin versione 4 e successive

Architettura

Stack tecnologico di origine

  • Istanza Amazon RDS Oracle DB versioni 10.2 e successive

Stack tecnologico Target

  • Istanza DB Amazon RDS PostgreSQL 9.4 e successive o istanze DB compatibili con Aurora PostgreSQL versioni 9.4 e successive

Strumenti

Servizi AWS

Altri servizi

  • Oracle SQL Developer è un ambiente di sviluppo integrato che semplifica lo sviluppo e la gestione dei database Oracle nelle implementazioni tradizionali e basate sul cloud.

  • pgAdmin è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

Best practice

Assicuratevi che il tipo di dati che create corrisponda ai campi di tipo inclusi nella funzione o procedura Oracle di origine.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea o identifica una Oracle/PLSQL funzione o una procedura esistente con più di 100 argomenti.

Create una Oracle/PLSQL funzione o una procedura con più di 100 argomenti.

oppure

Identifica una Oracle/PLSQL funzione o una procedura esistente con più di 100 argomenti.

Per ulteriori informazioni, vedere le sezioni 14.7 CREATE FUNCTION Statement e 14.11 CREATE PROCEDURE Statement nella documentazione del database Oracle.

Conoscenza di Oracle/PLSQL

Compilare la funzione o la procedura. Oracle/PLSQL

Compilare la Oracle/PLSQL funzione o la procedura.

Per ulteriori informazioni, vedere Compilazione di una funzione nella documentazione di Oracle Database.

Conoscenza di Oracle/PLSQL

Esegui la funzione. Oracle/PLSQL

Esegui la Oracle/PLSQL funzione o la procedura. Quindi, salvate l'output.

Conoscenza di Oracle/PLSQL
AttivitàDescrizioneCompetenze richieste

Definisci un nuovo tipo di dati in PostgreSQL.

Definisci un nuovo tipo di dati in PostgreSQL che includa tutti gli stessi campi che compaiono negli argomenti della funzione o della procedura Oracle di origine.

Per ulteriori informazioni, vedere CREATE TYPE nella documentazione di PostgreSQL.

Conoscenza di PostgreSQL PL/pgSQL
AttivitàDescrizioneCompetenze richieste

Crea una funzione PostgreSQL che includa il nuovo tipo di dati.

Crea una funzione PostgreSQL che includa il nuovo argomento. TYPE

Per esaminare una funzione di esempio, consulta la sezione Informazioni aggiuntive di questo modello.

Conoscenza di PostgreSQL PL/pgSQL

Compila la funzione PostgreSQL.

Compila la funzione in PostgreSQL. Se i nuovi campi del tipo di dati corrispondono agli argomenti della funzione o della procedura di origine, la funzione viene compilata correttamente.

Conoscenza di PostgreSQL PL/pgSQL

Esegui la funzione PostgreSQL.

Esegui la funzione PostgreSQL.

Conoscenza di PostgreSQL PL/pgSQL

Risoluzione dei problemi

ProblemaSoluzione

La funzione restituisce il seguente errore:

ERRORE: errore di sintassi vicino a "" <statement>

Assicuratevi che tutte le istruzioni della funzione terminino con un punto e virgola (). ;

La funzione restituisce il seguente errore:

ERRORE: "" non è una variabile nota <variable>

Assicurati che la variabile utilizzata nel corpo della funzione sia elencata nella DECLARE sezione della funzione.

Risorse correlate

Informazioni aggiuntive

Esempio di funzione PostgreSQL che include un argomento TYPE

CREATE OR REPLACE FUNCTION test_proc_new ( IN p_rec type_test_proc_args ) RETURNS void AS $BODY$ BEGIN /* ************** The body would contain code to process the input values. For our testing, we will display couple of values. *************** */ RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_acct_id: ', p_rec.p_acct_id); RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_ord_id: ', p_rec.p_ord_id); RAISE NOTICE USING MESSAGE = CONCAT_WS('', 'p_ord_date: ', p_rec.p_ord_date); END; $BODY$ LANGUAGE plpgsql COST 100;