SnowConvert AI - Relatório de objetos ausentes

O que é um «objeto ausente»?

Objeto ausente é o termo usado para se referir às definições DDL ausentes dentro do código-fonte que estão sendo referenciadas por unidades de código. A tabela abaixo mostra quais elementos podem ser objetos ausentes em cada linguagem suportada.

Objeto

Teradata

Oracle

Transact-SQL

Redshift

BigQuery

Spark

Databricks

Hive

Vertica

PostgreSQL

Greenplum

Netezza

Azure Synapse

IBM DB2

Tabela

Exibição

Procedimento

Função

Macro

Função do pacote

Procedimento do pacote

*Pacote

Índice de junção

Índice

Sinônimo

Link de banco de dados

Tipo

Exibição materializada

Acionador

Sequência

Restrição

Nota

Se um asterisco (“*”) estiver listado na seção acima, isso significa que o objeto é usado para chamar propriedades de si mesmo que não são consideradas instruções DDL, como constantes, variáveis ou cursores.

Onde posso encontrá-lo?

O relatório de objetos ausentes pode ser encontrado em uma pasta chamada «reports», na pasta de saída de sua conversão. O nome do arquivo em si começa com «MissingObjectReferences» para que possa ser facilmente localizado.

O formato do arquivo é .CSV.

Que informações ele contém?

O relatório de objetos ausentes contém as seguintes informações sobre todos os objetos ausentes encontrados durante a conversão:

Coluna

Descrição

PartitionKey

O identificador exclusivo da conversão.

FileName

O nome do arquivo no qual o objeto está localizado.

Caller_CodeUnit

O tipo de unidade de código que faz referência a um elemento ausente.

Caller_CodeUnit_Database

O banco de dados em que a unidade de código que faz referência ao elemento ausente é implantada. Por enquanto, somente os objetos do servidor SQL podem ter um banco de dados.

Caller_CodeUnit_Schema

O esquema em que a unidade de código que faz referência ao elemento ausente é implantada.

Caller_CodeUnit_Name

O nome da unidade de código que faz referência ao elemento ausente.

Caller_CodeUnit_FullName

O nome qualificado completo da unidade de código que faz referência ao elemento ausente.

Referenced_Element_Database

O banco de dados em que o elemento ausente está implantado. Por enquanto, somente os objetos do servidor SQL podem ter um banco de dados.

Referenced_Element_Schema

O esquema em que o elemento ausente é implantado.

Referenced_Element_Name

O nome do elemento ausente.

Referenced_Element_FullName

O nome qualificado completo do elemento ausente.

Linha

O número da linha dentro do arquivo em que a referência está localizada.

Relation_Type

Mostra o tipo de relação usado por meio da unidade de código do autor da chamada e da referência de MISSING.

Problemas conhecidos

Aviso

As variáveis definidas em arquivos shell usados em arquivos de script como .bteq são consideradas objetos ausentes porque sua definição não faz parte dos arquivos de entrada que o SnowConvert AI processa. Por exemplo, a variável myDB é definida no arquivo shell, mas esse é um arquivo que não faz parte da entrada do SnowConvert AI. Somente o arquivo .bteq será processado e, portanto, a linha 5 será marcada como uma referência ausente.

export myDB=exampleDatabase
bteq < example.bteq
Copy
.LABEL EX_SQE

create multiset volatile table DR as
   select * from ${myDB}.myTable;
Copy

Aviso

O pré-processamento de uma carga de trabalho Oracle por meio da divisão de pacotes pode resultar em referências extras ausentes se o esquema do pacote não for especificado nos objetos extraídos.

Código original

CREATE package Schema1.Package1
IS
  CREATE TABLE Table1 (
    col1 INTEGER
  );
  
  CREATE PROCEDURE Proc1
    BEGIN
      SELECT * FROM Schema1.Table1;
    END

END   
Copy

Observe que, nesse caso, Table1 é criada automaticamente dentro do esquema Schema1, de modo que a referência na linha 9 é resolvida corretamente. No entanto, se um processo de divisão de pacotes for executado antes da migração e os arquivos resultantes forem como estes:

Código modificado após um processo de divisão de pacote

  CREATE TABLE Table1 (
    col1 INTEGER1
  ); 
Copy
CREATE PROCEDURE Proc1
    BEGIN
        SELECT * FROM Schema1.Table1;
    END
Copy

A referência na linha 3 do arquivo Schema1_Proc1.sql será marcada como uma referência ausente, pois Table1 não foi criada explicitamente no esquema Schema1.