ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 DB2 UDBのためのSQLベースのCMIインポートの実装
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

DB2 UDBのためのSQLベースのCMIインポートの実装

SQLを使用するCMIを定義して、DB2 UDBのSQLベース・データ・ディクショナリからメタデータを取得し、DB2プラットフォームから表をインポートできます。このようなメカニズムを実装すると、SQLベースのデータ・ディクショナリを使用する任意のデータベースからメタデータをインポートできます。

CMIメカニズムを活用するには、プラットフォームについて「CMI DEFINITION」を定義する必要があります。「例: IBM DB2 UDBのプラットフォーム定義」には、DB2 UDBのプラットフォーム定義がリストされています。これには基本的な定義のみがリストされています。プラットフォームに追加できるデータ型は含まれていません。

IBM DB2 UDBのプラットフォーム定義

set platformname IBM_DB2_UDB
set platformdisplay "IBM DB2 CMI Api"
 
puts "Creating Platform $platformdisplay"
 
OMBCREATE PLATFORM '$platformname' SET PROPERTIES (BUSINESS_NAME) VALUES ('$platformdisplay')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DRIVER_CLASS,URI_TEMPLATE) VALUES ('com.ibm.db2.jcc.DB2Driver','jdbc:db2://Host:Port/Database Name')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (LOCAL_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DATE_MASK) VALUES ('TIMESTAMP')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DDLNULL) VALUES ('null')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (NUMERIC_MASK) VALUES ('NUMERIC(%L,%P)')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (VARCHAR_MASK) VALUES ('VARCHAR(%L)')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (LOCAL_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DEFAULT_MAX_NAME_LEN) VALUES ('30')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (REMOTE_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')

次に、CMI定義をプラットフォームに追加します。

OMBCREATE CMI_DEFINITION 'DB2_IMPORT_SQL' USING DEFINITION_FILE 'c:\\platformdef2_miv.xml'
OMBALTER CMI_DEFINITION 'DB2_IMPORT_SQL' SET PROPERTIES (MIV_TYPE) VALUES ('Databases')
OMBALTER PLATFORM '$platformname' SET REF CMI_DEFINITION 'DB2_IMPORT_SQL'

platformdef2_miv.xmlファイルには、SQLを使用してメタデータをインポートするためのカスタム・インポート定義が含まれています。「例: CMI定義ファイル」には、CMI定義ファイルがリストされています。

CMI定義ファイル

<?xml version="1.0"?>
<miv>
 
<miv_tables type="SQLStatement" default="true">
        SELECT rtrim(tabname) table_name 
        FROM syscat.tables  
        WHERE tabschema = <Parameter name="owner"/> 
                AND type = 'T'   
                AND status = 'N'   
        ORDER BY table_name
</miv_tables>
 
 
<miv_columns type="SQLStatement" default="true">
        SELECT rtrim(col.tabname) entity_name, 
               col.colno position, 
               rtrim(col.colname), 
               col.typename, 
               col.length, 
               col.length, 
               col.scale, 
               col.remarks, 
               col.nulls,
               '' datatypeowner,
               col.default,
               CHAR(col.codepage) charset,
               1 bytes_per_char,
               'N' use_char_semantics
        FROM syscat.columns col
        WHERE col.tabschema = <Parameter name="owner"/>
</miv_columns>
 
<miv_capabilities type="ResultSet">
        <table_supported>true</table_supported>
        <view_supported>false</view_supported>
        <sequence_supported>false</sequence_supported>
        <table_name_filter_supported>true</table_name_filter_supported>
        <view_name_filter_supported>false</view_name_filter_supported>
        <sequence_name_filter_supported>false</sequence_name_filter_supported>
        <business_area_supported>false</business_area_supported>      
        <business_area_table_supported>false</business_area_table_supported>    
        <business_area_view_supported>false</business_area_view_supported>      
        <business_area_sequence_supported>false</business_area_sequence_supported>      
        <application_owner_supported>true</application_owner_supported>
        <table_fklevel_supported>false</table_fklevel_supported>
        <reimport_supported>true</reimport_supported>
        <data_object_at_leaf_levels>false</data_object_at_leaf_levels>
        <multiple_tree_supported>false</multiple_tree_supported>
</miv_capabilities>
 
</miv>

定義ファイルには、表と列を取得するための問合せが含まれています。このMIVファイルは、XMLスキーマ定義(XSD)ファイルに定義されている要素を使用して作成します。

作成したプラットフォームは、プロジェクト・ナビゲータの「データベース」ノードの下に表示されます。これでDB2UDBデータベースに接続し、メタデータをインポートできます。DB2に接続するには、適切なドライバ・ファイルが必要です。必要なドライバ・ファイルの詳細は、「DB2のJDBC接続ドライバ」を参照してください。

同様に、SQLベースのデータ・ディクショナリを使用する任意のデータベースの新規プラットフォームを作成し、SQLベースのCMIメカニズムを作成してデータベースからメタデータをインポートできます。