MIGRATE_DATE_TYPES

説明

ストアドプロシージャ MIGRATE_DATE_TYPES は、基本ビュー、インターフェイスビュー、および複合型を自動的にスキャンし、それらを更新して、 date (非推奨) 型の列を Denodo 7.0 で追加された日時型のいずれかに変更します。

構文

GET_VIEWS (
      input_database_name : text
    , input_process_base_views : boolean
    , input_process_interface_views  : boolean
    , input_process_complex_types  : boolean
)
  • input_database_name に NULL 以外の値を指定した場合、このプロシージャはそのデータベース内のエレメントのみをスキャンします。データベース内のエレメントを更新すると、その変更が他のデータベースのエレメントに伝播される場合があります。このパラメーターに null を渡した場合、このプロシージャはサーバー内のすべてのエレメントを更新します。

  • input_process_base_viewsinput_process_interface_views 、および input_process_complex_types を false に設定すると、その種類のエレメントの処理をスキップできます。

  • このプロシージャは、以下の方法で date 型のフィールドを新しい型に変更します。

    • JDBC 基本ビューの場合、Virtual DataPort は基本ビューの CREATE WRAPPER JDBC ステートメントの「sourceTypeName」フィールド、および基本ビューのデータソースのアダプターを参照します。Virtual DataPort はこの情報に基づいて、いずれかの新しい型に変更された日付フィールドをエクスポートします。

    • JDBC 以外の基本ビューまたは派生ビューの場合、Virtual DataPort は CREATE TABLE ステートメントのフィールドの「sourceTypeId」プロパティを参照します。

      • 「sourceTypeId」プロパティが DATE の場合、フィールドは localdate に更新されます。これは、時刻がない日付値を表す Denodo の型の名前です (SQL の DATE 型に相当)。

      • TIME の場合、フィールドは time に更新されます。

      • TIMESTAMP の場合、フィールドは date (非推奨) のままです。フィールドが timestamp であるか、または timestamptz であるかを知るための十分な情報が存在しません。

      • フィールドにソース型がない場合、フィールドは date (非推奨) のままです。

    いずれかの新しいデータ型に変更されたフィールドをエクスポートするための十分な情報が存在しない場合、フィールドは date としてエクスポートされます。これは、フィールドにソース型 ID が定義されていない JDBC 以外の基本ビュー、または関数を適用した結果である派生ビューのフィールドで発生します。

このプロシージャによって返される各行には、以下のフィールドがあります。

  • database_name: 行に示されているエレメントのデータベースの名前。

  • element_name: 更新されるエレメントの名前。

  • element_type: 更新されるエレメントの型。「BASE」、「INTERFACE」、または「REGISTER」です。

  • column_name: 更新される date 型のフィールドの名前。

  • column_new_type: フィールドに割り当てられる新しい型。

  • status: そのフィールドの移行プロセスの結果を示すメッセージ。たとえば、「OK」のみを示す場合や、変更の伝播に伴い変更されたビューのリストを示す場合、エラーを示す場合などがあります。

必要な権限

このプロシージャを実行するユーザーは、処理対象のすべてのデータベースに対する管理権限を持っている必要があります。

例 1

SELECT *
FROM MIGRATE_DATE_TYPES()
WHERE input_process_base_views = true AND input_process_interface_views = true AND input_process_complex_types = true

すべてのデータベースをスキャンして、 date 型のフィールドがある基本ビュー、インターフェイスビュー、および複合型を検索し、上記のルールに従ってそれらを更新します。 date 型の列ごとに 1 つの行を返します。

例 2

SELECT database_name, element_name, element_type, nest(column_name, column_new_type, status)
FROM MIGRATE_DATE_TYPES()
WHERE input_process_base_views = true AND input_process_interface_views = true AND input_process_complex_types = true
GROUP BY database_name, element_name, element_type

前の例と同じですが、エレメントごとに行を 1 つだけを返します。各ビュー/レジスターの列に関する情報は、配列内でネストされます。