ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 CTマップ用として生成されたサンプル・コード
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

CTマップ用として生成されたサンプル・コード

次は、置換を示す、コード・テンプレートおよび関連するメタデータ・スクリプトのコード例です。次のコード・ブロックは、一時フロー表を作成する、コード・テンプレートの単一のプロシージャ手順を示しています。

proc 3_CREATE_FLOW_TABLE_I__main {  }
{# Input Flow Parameters  variable SRC_LOCATION  variable TGT_LOCATION  variable KM_PARAMS  variable LOG_LEVEL  variable INSERT  variable UPDATE  variable COMMIT  variable SYNC_JRN_DELETE  variable FLOW_CONTROL  variable RECYCLE_ERRORS  variable STATIC_CONTROL  variable TRUNCATE  variable DELETE_ALL  variable CREATE_TARG_TABLE  variable FLOW_TABLE_OPTIONS  variable ANALYZE_TARGET  variable OPTIMIZER_HINT# Output parameters  variable EXIT_CODE   variable RETURN_VALUE {}# Global variables  global errorInfo  global g_iud        set g_iud ""        set tgt_stmt [process "create table <%=snpRef.getTable(\"L\", \"INT_NAME\", \"W\")%>\n(\n<%=snpRef.getColList(\"\", \"\\t\[COL_NAME\]\\t\[DEST_WRI_DT\] NULL\", \",\\n\", \"\", \"\")%>,\n\tIND_UPDATE \tchar(1)\n)\n<%=snpRef.getUserExit(\"FLOW_TABLE_OPTIONS\")%>"]        puts $tgt_stmt        execjdbc $tgt_stmt "TGT_AC" "$TGT_LOCATION" "" "true" "false" "false"}

ターゲットのSQL文である変数tgt_stmtには実際のSQL文が割り当てられ、このSQL文はexecjdbcプロシージャ・コールを使用して実行されていることに注意してください。execjdbc TCLプロシージャは、JDBCを介して文を実行するJavaコールを実行します。ターゲット文は、プロセス・プロシージャによって生成される文字列です。<%...%>デリミタには、必要なコンポーネントをSQL文字列に置き換えるための特別な処理が必要です。snpRef(Sunopsis参照)タグは、置換メソッド・コールアウトの接頭辞です。snpRef.getTableは、実際の表名によって置き換えられます。snpRef.getColListは、DMLに関与する表列のリストを取得するための別のユニバーサル・メソッドです。snpRef以外に、odiRefもサポートされています(ODI 10.2の場合)。

置換メソッド(snpRef)・コールは、メタデータ・スクリプトの変数から関連データを抽出するOWB TCLモジュールによって実行されます。次は、表名と列リストを示すメタデータ・スクリプト・セクションの例です。

set M1_params {  {CKM_CALL ""}  {COLUMN_GENERIC_DATATYPE "NUMERIC VARCHAR"}  {COLUMN_LIST "EMPLOYEES.EMPLOYEE_ID EMPLOYEES.LAST_NAME"}  {COLUMN_LIST_ALIAS "EMPLOYEE_ID LAST_NAME"}  {COLUMN_LIST_DATATYPE "NUMBER(6) VARCHAR2(25)"}  {EXECUTION_UNIT_NAME "EX_UNIT_2"}  {FROM_LIST "EMPLOYEES"}  {FROM_LIST_ALIAS "EMPLOYEES"}  {HAS_JRN "0"}  {INSERT_COLUMN_LIST "EMPID ENAME"}  {IS_DISTINCT "FALSE"}  {JOURNAL_IN_CURRENT_SCHEMA "false"}  {JOURNAL_IN_SOURCE_SCHEMA "false"}  {JOURNAL_IN_STAGING_AREA "false"}  {JRN_FILTER ""}  {JRN_METHOD "NONE"}  {JRN_TABLE "."}  {KM_NAME "KM_IKM_ORACLE_INCREMENTAL_UPD"}  {MAP_NAME "MAPPING_2"}  {SELECT_STATEMENT "SELECT EMPLOYEES.EMPLOYEE_ID EMPLOYEE_ID,         EMPLOYEES.LAST_NAME LAST_NAMEFROM  EMPLOYEES  EMPLOYEES"}  {SQL_STATEMENT "INSERT INTO TGT(EMPID, ENAME)  (SELECT EMPLOYEES.EMPLOYEE_ID EMPLOYEE_ID,EMPLOYEES.LAST_NAME LAST_NAMEFROM  EMPLOYEES  EMPLOYEES  );"}  {TARGET_COLUMN_DATATYPE "NUMBER(15) VARCHAR2(100)"}  {TARGET_COLUMN_LIST "EMPID ENAME"}  {TARGET_GENERIC_DATATYPE "NUMERIC VARCHAR"}  {TARGET_NAME "TGT"}}