SOURCE_CHANGES

注釈

このストアドプロシージャは非推奨であり、Denodo Platform の次のメジャーバージョンでは削除される可能性があります。このプロシージャの代わりに GET_SOURCE_CHANGES プロシージャを使用してください。「GET_SOURCE_CHANGES」は、接続しているデータベースだけではなく、任意のデータベースを検索して同じ情報を返すことができます。

非推奨のすべての機能のリストについては、「 Features Deprecated for Denodo Platform 8.0 」のセクションを参照してください。

説明

ストアドプロシージャ SOURCE_CHANGES は、基本ビューとその基盤となるデータソースとのスキーマの違いを検出します。

たとえば、JDBC 基本ビューの場合、このプロシージャはデータベース内のテーブルのスキーマと基本ビューのスキーマとの違いを検出します。

注釈

このプロシージャの代わりに GET_SOURCE_CHANGES プロシージャを使用することをお勧めします。任意のデータベースの基本ビューの変更を検索できるからです。「SOURCE_CHANGES」は、現在のデータベースの基本ビューに対してのみ機能します。

構文

SOURCE_CHANGES (
    table_name : text
)
  • table_name: 基本ビューの名前。このビューが存在しないか、派生ビューではない場合、このプロシージャはエラーを返します。

このプロシージャは、ビューのフィールドごとに 1 つの行と、ソースに存在しても、基本ビューには存在しないフィールドごとに 1 つの行を返します。

フィールドが配列またはレジスターである場合は、そのサブフィールドごとに 1 つの行も返されます。

このプロシージャの出力スキーマには以下のフィールドがあります。

  • field: ビュー内のフィールドの名前。行が新しいフィールドを表している場合、これはソース内のフィールドの名前と同じです。

  • type: フィールドの新しい型。フィールドが変更されない場合、この値は「old_type」と同じです。フィールドがソースから削除された場合、この値は空です。

  • old_type: フィールドの古い型。フィールドの型が変更されない場合、この値は「type」と同じです。行が新しいフィールドを表している場合、この値は空です。

  • modification: 空の場合、フィールドは変更されていません。そうでない場合、値は以下のいずれかです。

    • 「New field」: 行はソースに追加されたフィールドを表しています。

    • 「Deleted field」: 行はソースから削除されたフィールドを表しています。

    • 「Type has changed」: フィールドの型が変更されました。

    • 「Compound structure has changed」: このフィールドのサブフィールドの 1 つが変更されました。

  • level: 第 1 レベルのフィールドの場合、この値は 1 です。

注意

  • デフォルトでは、ソースを検出しなかった場合、このプロシージャはエラーを返します。たとえば、 table_name が JDBC 基本ビューであり、データベースからテーブル/ビューが削除された場合、このプロシージャはエラーを返します。また、 table_name が JSON 基本ビューであり、JSON ファイルが存在しない場合も同様です。

    ソースが存在しない場合にこのプロシージャが失敗しないようにするには、VQL シェルから以下のステートメントを実行します (管理者である必要があります)。

    SET 'com.denodo.vdb.contrib.storedprocedure.SourceChangesProcedure.errorsAsResults'='true'
    

    Virtual DataPort サーバーを再起動して変更を適用します。

    この変更により、このプロシージャはフィールドごとに 1 つではなく、1 つの行のみを返すようになり、 modification フィールドにエラーが保持されます。

必要な権限

このプロシージャを実行できるのは、基本ビューに対する Metadata 権限を持ち、データソースに対する Execute 権限を持つユーザーのみです。つまり、以下のユーザーはこのプロシージャを実行できます。

  • 管理者またはこのデータベースの管理者

  • このデータベースに対する Connect 権限、基本ビューに対する Metadata 権限、およびデータソースに対する Execute 権限を持つユーザー

internet_inc は JDBC 基本ビューであり、そのテーブルの現在のスキーマが基本ビューの作成後に以下のように変更されたとします。

  • テーブルに新しいフィールド CUSTOMER_ID が追加された

  • フィールド SPECIFIC_FIELD1 がテーブルから削除された

  • フィールド TTIME の型が text に変更された

SELECT field, type, old_type, modification, depth
FROM SOURCE_CHANGES()
WHERE table_name = 'internet_inc';

上記のクエリを呼び出した結果は以下のとおりです。

field

type

old_type

modification

depth

IINC_ID

long

long

1

SUMMARY

text

text

1

TTIME

text

date

Type has changed

1

TAXID

text

text

1

SPECIFIC_FIEL D1

text

Deleted Field

1

CUSTOMER_ID

long

New Field

1