SnowConvert AI - Missing Objects Report

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.

Object

Teradata

Oracle

Transact-SQL

Redshift

BigQuery

Spark

Databricks

Hive

Vertica

PostgreSQL

Greenplum

Netezza

Azure Synapse

Table

View

Procedure

Function

Macro

Package Function

Package Procedure

*Package

Join Index

Index

Synonym

Database Link

Type

Materialized View

Trigger

Sequence

Constraint

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

Shows the type of relation used through the caller code unit and the MISSING reference.

Problemas conhecidos

Aviso

Variables defined in shell files used in script files like .bteq are considered missing objects because their definition is not part of the input files that SnowConvert AI processes. E.g. the myDB variable is defined in the shell file but this is a file that is not part of the input for SnowConvert AI. Only the .bteq file will be processed and therefore, line 5 will be marked as a missing reference.

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.