Migración de aplicaciones de bases de datos PostgreSQL a una base de datos de IA autónoma
Puede migrar sentencias SQL de PostgreSQL a Oracle SQL y ejecutar las sentencias en Autonomous AI Database.
- Traducir sentencias PostgreSQL a Oracle SQL
 Puede convertir sentencias SQL escritas en PostgreSQL a Oracle SQL y ejecutar las sentencias traducidas en Autonomous AI Database.
- Ejecución de sentencias PostgreSQL en una base de datos de IA autónoma
 Puede traducir y ejecutar de forma interactiva sentencias PostgreSQL en su base de datos de IA autónoma.
- Migración de archivos PostgreSQL a Oracle SQL
 Puede migrar un archivo que contenga sentencias PostgreSQL a un archivo que contenga sentencias SQL de Oracle.
- Limitaciones para la migración y la traducción de sentencias PostgreSQL a Oracle SQL
 En esta sección se resumen las limitaciones para migrar sentencias SQL de PostgreSQL a Oracle SQL.
Traducir sentencias PostgreSQL a Oracle SQL
Puede convertir sentencias SQL escritas en PostgreSQL en Oracle SQL y ejecutar las sentencias traducidas en Autonomous AI Database.
Utilice DBMS_CLOUD_MIGRATION.MIGRATE_SQL para traducir la sentencia PostgreSQL a Oracle SQL. Hay variantes de procedimiento y función de DBMS_CLOUD_MIGRATION.MIGRATE_SQL.
                     
Migrar la sentencia PostgreSQL a Oracle SQL con el procedimiento MIGRATE_SQL
En el siguiente ejemplo se acepta la sentencia SQL escrita en PostgreSQL como entrada, se convierte la sentencia en SQL de Oracle, se asigna la sentencia SQL traducida a output_sql_result e imprime el resultado:
                     
SET SERVEROUTPUT ON
   declare output_sql_result CLOB;
BEGIN
  DBMS_CLOUD_MIGRATION.MIGRATE_SQL(      
    original_sql => 'SELECT e.employee_id, e.last_name, e.salary FROM employees AS e;',
    output_sql   => output_sql_result,
    source_db    => 'POSTGRES');
    DBMS_OUTPUT.PUT_LINE (output_sql_result);
END;        
/
Output
–-------------------------------------------------------------
SELECT e.employee_id, e.last_name, e.salary FROM employees e;El parámetro original_sql especifica la sentencia PostgreSQL.
                     
El parámetro output_sql almacena el SQL traducido.
                     
El parámetro source_db especifica el nombre de la base de datos PostgreSQL.
                     
Consulte MIGRATE_SQL Procedimiento y función para obtener más información.
Migrar la sentencia PostgreSQL a Oracle SQL con la función MIGRATE_SQL
En el siguiente ejemplo se muestra la función DBMS_CLOUD_MIGRATION.MIGRATE_SQL en una sentencia SELECT. La entrada de función es una sentencia PostgreSQL y la función devuelve la sentencia traducida en Oracle SQL:
                     
SELECT DBMS_CLOUD_MIGRATION.MIGRATE_SQL(
     'CREATE TABLE IF NOT EXISTS cars (brand VARCHAR(255), model VARCHAR(255), year INT)',
     'POSTGRES') AS output FROM DUAL;
OUTPUT
------------------------------------------------------------------------------
create table cars (brand VARCHAR2(255), model VARCHAR2(255), year NUMBER(10);Consulte MIGRATE_SQL Procedimiento y función para obtener más información.
Notas para ejecutar DBMS_CLOUD_MIGRATION.MIGRATE_SQL:
                     
- 
Puede que se produzca un error durante la traducción si la sentencia SQL de entrada no está soportada en Oracle SQL. Consulte Limitaciones para la migración y la traducción de sentencias PostgreSQL a Oracle SQL para obtener más información. 
- 
Los subprogramas DBMS_CLOUD_MIGRATION.MIGRATE_SQLsolo aceptan una sentencia SQL como entrada. Por lo tanto, solo se puede convertir una sola sentencia SQL por llamada.
Ejecutar sentencias PostgreSQL en una base de datos de IA autónoma
Puede traducir y ejecutar de forma interactiva sentencias PostgreSQL en su base de datos de IA autónoma.
Utilice el procedimiento ENABLE_TRANSLATION para activar la traducción en tiempo real de sentencias SQL escritas en PostgreSQL. Después de activar la traducción en una sesión, las sentencias PostgreSQL se traducen y ejecutan automáticamente como sentencias SQL de Oracle, y puede ver los resultados.
                     
ENABLE_TRANSLATION, puede realizar de forma interactiva lo siguiente en una sesión:
                        - 
Cree las tablas. Por ejemplo, cree las tablas MOVIEyINVENTORY.
- 
Insertar datos en tablas. 
- 
Tablas de consultas. 
- 
Realizar operaciones JOIN en tablas. Por ejemplo, puede realizar una unión externa izquierda en las tablas. 
Para activar la traducción con PostgreSQL y ejecutar comandos:
Puede consultar la vista V$MAPPED_SQL para mostrar las sentencias PostgreSQL que se traducen y asignan en memoria a sentencias SQL de Oracle.
                     
Por ejemplo:
SELECT v.* 
    FROM v$mapped_sql v, dba_objects o
    WHERE v.sql_translation_profile_id = o.object_id
        AND o.object_name = 'POSTGRES'
        AND o.object_type = 'TRANSLATION PROFILE';Migración de archivos PostgreSQL a Oracle SQL
Puede migrar un archivo que contenga sentencias PostgreSQL a un archivo que contenga sentencias SQL de Oracle.
El procedimiento DBMS_CLOUD_MIGRATION.MIGRATE_FILE traduce sentencias SQL en un archivo PostgreSQL de Object Storage y genera un nuevo archivo que contiene Oracle SQL.
                     
Como requisito, cargue uno o más archivos PostgreSQL con una extensión .sql en una ubicación de Object Storage. En los siguientes ejemplos se utiliza el archivo postgrestest.sql que se carga en Object Storage. Consulte Poner datos en el almacenamiento de objetos para obtener más información.
                     
Para migrar archivos PostgreSQL a Oracle SQL:
Ejecute la siguiente consulta para ver el contenido del archivo postgrestest_oracle.sql:
                     
SELECT UTL_RAW.CAST_TO_VARCHAR2 (DBMS_CLOUD.GET_OBJECT(
   credential_name => 'OCI$RESOURCE_PRINCIPAL', 
   object_uri => 'https://objectstorage.region.oraclecloud.com/n/namespace/b/bucket/o/files')) 
FROM dual;
UTL_RAW.CAST_TO_VARCHAR2(DBMS_CLOUD.GET_OBJECT(CREDENTIAL_NAME=>'CRED1',OBJECT_U
--------------------------------------------------------------------------------
SELECT f.film_id, f.title, inventory_id
FROM film f LEFT JOIN inventory
ON inventory.film_id = f.film_id;
También, si crea una credencial en lugar de la entidad de recurso, OCI$RESOURCE_PRINCIPAL, especifique el nombre de credencial en el parámetro credential_name.
                     
Consulte GET_OBJECT Procedimiento y función para obtener más información.
Limitaciones para la migración y la traducción de PostgreSQL sentencias a Oracle SQL
En esta sección se resumen las limitaciones de la migración de sentencias SQL de PostgreSQL a Oracle SQL.
- CREATE DOMAIN
- CREATE EXTENSION
- CREATE DATABASE
- CREATE TYPE
- SET
- ALTER TABLE: solo se admite- ALTER TABLE ADD CONSTRAINTal migrar a Autonomous AI Database.
- DELETE: la palabra clave- RETURNING *de la sentencia- DELETEno está soportada en la base de datos de IA autónoma. Debe sustituir la cláusula- RETURNING *por la cláusula- RETURNING INTO. Por ejemplo,- DELETE FROM tasks WHERE status = 'DONE' RETURNING *;.- Consulte RETURNING INTO Clause para obtener más información. 
- CREATE FUNCTION: los siguientes elementos no están soportados con- CREATE FUNCTION:- El tipo de retorno SETOF, debe sustituirSETOFpor los tipos de retornoCURSORSoCOLLECTIONS.
- La cláusula IMMUTABLE.
- Declaraciones de parámetros con el formato FUNCTION_NAME (DATATYPE, DATATYPE).
 
- El tipo de retorno 
- ALTER FUNCTION: los argumentos de la función- ALTER FUNCTION, por ejemplo,- RENAME TO,- OWNER TO,- SET SCHEMA, no están soportados.