SnowConvert AI - Configurações de conversão Oracle

Configurações gerais de conversão

Conversão de objetos

Página de configurações gerais de conversão

  1. Transform Synonyms: Sinalizador para indicar se os sinônimos devem ou não ser transformados. Por padrão, ele é definido como true.

  2. Transform Packages to new Schemas: Sinalizador para indicar se os pacotes devem ou não ser transformados em novos esquemas.

    Verifique a nomenclatura do procedimento de ativação e desativação do sinalizador:

Entrada

CREATE OR REPLACE PACKAGE emp_mgmt AS
PROCEDURE remove_emp (employee_id NUMBER );
END emp_mgmt;

CREATE OR REPLACE PACKAGE BODY emp_mgmt AS 
PROCEDURE remove_emp (employee_id NUMBER) IS 
   BEGIN 
      DELETE FROM employees 
      WHERE employees.employee_id = remove_emp.employee_id; 
      tot_emps := tot_emps - 1; 
   END; 
END emp_mgmt; 
Copy

Padrão de saída

CREATE SCHEMA IF NOT EXISTS emp_mgmt
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;

CREATE OR REPLACE PROCEDURE emp_mgmt.remove_emp (employee_id NUMBER(38, 18))
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
   BEGIN
      DELETE FROM
         employees
         WHERE employees.employee_id = remove_emp.employee_id;
         tot_emps :=
                     !!!RESOLVE EWI!!! /*** SSC-EWI-OR0036 - TYPES RESOLUTION ISSUES, ARITHMETIC OPERATION '-' MAY NOT BEHAVE CORRECTLY BETWEEN unknown AND Number ***/!!!
                     tot_emps - 1;
   END;
$$;
Copy

Saída com parâmetro disablePackagesAsSchemas

-- Additional Params: --disablePackagesAsSchemas
CREATE OR REPLACE PROCEDURE EMP_MGMT_REMOVE_EMP (employee_id NUMBER(38, 18))
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
   BEGIN
      DELETE FROM
         employees
         WHERE employees.employee_id = remove_emp.employee_id;
         tot_emps :=
                     !!!RESOLVE EWI!!! /*** SSC-EWI-OR0036 - TYPES RESOLUTION ISSUES, ARITHMETIC OPERATION '-' MAY NOT BEHAVE CORRECTLY BETWEEN unknown AND Number ***/!!!
                     tot_emps - 1;
   END;
$$;
Copy
  1. Transform Date as Timestamp:

Sinalizador para indicar se SYSDATE deve ser transformado em CURRENT_DATE ou CURRENT_TIMESTAMP. Isso também afetará todas as colunas DATE que serão transformadas em TIMESTAMP.

Entrada

CREATE TABLE DATE_TABLE(
    DATE_COL DATE
);

SELECT SYSDATE FROM DUAL;
Copy

Padrão de saída

CREATE OR REPLACE TABLE DATE_TABLE (
        DATE_COL TIMESTAMP /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
    ;

    SELECT
        CURRENT_TIMESTAMP()
    FROM DUAL;
Copy

Saída com parâmetro disableDateAsTimestamp

-- Additional Params: --disableDateAsTimestamp
CREATE OR REPLACE TABLE DATE_TABLE (
        DATE_COL DATE /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
    ;

    SELECT
        CURRENT_DATE()
    FROM DUAL;
Copy
  1. Transform OUTER JOINS to ANSI Syntax: Sinalizador para indicar se junções externas devem ser transformadas apenas para a sintaxe ANSI.

  2. Tipos de conversão de dados: você pode carregar um arquivo JSONabaixo para definir tipos de dados específicos considerando a origem do tipo de dados e o nome da coluna.

Guia de resultados gerais

Guia de resultados gerais

  1. Objetos de comentário com dependências ausentes: este sinalizador indica se o usuário deseja comentar os nós com dependências ausentes.

  2. Definir a codificação dos arquivos de entrada: verifique as Configurações gerais de conversão para obter mais detalhes.

Nota

Para revisar as configurações que se aplicam a todas as linguagens compatíveis, acesse o seguinte artigo SnowConvert AI - Configurações gerais de conversão.

Configurações de nomes de objetos DB

Página de configurações de nomes de objetos DB

  1. Schema: O valor da cadeia de caracteres especifica o nome do esquema personalizado a ser aplicado. Se não for especificado, será usado o nome original do banco de dados. Exemplo: DB1.myCustomSchema.Table1.

  2. Database: O valor da cadeia de caracteres especifica o nome do banco de dados personalizado a ser aplicado. Exemplo: MyCustomDB.PUBLIC.Table1.

  3. Default: Nenhuma das configurações acima será usada nos nomes dos objetos.

Preparar configurações de código

Página de preparação de configurações de código

Descrição

Preparar meu código: sinalizador para indicar se o código de entrada deve ser processado antes da análise e da transformação. Isso pode ser útil para melhorar o processo de análise. Por padrão, ele é definido como FALSE.

Divide os objetos de nível superior do código de entrada em vários arquivos. As pastas seriam organizadas da seguinte forma:

Cópia

└───A new folder named ''[input_folder_name]_Processed''
    └───Top-level object type
        └───Schema name
Copy

Exemplo

Entrada

├───in
│       DDL_Packages.sql
│       DDL_Procedures.sql
│       DDL_Tables.sql
Copy

Saída

Assuma que o nome dos arquivos corresponde ao nome dos objetos de nível superior nos arquivos de entrada.


├───in_Processed
    ├───package
    │   └───MY_SCHEMA
    │           MY_FIRST_PACKAGE.sql
    │           ANOTHER_PACKAGE.sql
    │
    ├───procedure
    │   └───MY_SCHEMA
    │           A_PROCEDURE.sql
    │           ANOTHER_PROCEDURE.sql
    │           YET_ANOTHER_PROCEDURE.sql
    │
    └───table
        └───MY_SCHEMA
                MY_TABLE.sql
                ADDITIONAL_TABLE.sql
                THIRD_TABLE.sql
Copy

Dentro da pasta “nome do esquema”, deve haver tantos arquivos quantos objetos de nível superior no código de entrada. Além disso, é possível ter cópias de alguns arquivos quando vários objetos de nível superior do mesmo tipo têm o mesmo nome. Nesse caso, os nomes dos arquivos serão enumerados em ordem crescente.

Requisitos

Para identificar objetos de nível superior, uma tag deve ser incluída em um comentário antes de sua declaração. Nosso script Extração gera essas tags.

A tag deve seguir o seguinte formato:

<sc-top_level_object_type>top_level_object_name</sc-top_level_object_type>
Copy

Você pode seguir o próximo exemplo:

/* <sc-table> MY_SCHEMA.MY_TABLE</sc-table> */
CREATE TABLE "MY_SCHEMA"."MY_TABLE" (
    "MY_COLUMN" VARCHAR2(128)
) ;
Copy

Configurações de taxa de conversão

Página de configurações de taxa de conversão

Nessa página, você pode escolher se a porcentagem de código convertido com êxito é calculada usando linhas de código ou usando o número total de caracteres. A taxa de conversão de caracteres é a opção padrão. Você pode ler toda a documentação sobre a taxa na página de documentação.

Configurações de linguagens de destino de procedimentos armazenados

Página de configurações de linguagens de destino dos procedimentos armazenados

Nessa página, você pode escolher se os procedimentos armazenados serão migrados para JavaScript incorporados no Snow SQL ou para o Snowflake Scripting. A opção padrão é Snowflake Scripting.

Redefinir configurações: a opção de redefinição de configurações aparece em todas as páginas. Se você tiver feito alterações, será possível redefinir SnowConvert AI às suas configurações padrão originais.