<< 目次を表示 >> ページ位置: その他の記法のモデリング > データベースの設計・生成と読み込み > DDLの生成 > DDLテンプレートの文法 > DDLの機能マクロ |
DDLの機能マクロはDDL生成に関係するさまざまな操作、例えば文字列の操作や整形などを可能にする便利なマクロです。これらの機能マクロは、コード生成テンプレートでも利用できる機能マクロに追加して利用できます。コード生成テンプレートの機能マクロと同じく、それぞれの機能マクロの戻り値は文字列です。
利用可能な機能マクロは以下の通りです。すべてのパラメータは文字列型で、角カッコで囲んで表現しています。
DDL_DATATYPE_SIZE ([productName], [datatype])
処理対象の列の、DBMSごとの完全な形式のデータ型を返します。
パラメータ
補足
Enterprise Architectでは、列の長さや精度などの情報をデータ型とは別に持っています。これらの情報を含めて、DBMSごとに適切な形式でデータ型を出力するためのマクロです。
DDL_GET_DEFINITION_PARAS ([definition])
ファンクションやプロシージャの定義で利用されているパラメータを返します。
パラメータ
補足
PostgreSQLなど、いくつかのDBMSでは同じプロシージャやファンクション名でも定義が複数存在する場合があります。これらの違いはパラメータリストのみとなりますので、DDLの生成時には名前だけでなくパラメータリストも参照する必要があります。このマクロを利用することで、パラメータの情報を抽出できますので、ファンクションやプロシージャを正確に判別するために利用できます。
DDL_INCLUDE_SQLQUERY([objectName])
SQLQueryオブジェクトが保持しているSQL文を返します。
パラメータ
補足
なし
DDL_INDEX_SORT([product],[columns])
指定されたインデックスのソート順を返します。
パラメータ
補足
このマクロはFirebirdの場合のみ利用できます。
DDL_RESOLVE_NAME ([productName], [name], [leftSurround], [rightSurround])
渡された名前が、対象のDBMSでの予約語の場合に、指定された文字列で囲んで返します。
パラメータ
補足
DBMSによって、それぞれDDL内で利用できない予約語が定義されています。このマクロを利用することで、予約語には引用符を付けて区別できます。特に、DB2やFirebirdにおいて、適切な内容となるように調整できます。
DDL_TABLE_TAGVALUE ([tagName])
対象のテーブルの、指定したタグ付き値の値を返します。
パラメータ
補足
なし
EXECUTE_CURRENT ([objectName], [actionName], [priority])
実行エンジンの実行キューに、テンプレートから得られるDDLを追加します。
パラメータ
補足
この機能マクロはテンプレートのどこででも呼び出せますが、実行されるのはそのテンプレートの生成が完了した後です。テンプレートの内容の生成が完了すると、そのDDLの内容が実行キューに送られます。
この機能マクロは、DDLをファイルに生成する場合には無視されます。
EXECUTE_STRING ([objectName], [actionName], [priority], [ddlStatement])
実行エンジンのキューに指定したDDL文を追加します。
パラメータ
補足
この機能マクロは、DDLをファイルに生成する場合には無視されます。
EXIST_STRING ([ddlStatement])
実行エンジンのキューの中に、指定したDDLが存在するかどうかを指定します。存在する場合には 'T' を返します。
パラメータ
補足
なし
GET_FIRST_SQL_KEYWORD([statement])
渡されたSQL分の最初のキーワードを返します。
パラメータ
補足
なし
ODBC_TABLE_TAGVALUE ([tagName])
現在のテーブルの、実際のデータベースに存在する要素のタグ付き値の値を返します。
パラメータ
補足
なし
PROCESS_DDL_SCRIPT ([type], [parameter2], [parameter3], [parameter4])
特定の目的で利用する、文字列の書式を整えるためのマクロです。
パラメータ
補足
OracleのSYNONYMSの生成時に、以下のように利用できます。:
戻り値
生成例
CREATE SYNONYM OE.EMPLOYEES FOR TBL_EMPLOYEES;
CREATE PUBLIC SYNONYM PUB_EMPLOYEES FOR TBL_EMPLOYEES;
REMOVE_LAST_SEPARATOR ([ddlStatement], [separator])
渡されたDDL文字列について、もし最後に指定されたセパレータがある場合には、削除します。
パラメータ
補足
DDLを生成する場合には、出力する内容とセパレータを繰り返し出力することが多いです。最後の出力内容に限りセパレータは不要になるので、このマクロを利用して削除します。
REMOVE_STRING ([ddlStatement])
実行対象となるDDLから、指定されたDDLを削除します。
パラメータ
補足
なし
SUPPRESS_EXECUTE_CURRENT ([boolean])
EXECUTE_CURRENTを実行するかどうかを指定します。
パラメータ
補足
このマクロに対する処理の既定値はFalseです。つまり、EXECUTE_CURRENTへの呼び出しは実行されません。