SQL を使用して、情報カタログを構成するデータベース表から直接にメタデータを抽出することができます。この節では、例を示します。
SELECT OBJTYPID, DPNAME, NAME, CREATOR, PTNAME FROM FLG.OBJTYREG
このステートメントでは、以下の情報が戻されます。
SELECT PHYPRPNM, PROPNAME, DATATYPE, LENGTH, OPTIONS, UUISEQNO, PROPSEQ FROM FLG.PROPERTY WHERE OBJTYPID = 'object_type_ID' ORDER BY PROPSEQ
このステートメントでは、以下の情報が戻されます (プロパティーが作成された順に)。
SELECT OBJTYPID, INSTIDNT, NAME,phyprpnm1,phyprpnm2... FROM creator.ptname WHERE phyprpnm LIKE '%search_criteria%'
このステートメントでは、以下の情報が戻されます。
さらに、LONG VARCHAR データ・タイプのプロパティー値を検索するには、次の SELECT ステートメントを入力しなければなりません。
SELECT PHYPRPNM, ODESC FROM FLG.OVERDESC WHERE OBJTYPID = object_type_ID AND INSTIDNT = object_instance_ID ORDER BY SEQNO
ここで、object_type_ID および object_instance_ID は、 3 のステップで SELECT ステートメントを生成した後に入手した値です。このステートメントでは、以下の情報が戻されます。
SELECT FLGID, INSTNAME, TYPENAME FROM FLG.NAMEINST
このステートメントでは、以下の情報が戻されます。
SELECT SOURCE, TARGET, RELTYPE FROM FLG.RELINST
このステートメントでは、以下の情報が戻されます。
オブジェクト間のリンクまたは付加関係を判別するには、次のステートメントを入力します。
SELECT SOURCE, TARGET, RELTYPE FROM FLG.ATCHREL
このステートメントでは、以下の情報が戻されます。
SOURCE および TARGET 値を使用すると、オブジェクト表内のインスタンス情報を検索することができます。また、4 のステップで示されているように、 SQL ステートメントに条件を付けて、特定のオブジェクト値を選択することもできます。
例: あるアプリケーションについて、 Employee という名前のリレーショナル表に関するメタデータを表示し、さらに、その表のすべての列を表示したいとします。 Employee のオブジェクト・タイプは TABLES であり、列のオブジェクト・タイプは COLUMN です。アプリケーションには、以下の SQL ステートメントが組み込まれます。
SELECT OBJTYPID, DPNAME, NAME, CREATOR, PTNAME FROM FLG.OBJTYREG WHERE DPNAME = 'TABLES'
このステートメントでは、以下の情報が戻されます。
'000001', 'TABLES', 'Relational Tables', 'USERXYZ', 'TABLES'
SELECT OBJTYPID, DPNAME, CREATOR, PTNAME from FLG.OBJTYREG WHERE DPNAME = 'COLUMN'
このステートメントでは、以下の情報が戻されます。
'000007', 'COLUMN', 'Columns or fields', 'USERXYZ', 'COLUMN'
SELECT OBJTYPID, INSTIDNT, NAME, DBNAME, OWNER, TABLES FROM USERXYZ.TABLES WHERE NAME = 'Employee'
このステートメントでは、以下の情報が戻されます。
'000001', '0040608795', 'Employee', 'MYDBASE', 'USERABC', 'EMPL_TAB'
SELECT TARGET FROM FLG.RELINST WHERE SOURCE = '0000010040608795' AND TARGET LIKE '000007%' AND RELTYPE = 'C'
このステートメントでは、次の 2 つのオブジェクトが戻されます。
('0000079238400354') ('0000079843095410')
SELECT NAME, SHRTDESC, DATATYPE, LENGTH FROM USERXYZ.COLUMNS WHERE INSTIDNT IN ('9238400354', 9843095410')
このステートメントでは、以下の情報が戻されます。
('Name', 'Employee name information', 'CHAR', '80') ('Address', 'Employee address information', 'CHAR', '220')