Migración de aplicaciones de bases de datos de SQL Server a una base de datos de IA autónoma
Puede migrar sentencias SQL de SQL Server a Oracle SQL y ejecutar las sentencias en Autonomous AI Database.
- Traducir sentencias de SQL Server a Oracle SQL
 Puede convertir sentencias SQL escritas en SQL Server en Oracle SQL y ejecutar las sentencias traducidas en Autonomous AI Database.
- Ejecución de sentencias SQL Server en una base de datos de IA autónoma
 Puede traducir y ejecutar de forma interactiva sentencias SQL Server en su base de datos de IA autónoma.
- Migración de archivos de SQL Server a Oracle SQL
 Puede migrar un archivo que contenga sentencias SQL Server a un archivo que contenga sentencias SQL de Oracle.
- Limitaciones para Migración y Traducción de Sentencias SQL Server a Oracle SQL
 En esta sección se resumen las limitaciones para migrar sentencias SQL de SQL Server a Oracle SQL.
Traducir sentencias de SQL Server a Oracle SQL
Puede convertir sentencias SQL escritas en SQL Server en Oracle SQL y ejecutar las sentencias traducidas en Autonomous AI Database.
Utilice DBMS_CLOUD_MIGRATION.MIGRATE_SQL para convertir una sentencia de SQL Server en Oracle SQL. Hay variantes de procedimiento y función de DBMS_CLOUD_MIGRATION.MIGRATE_SQL.
                     
Migración de sentencias de SQL Server a Oracle SQL con el procedimiento MIGRATE_SQL
En el siguiente ejemplo se acepta la sentencia SQL escrita en SQL Server como entrada, se convierte la sentencia en Oracle SQL, se asigna la sentencia SQL traducida a output_sql_result y se imprime el resultado:
                     
SET SERVEROUTPUT ON
   declare output_sql_result CLOB;
BEGIN
  DBMS_CLOUD_MIGRATION.MIGRATE_SQL(      
    original_sql => 'CREATE TABLE [dbo].[movie] ([film_id] [int], [title] [varchar](20));',
    output_sql   => output_sql_result,
    source_db    => 'SQLSERVER');
    DBMS_OUTPUT.PUT_LINE (output_sql_result);
END;        
/
Output
–-------------------------------------------------------------
CREATE TABLE movie (film_id NUMBER(10), title VARCHAR2(20));El parámetro original_sql especifica la sentencia SQL de SQL Server.
                     
El parámetro output_sql almacena el SQL traducido.
                     
El parámetro source_db especifica la base de datos de SQL Server.
                     
Consulte MIGRATE_SQL Procedimiento y función para obtener más información.
Migración de Sentencias SQL Server 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 de SQL Server y la función devuelve la sentencia traducida en Oracle SQL:
                     
SELECT DBMS_CLOUD_MIGRATION.MIGRATE_SQL(
     'CREATE TABLE [dbo].[movie] ([film_id] [int], [title] [varchar](20));','SQLSERVER') AS OUTPUT 
     FROM DUAL;
OUTPUT
------------------------------------------------------------------------------
CREATE TABLE movie (film_id NUMBER(10), title VARCHAR2(20));Utilice el parámetro SQLSERVER para traducir desde Microsoft SQL Server.
                     
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 de SQL Server 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.
Ejecución de sentencias SQL Server en una base de datos de IA autónoma
Puede traducir y ejecutar de forma interactiva sentencias SQL Server 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 SQL Server. Después de activar la traducción en una sesión, las sentencias SQL que no son de Oracle 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 sentencias SQL Server y ejecutar comandos:
Puede consultar la vista V$MAPPED_SQL para mostrar las sentencias SQL Server 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 = 'SQLSERVER'
        AND o.object_type = 'TRANSLATION PROFILE';Migración de archivos de SQL Server a Oracle SQL
Puede migrar un archivo que contenga sentencias SQL Server a un archivo que contenga sentencias SQL de Oracle.
El procedimiento DBMS_CLOUD_MIGRATION.MIGRATE_FILE traduce sentencias SQL en un archivo SQL Server en Object Storage y genera un nuevo archivo que contiene Oracle SQL.
                     
Como requisito, cargue uno o más archivos de SQL Server con una extensión .sql en una ubicación de Object Storage. En los siguientes ejemplos se utiliza el archivo mssqltest.sql que se carga en Object Storage. Consulte Poner datos en el almacenamiento de objetos para obtener más información.
                     
Para migrar archivos de SQL Server a Oracle SQL:
Ejecute la siguiente consulta para ver el contenido del archivo mssqltest_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
--------------------------------------------------------------------------------
DROP TABLE movie;
CREATE TABLE movie (film_id NUMBER(10), title VARCHAR2(20));
 
INSERT INTO movie (film_id, title) VALUES (123, 'Tangled');
INSERT INTO movie (film_id, title) VALUES (234, 'Frozen');
 
CREATE TABLE inventory(film_id NUMBER(10), inventory_id NUMBER(10));
INSERT INTO inventory(film_id, inventory_id) VALUES (123, 223);
INSERT INTO inventory(film_id, inventory_id) VALUES (234, 334);
 
SELECT * FROM movie;
SELECT * FROM inventory;
SELECT m.film_id, m.title, inventory_id FROM movie m LEFT JOIN inventory ON inventory.film_id = m.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 Traducción de Sentencias SQL Server a Oracle SQL
En esta sección se resumen las limitaciones de la migración de sentencias SQL de SQL Server a Oracle SQL.
- 
ISJSON()
- 
OPENJSON()