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 delle applicazioni legacy da Oracle Pro*C a ECPG
Creato da Sai Parthasaradhi () e Mahesh Balumuri () AWS AWS
Ambiente: PoC o pilota | Fonte: Oracle | Obiettivo: Postgre SQL |
Tipo R: Re-architect | Carico di lavoro: Oracle | Tecnologie: migrazione; database |
Riepilogo
La maggior parte delle applicazioni legacy con SQL codice incorporato utilizza il precompilatore Oracle Pro*C per accedere al database. Quando esegui la migrazione di questi database Oracle ad Amazon Relational Database Service (RDSAmazon) per SQL Postgre o Amazon SQL Aurora Postgre -Compatible Edition, devi convertire il codice dell'applicazione in un formato compatibile con il precompilatore di Postgre, chiamato. SQL ECPG Questo modello descrive come convertire il codice Oracle Pro*C nel suo equivalente in Postgre. SQL ECPG
Per ulteriori informazioni su Pro*C, consulta la documentazione Oracle.
Prerequisiti e limitazioni
Prerequisiti
Un AWS account attivo
Un database compatibile con Amazon RDS for Postgre o SQL Aurora Postgre SQL
Un database Oracle in esecuzione in locale
Strumenti
I SQL pacchetti Postgre elencati nella sezione successiva.
AWSCLI— La AWS Command Line Interface (AWSCLI) è uno strumento open source per interagire con i AWS servizi tramite comandi nella shell della riga di comando. Con una configurazione minima, è possibile eseguire AWS CLI comandi che implementano funzionalità equivalenti a quelle fornite dalla console di AWS gestione basata su browser da un prompt dei comandi.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Installa i pacchetti Postger. SQL | Installa i SQL pacchetti Postgre richiesti utilizzando i seguenti comandi.
| Sviluppatore di app, ingegnere DevOps |
Installa i file di intestazione e le librerie. | Installa il
Solo per l'ambiente di sviluppo, esegui anche i seguenti comandi.
| Sviluppatore di app, DevOps ingegnere |
Configura la variabile del percorso di ambiente. | Imposta il percorso di ambiente per le librerie SQL client Postgre.
| Sviluppatore di app, ingegnere DevOps |
Installa software aggiuntivo se necessario. | Se necessario, installalo pgLoaderin sostituzione di SQL*Loader in Oracle.
Se richiami un'applicazione Java dai moduli Pro*C, installa Java.
Installa ant per compilare il codice Java.
| Sviluppatore di app, DevOps ingegnere |
Installa il AWSCLI. | AWSCLIInstalla i comandi per eseguire l'interazione con AWS servizi come AWS Secrets Manager e Amazon Simple Storage Service (Amazon S3) dalle tue applicazioni.
| Sviluppatore di app, DevOps ingegnere |
Identifica i programmi da convertire. | Identificate le applicazioni che desiderate convertire da Pro*C a. ECPG | Sviluppatore di app, proprietario dell'app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Rimuovi le intestazioni indesiderate. | Rimuovi le | Proprietario dell'app, sviluppatore dell'app |
Aggiorna le dichiarazioni delle variabili. | Aggiungi Rimuovi
| Sviluppatore di app, proprietario dell'app |
ROWNUMFunzionalità di aggiornamento. | La Codice Pro*C:
ECPGcodice:
| Sviluppatore di app, proprietario dell'app |
Aggiorna i parametri della funzione per utilizzare le variabili alias. | In PostgreSQL, i parametri delle funzioni non possono essere usati come variabili host. Sovrascrivili utilizzando una variabile alias. Codice Pro*C:
ECPGcodice:
| Sviluppatore di app, proprietario dell'app |
Aggiorna i tipi di struttura. | Definisci Codice Pro*C: File di intestazione ()
ECPGcodice: file di intestazione ()
File Pro*C ()
ECPGfile ()
| Sviluppatore di app, proprietario dell'app |
Modifica la logica da recuperare dai cursori. | Per recuperare più righe dai cursori utilizzando variabili di matrice, modificate il codice da utilizzare. Codice Pro*C:
ECPGcodice:
| Sviluppatore di app, proprietario dell'app |
Modifica le chiamate ai pacchetti che non hanno valori restituiti. | Le funzioni dei pacchetti Oracle che non hanno valori restituiti devono essere chiamate con una variabile indicatore. Se l'applicazione include più funzioni con lo stesso nome o se le funzioni di tipo sconosciuto generano errori di runtime, digita i valori nei tipi di dati. Codice Pro*C:
ECPGcodice:
| Sviluppatore di app, proprietario dell'app |
Riscrivi SQL _ CURSOR variabili. | Riscrivi la Codice Pro*C:
ECPGcodice:
| Sviluppatore di app, proprietario dell'app |
Applica modelli di migrazione comuni. |
| Sviluppatore di app, proprietario dell'app |
Abilita il debug, se necessario. | Per eseguire il ECPG programma in modalità debug, aggiungi il seguente comando all'interno del blocco funzionale principale.
| Sviluppatore dell'app, proprietario dell'app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un file eseguibile perECPG. | Se si dispone di un file sorgente SQL C incorporato denominato
| Sviluppatore di app, proprietario dell'app |
Crea un make file per la compilazione. | Create un make file per compilare il ECPG programma, come mostrato nel seguente file di esempio.
| Sviluppatore di app, proprietario dell'app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Test del codice. | Verifica il codice dell'applicazione convertito per assicurarti che funzioni correttamente. | Sviluppatore di app, proprietario dell'app, tecnico di test |
Risorse correlate
ECPG- Incorporato SQL in C
(documentazione PostgreSQL) Gestione degli errori (documentazione
SQL Postgre) Perché utilizzare il precompilatore Oracle Pro*C/C++
(documentazione Oracle)
Informazioni aggiuntive
Postgre SQL ha un precompilatore incorporato, che è equivalente al SQL precompilatore Oracle Pro*CECPG. ECPGconverte i programmi C che hanno SQL istruzioni incorporate in codice C standard sostituendo le chiamate con chiamate a funzioni speciali. SQL I file di output possono quindi essere elaborati con qualsiasi catena di strumenti del compilatore C.
File di input e output
ECPGconverte ogni file di input specificato nella riga di comando nel file di output C corrispondente. Se il nome di un file di input non ha un'estensione di file, viene presupposto l'estensione.pgc. L'estensione del file viene sostituita da .c
per costruire il nome del file di output. Tuttavia, è possibile sovrascrivere il nome del file di output predefinito utilizzando l'-o
opzione.
Se utilizzate un trattino (-
) come nome del file di input, ECPG legge il programma dallo standard input e scrive sullo standard output, a meno che non lo sovrascriviate utilizzando l'opzione. -o
File di intestazione
Quando il SQL compilatore Postgre compila i file di codice C preelaborati, cerca i file di ECPG intestazione nella directory Postgre. SQL include
Pertanto, potrebbe essere necessario utilizzare l'-I
opzione per indirizzare il compilatore alla directory corretta (ad esempio,). -I/usr/local/pgsql/include
Libraries (Librerie)
I programmi che utilizzano codice C con incorporato SQL devono essere collegati alla libecpg
libreria. Ad esempio, è possibile utilizzare le opzioni -L/usr/local/pgsql/lib -lecpg
del linker.
ECPGLe applicazioni convertite richiamano le funzioni della libpq
libreria tramite la SQL libreria incorporata (ecpglib
) e comunicano con il SQL server Postgre utilizzando il protocollo frontend/backend standard.