SnowConvert: 欠落オブジェクトレポート

欠落オブジェクトとは

欠落オブジェクトとは、コードユニットによって参照されているソースコード内の DDL 定義が欠落していることを指す用語です。下のテーブルは、サポートされている各言語で、どの要素が欠落オブジェクトになる可能性があるかを示しています。

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

注釈

上のセクションでアスタリスク(「*」)がリストされている場合は、オブジェクトが定数、変数、カーソルなどの DDL ステートメントとみなされないプロパティを自分自身から呼び出すために使用されていることを意味します。

存在する場所

欠落オブジェクトのレポートは、変換の出力フォルダー内の_「reports」_というフォルダーにあります。ファイル名は 「MissingObjectReferences」 で始まるため、簡単に見つけることができます。

ファイルの形式は .CSV です。

コンテナーに含まれる情報

欠落オブジェクトレポートには、変換中に見つかったすべての欠落オブジェクトに関する以下の情報が含まれています。

説明

PartitionKey

変換の一意識別子。

FileName

オブジェクトが置かれているファイル名。

Caller_CodeUnit

欠落要素を参照するコードユニットのタイプ。

Caller_CodeUnit_Database

欠落要素を参照するコードユニットが配置されているデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。

Caller_CodeUnit_Schema

欠落要素を参照するコードユニットが配置されるスキーマ。

Caller_CodeUnit_Name

欠落要素を参照するコードユニットの名前。

Caller_CodeUnit_FullName

欠落要素を参照するコードユニットの完全修飾名。

Referenced_Element_Database

欠落要素が配置されているデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。

Referenced_Element_Schema

欠落要素が配置されているスキーマ。

Referenced_Element_Name

欠落要素の名前。

Referenced_Element_FullName

欠落要素の完全修飾名。

参照があるファイル内の行番号。

既知の問題

警告

.bteqのようなスクリプトファイルで使用されるシェルファイルで定義された変数は、 SnowConvert が処理する入力ファイルの一部ではないため、欠落オブジェクトとみなされます。たとえば、 myDB 変数はシェルファイルで定義されていますが、これは SnowConvert の入力の一部ではないファイルです。.bteqファイルのみが処理されるため、5行目は参照なしとしてマークされます。

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

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

警告

パッケージを分割してOracleワークロードを前処理すると、抽出されたオブジェクトでパッケージのスキーマが指定されていない場合、余分な参照が欠落することがあります。

オリジナルコード

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

END   
Copy

この場合、 Table1 がスキーマ Schema1 内に自動的に作成されるため、9行目の参照が正しく解決されることに注意してください。しかし、移行前にパッケージの分割処理が実行され、その結果のファイルが次のような場合、

パッケージ分割処理後の変更コード

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

Table1 はスキーマ Schema1 内に明示的に作成されていないため、ファイル Schema1_Proc1.sql の3行目の参照は欠落参照としてマークされます。