SnowConvert: Bericht über fehlende Objekte

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.

ObjectTeradataOracleSQL ServerExtensibility Languages
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.

Bekannte Probleme

Warnung

In Shell-Dateien definierte Variablen, die in Skriptdateien wie .bteq-Dateien verwendet werden, gelten als fehlende Objekte, da ihre Definition nicht Teil der Eingabedateien ist, die SnowConvert verarbeitet. Zum Beispiel ist die Variable myDB in der Shell-Datei definiert, aber diese Datei ist nicht Teil der Eingabe für SnowConvert. Es wird nur die .bteq-Datei verarbeitet, und daher wird die Zeile 5 als fehlende Referenz markiert.

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.