Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 開発ガイド
DBアダプタ電文のXMLフォーマット定義ファイルを作成するには,あらかじめSQLオペレーション定義ファイルを作成してから,csamkxmlsコマンドで生成します。
SQLオペレーション定義ファイルは,実行環境でDBアダプタを介してアクセスするデータベースの情報や,SQLの実行形式を定義するファイルです。DBアダプタ用のXMLフォーマット定義ファイルを作成するときの基となるファイルです。
SQLオペレーション定義ファイルとDBアダプタ用のXMLフォーマット定義ファイルの作成方法を次に説明します。
SQLオペレーション定義ファイルは,テキストエディタなどを使用してXML文書形式で作成します。XML文書で使用できない「<」,「>」,「&」などの文字を使用する場合,エスケープするか,CDATAセクションを利用する必要があります。
要素,属性およびテキストデータは,W3CのXMLの仕様に従って指定します。
なお,XML名前空間は使用できません。
作成するXML文書の詳細を説明します。
SQLオペレーション定義ファイルのファイル名は,次の形式で指定します。
csa_sql_<任意の名称>.xml |
SQLオペレーション定義ファイルの構造を次に示します。
図4-3 SQLオペレーション定義ファイルの構造
SQLオペレーション定義ファイルの形式を次に示します。なお,斜体の文字は可変値を表します。
<?xml version="XMLのバージョン" encoding="文字コード"?> <DBadapter_SQL_OPERATION> <DATABASE_DATA> <DB_NAME>データベース参照名</DB_NAME> <DB_TYPE>データベース種別</DB_TYPE> </DATABASE_DATA> <SQL_DATA> <SQL識別子 out_maxOccurs="検索結果出力最大件数"> SQL命令 <引数要素名 dba_inf="引数の種別" data_type="データ型"/> </SQL識別子> : </SQL_DATA> <MULTI_SQL_DATA> <MAX_SQL_NO>1回のサービス部品実行要求で実行するSQL文の最大個数</MAX_SQL_NO> </MULTI_SQL_DATA> </DBadapter_SQL_OPERATION> |
SQLオペレーション定義ファイルで定義する内容について次に説明します。
<?xml version="XMLのバージョン" encoding="文字コード"?> |
<DBadapter_SQL_OPERATION> : </DBadapter_SQL_OPERATION> |
<DATABASE_DATA> データベース参照名 データベース種別 </DATABASE_DATA> |
<DB_NAME>データベース参照名</DB_NAME> |
<DB_TYPE>データベース種別</DB_TYPE> |
<SQL_DATA> SQL識別子 SQL実行文 </SQL_DATA> |
<SQL識別子 out_maxOccurs="検索結果出力最大件数"> SQL実行文 </SQL識別子> : |
SQL命令 <引数要素名 dba_inf="引数の種別" data_type="データ型"/> |
表4-1 SELECTで検索できるデータ型(HiRDBの場合)
HiRDBのデータ型 | 検索の可否 | |
---|---|---|
DBPSV※の場合 | HiRDB Type4 JDBC Driverの場合 | |
INT〔EGER〕 | ○ | ○ |
SMALLINT | ○ | ○ |
〔LARGE〕 DEC〔IMAL〕 NUMERIC |
○ | ○ |
FLOAT DOUBLE PRECISION |
○ | ○ |
SMALLFLT REAL |
○ | ○ |
CHAR〔ACTER〕 | ○ | ○ |
VARCHAR CHAR〔ACTER〕VARYING |
○ | ○ |
NCHAR NATIONAL CHAR |
○ | ○ |
NVARCHAR NATIONAL CHAR〔ACTER〕VARYING NCHAR VARYING |
○ | ○ |
MCHAR | ○ | ○ |
MVARCHAR | ○ | ○ |
DATE | ○ | ○ |
TIME | ○ | ○ |
TIMESTAMP | ○ | ○ |
INTERVAL YEAR TO DAY | − | − |
INTERVAL HOUR TO SECOND | − | − |
BLOB BINARY LARGE OBJECT |
○ | ○ |
BINARY | ○ | ○ |
BOOLEAN | − | − |
表4-2 SELECTで検索できるデータ型(Oracleの場合)
Oracleのデータ型 | 検索の可否 | |
---|---|---|
DBPSV※1の場合 | Oracle JDBC Thin Driverの場合 | |
VARCHAR2 | ○ | ○ |
NVARCHAR2 | ○ | ○ |
NUMBER | ○ | ○ |
LONG | ○ | ○ |
DATE | ○ | ○※2 |
BINARY_FLOAT※3 | − | − |
BINARY_DOUBLE※3 | − | − |
TIMESTAMP | − | − |
TIMESTAMP WITH TIME ZONE | − | − |
TIMESTAMP WITH LOCAL TIME ZONE | − | − |
INTERVAL YEAR TO MONTH | − | − |
INTERVAL DAY TO SECOND | − | − |
RAW | − | ○ |
LONG RAW | − | ○ |
ROWID | ○ | ○ |
UROWID | −※4 | − |
CHAR | ○ | ○ |
NCHAR | ○ | ○ |
CLOB | ○ | ○ |
NCLOB | ○ | ○ |
BLOB | − | ○ |
BFILE | − | − |
ユーザ定義型(オブジェクト型) | − | − |
ユーザ定義型(REFデータ型) | − | − |
ユーザ定義型(VARRAY) | − | − |
ユーザ定義型(ネストした表) | − | − |
SELECT TO_CHAR(c_ts) FROM 表名
表4-3 data_typeに指定できるデータ型(HiRDBの場合)
HiRDBのデータ型 | data_typeに指定できるデータ型 | 引数として利用するデータの変換先のデータ型およびクラス |
---|---|---|
INT〔EGER〕 | INTEGER | int |
SMALLINT | SMALLINT | short |
〔LARGE〕 DEC〔IMAL〕 NUMERIC |
DECIMAL | java.math.BigDecimal |
FLOAT DOUBLE PRECISION |
FLOAT | double |
SMALLFLT REAL |
REAL | float |
CHAR〔ACTER〕 | CHAR | java.lang.String |
NCHAR NATIONAL CHAR |
||
MCHAR | ||
VARCHAR CHAR〔ACTER〕VARYING |
VARCHAR | java.lang.String |
NVARCHAR NATIONAL CHAR〔ACTER〕VARYING NCHAR VARYING |
||
MVARCHAR | ||
DATE | DATE | java.sql.Date |
TIME | TIME | java.sql.Time |
TIMESTAMP | TIMESTAMP | java.sql.Timestamp |
BLOB BINARY LARGE OBJECT |
LONGVARBINARY | byte[] |
BINARY | LONGVARBINARY | byte[] |
注 〔 〕で囲まれた部分は省略できることを意味します。
表4-4 data_typeに指定できるデータ型(Oracleの場合)
Oracleのデータ型 | data_typeに指定できるデータ型 | 引数として利用するデータの変換先のデータ型およびクラス | |
---|---|---|---|
DBPSV※1の場合 | Oracle JDBC Thin Driverの場合 | ||
LONG | LONGVARCHAR | LONGVARCHAR | java.io.Reader |
NUMBER | NUMERIC | NUMERIC | java.math.BigDecimal |
VARCHAR2 | VARCHAR | VARCHAR | java.lang.String |
NVARCHAR2 | VARCHAR | − | |
ROWID | CHAR | CHAR | |
CHAR | CHAR | CHAR | |
NCHAR | CHAR | − | |
CLOB | CLOB | CLOB※2 |
|
NCLOB | CLOB | − | |
DATE | DATE※3 | DATE※3 | java.sql.Date |
TIME※4 | TIME※4 | java.sql.Time | |
TIMESTAMP※5 | TIMESTAMP※5 | java.sql.Timestamp | |
RAW | − | VARBINARY | byte[] |
LONG RAW | − | LONGVARBINARY | byte[] |
BLOB | − | BLOB | byte[] |
<MULTI_SQL_DATA> 実行するSQL文の最大個数 </MULTI_SQL_DATA> |
<MAX_SQL_NO>1回のサービス部品実行要求で実行するSQL文の最大個数</MAX_SQL_NO> |
SQLオペレーション定義ファイルの作成例を次に示します。
受注番号 (INTEGER) |
得意先コード(CHAR) | 商品コード (CHAR) |
受注個数 (INTEGER) |
---|---|---|---|
1 | AA001 | 0001 | 5 |
2 | AB002 | 0001 | 1 |
3 | AA001 | 0102 | 3 |
4 | XA005 | 0103 | 1 |
5 | AA001 | 0105 | 1 |
OPERATION1:SELECT * FROM DBA.受注表 WHERE <val1> <val2> <val3> OPERATION2:SELECT <val1> SUM(<val2>) FROM DBA.受注表 GROUP BY <val3> OPERATION3:INSERT INTO DBA.受注表 VALUES(<val1>,<val2>,<val3>,<val4>) |
<?xml version="1.0" encoding="UTF-8" ?> <DBadapter_SQL_OPERATION> <DATABASE_DATA> <DB_NAME>DB_SERVER1</DB_NAME> <DB_TYPE>HIRDB</DB_TYPE> </DATABASE_DATA> <SQL_DATA> <OPERATION1> SELECT * FROM DBA.受注表 WHERE <val1 dba_inf="column"/> <val2 dba_inf="preset"/> <val3 dba_inf="data" data_type="CHAR"/> </OPERATION1> <OPERATION2> SELECT <val1 dba_inf="column"/> SUM(<val2 dba_inf="column"/>) FROM DBA.受注表 GROUP BY <val3 dba_inf="column"/> </OPERATION2> <OPERATION3> INSERT INTO DBA.受注表 VALUES(<val1 dba_inf="data" data_type="INTEGER" />, <val2 dba_inf="data" data_type="CHAR"/>, <val3 dba_inf="data" data_type="CHAR"/>, <val4 dba_inf="data" data_type="INTEGER"/>) </OPERATION3> </SQL_DATA> </DBadapter_SQL_OPERATION> |
<?xml version="1.0" encoding="UTF-8" ?> <DBadapter_SQL_OPERATION> <DATABASE_DATA> <DB_NAME>DB_SERVER1</DB_NAME> <DB_TYPE>HIRDB</DB_TYPE> </DATABASE_DATA> <SQL_DATA> <OPERATION1> SELECT * FROM DBA.受注表 WHERE <val1 dba_inf="column"/> <val2 dba_inf="preset"/> <val3 dba_inf="data" data_type="CHAR"/> </OPERATION1> <OPERATION2> SELECT <val1 dba_inf="column"/> SUM(<val2 dba_inf="column"/>) FROM DBA.受注表 GROUP BY <val3 dba_inf="column"/> </OPERATION2> <OPERATION3> INSERT INTO DBA.受注表 VALUES(<val1 dba_inf="data" data_type="INTEGER" />, <val2 dba_inf="data" data_type="CHAR"/>, <val3 dba_inf="data" data_type="CHAR"/>, <val4 dba_inf="data" data_type="INTEGER"/>) </OPERATION3> </SQL_DATA> <MULTI_SQL_DATA> <MAX_SQL_NO>10</MAX_SQL_NO> </MULTI_SQL_DATA> </DBadapter_SQL_OPERATION> |
DBアダプタ用のXMLフォーマット定義ファイルを作成するには,「(1) SQLオペレーション定義ファイルの作成」で作成したSQLオペレーション定義ファイルの名称を-oオプションに指定してcsamkxmlsコマンドを実行します。
csamkxmlsコマンドの実行形式を次に示します。
<Cosminexusのインストールディレクトリ>\CSC\bin\csamkxmls -o <SQLオペレーション定義ファイルの名称> -x <DBアダプタ用のXMLフォーマット定義ファイルの名称> |
csamkxmlsコマンドの詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「csamkxmls(DBアダプタ用のXMLフォーマット定義ファイルの生成)」を参照してください。
作成されるXMLフォーマット定義ファイルは,次のようになります。
図4-4 (例1)SELECT文を使用し,WHRER句の値を引数化したい場合
図4-5 (例2)SELECT文を使用し,取得する列名も引数化したい場合
図4-6 (例3)SELECT文を使用し,WHRER句の列名や式も引数化したい場合
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.