二重のアクティブなVantageシステムを実行している場合、あるいは開発またはテスト用のマシンに第2のVantageシステムがある場合など、2つのプラットフォーム間でデータの受け渡しが必要になることが考えられます。例えば、一方のシステムからディクショナリ テーブルの問合わせを行ない、それらのテーブルをもう一方のシステムと相関できると便利な場合があります。この例では、これを行なう方法を説明します。
次のSELECTリクエストは、tdatという名前のテーブル関数を使用しますが、この関数はリモートTeradataシステムに対して問合わせを実行し、その後で要求元のシステムに応答セットを返します。この例では、UDFはもう一方のシステムのディクショナリ テーブルに含まれているすべてのデータベース名を返します。
SELECT * FROM table(rdg.tdat(2,1,'adw1/rdg,rdg', 'SELECT databasename FROM dbc.databasesV'));
このSELECTリクエストはテーブル関数の固定入力引数として要求元システムから渡され、ターゲット システムで(そのシステムへのログオン ストリングのように)実行されます。
テーブル関数を作成するDDLは次のとおりです。
CREATE FUNCTION rdg.tdat (rowc INTEGER, InLineNum INTEGER, logonstr VARCHAR(50) CHARACTER SET LATIN, sqlRqst VARCHAR(512) CHARACTER SET LATIN) RETURNS TABLE ( ampId INTEGER, cnt INTEGER, OutLineNum INTEGER, str1 VARCHAR(256) CHARACTER SET LATIN, . . . str20 VARCHAR(256) CHARACTER SET LATIN) SPECIFIC tdat LANGUAGE C NO SQL PARAMETER STYLE SQL NOT DETERMINISTIC CALLED ON NULL INPUT EXTERNAL NAME 'SS:tdat:/home/rdg/tdat/Tdat.c:SL:cliv2';
2つのTeradataシステムにまたがる1つのビューを作成することにより、両方のプラットフォームでディクショナリの内容を比較したり、テーブル領域や権限などの詳細データを比較したりすることができます。
次のビューは、各システムのDBC.Tablesビューに現われる行を比較します。
CREATE VIEW allTables AS SELECT 'Local System' AS system, databasename, tablename, version, tablekind, protectionType, JournalFlag, CreatorName, requesttext(VARCHAR(100)) FROM DBC.tables UNION SELECT 'Remote System', str1 (CHAR(30)), str2 (CHAR(30)), str3 (INTEGER), str4 (CHAR(1)), str5 (CHAR(1)), str6 (CHAR(2)), str7 (CHAR(30)), str8 (VARCHAR(100)) FROM table(rdg.tdat(2,1,'adw1/rdg,rdg', 'SELECT databasename, tablename, version, tablekind, protectionType, JournalFlag, CreatorName, requesttext(VARCHAR(100)) FROM DBC.tables')) T;
リモートで実行されるSELECT問合わせから返されるデータのサンプリングをテーブル名で並べ替えると(クロス比較を簡単にするため)、次のようになります。
System DatabaseName TableName Version TableKind -------------- ------------ ------------ ------- --------- Remote System test a 1 T Local System DBC AccessRights 1 T Remote System DBC AccessRights 1 T Remote System DBC AllSpaceV 1 V Local System DBC AllSpaceV 1 V Local System rdg allamp 1 T Remote System test allamp 1 T