SnowConvert AI - Missing Objects Report

Was ist ein „fehlendes Objekt“?

„Fehlendes Objekt“ ist der Begriff, der sich auf fehlende DDL-Definitionen im Quellcode bezieht, auf die von Codeeinheiten verwiesen wird. Die folgende Tabelle zeigt, welche Elemente in jeder unterstützten Sprache fehlen können.

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

Bemerkung

Wenn im obigen Abschnitt ein Sternchen (*) aufgeführt ist, bedeutet dies, dass das Objekt verwendet wird, um Eigenschaften von sich selbst aus aufzurufen, die nicht als DDL-Anweisungen gelten, wie Konstanten, Variablen oder Cursor.

Wo kann ich es finden?

Der Bericht über fehlende Objekte befindet sich in einem Ordner namens reports im Ausgabeordner Ihrer Konvertierung. Der Name der Datei selbst beginnt mit MissingObjectReferences, damit sie leicht gefunden werden kann.

Das Format der Datei ist .CSV.

Welche Informationen sind darin enthalten?

Der Bericht über fehlende Objekte enthält die folgenden Informationen über alle bei der Konvertierung als fehlend festgestellten Objekte:

Spalte

Beschreibung

PartitionKey

Der eindeutige Bezeichner der Konvertierung.

FileName

Der Name der Datei, in der sich das Objekt befindet.

Caller_CodeUnit

Der Typ der Codeeinheit, die auf ein fehlendes Element verweist.

Caller_CodeUnit_Database

Die Datenbank, in der die Codeeinheit, die auf das fehlende Element verweist, bereitgestellt wird. Derzeit können nur SQL Server-Objekte eine Datenbank haben.

Caller_CodeUnit_Schema

Das Schema, in dem die Codeeinheit, die das fehlende Element referenziert, bereitgestellt wird.

Caller_CodeUnit_Name

Der Name der Codeeinheit, die das fehlende Element referenziert.

Caller_CodeUnit_FullName

Der vollqualifizierte Name der Codeeinheit, die das fehlende Element referenziert.

Referenced_Element_Database

Die Datenbank, in der das fehlende Element bereitgestellt wird. Derzeit können nur SQL Server-Objekte eine Datenbank haben.

Referenced_Element_Schema

Das Schema, in dem das fehlende Element bereitgestellt wird.

Referenced_Element_Name

Der Name des fehlenden Elements.

Referenced_Element_FullName

Der vollqualifizierte Name des fehlenden Elements.

Line

Die Zeilennummer innerhalb der Datei, in der sich die Referenz befindet.

Relation_Type

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

Bekannte Probleme

Warnung

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

Warnung

Die Vorverarbeitung einer Oracle-Workload durch Aufteilung von Paketen kann zu zusätzlichen fehlenden Referenzen führen, wenn das Schema des Pakets nicht in den extrahierten Objekten angegeben ist.

Ursprünglicher Code

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

END   
Copy

Beachten Sie, dass in diesem Fall Table1 automatisch innerhalb des Schemas Schema1 erstellt wird, sodass die Referenz in Zeile 9 korrekt aufgelöst wird. Wenn jedoch vor der Migration ein Paketaufteilungsprozess ausgeführt wird und die resultierenden Dateien wie diese aussehen:

Geänderter Code nach einem Paketaufteilungsprozess

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

Die Referenz in Zeile 3 der Datei Schema1_Proc1.sql wird als fehlende Referenz markiert, da Table1 nicht explizit innerhalb des Schemas Schema1 erstellt wurde.