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_views
、input_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 つだけを返します。各ビュー/レジスターの列に関する情報は、配列内でネストされます。