Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編


3.3.5 DBアダプタを定義する

DBアダプタの定義方法について説明します。

〈この項の構成〉

(1) SQLオペレーション定義ファイルの作成

SQLオペレーション定義ファイルは,実行環境でDBアダプタを介してアクセスするデータベースの情報や,SQLの実行形式を定義するファイルです。DBアダプタ用のXMLフォーマット定義ファイルを作成するときの基となるファイルです。

SQLオペレーション定義ファイルの作成方法を次に説明します。

SQLオペレーション定義ファイルは,テキストエディタなどを使用してXML文書形式で作成します。XML文書で使用できない「<」,「>」,「&」などの文字を使用する場合,エスケープするか,CDATAセクションを利用する必要があります。

要素,属性およびテキストデータは,W3CのXMLの仕様に従って指定します。

なお,XML名前空間名は使用できません。

作成するXML文書の詳細を説明します。

●ファイル名

SQLオペレーション定義ファイルのファイル名は,次の形式で指定します。

csa_sql_<任意の名称>.xml
●構造

SQLオペレーション定義ファイルの構造を次に示します。

図3‒2 SQLオペレーション定義ファイルの構造

[図データ]

●SQLオペレーション定義ファイルの形式

SQLオペレーション定義ファイルの形式を次に示します。なお,斜体の文字は可変値を表します。

<?xml version="XMLのバージョン" encoding="文字コード"?>
<DBadapter_SQL_OPERATION dba_separate_transaction="トランザクション分離オプション" sqloperation_chk="SQL命令チェックオプション">
    <DATABASE_DATA>
        <DB_NAME dynamic="接続先の動的変更オプション">データベース参照名</DB_NAME>
        <DB_TYPE>データベース種別</DB_TYPE>
    </DATABASE_DATA>
    <SQL_DATA encoding="文字バイナリデータのエンコード・デコード形式">
        <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宣言

XMLのバージョンには,XMLの言語仕様に従ってXMLのバージョンを指定します。文字コードにはUTF-8を指定してください。なお,文字コードの指定は省略できます。省略した場合の値は「UTF-8またはUTF-16」になります。

<?xml version="XMLのバージョン" encoding="文字コード"?>
ルート要素(要素名:DBadapter_SQL_OPERATION)

SQLオペレーション定義ファイルのルート要素です。

<DBadapter_SQL_OPERATION dba_separate_transaction="Y|N" sqloperation_chk="Y|N">
    :
</DBadapter_SQL_OPERATION>
  • dba_separate_transaction

    DBアダプタのトランザクションをビジネスプロセスとは別に開始するかどうかを指定します。トランザクションを分離する場合はYを,分離しない場合はNを指定します。指定を省略した場合は,HCSCサーバランタイム定義ファイルの「dba-separate-transaction」の値が有効となります。この属性と,HCSCサーバランタイム定義ファイルに「dba-separate-transaction」の両方が指定してある場合は,この属性の指定値が優先されます。

    なお,この属性にYを指定する場合は,事前にDBアダプタのアプリケーション統合属性ファイルのtrans-attribute要素の指定値を「Required」から「RequiresNew」に変更してください。

  • sqloperation_chk

    DBアダプタで実行するSQL命令の制限をするかどうかを指定します。SQL命令をSELECTとINSERTに制限する場合はYを,SQL命令でSELECTとINSERTに加えてUPDATEとDELETEを実行する場合はNを指定します。指定を省略した場合は,Yが指定されているときと同じ動作となります。

データベース情報(要素名:DATABASE_DATA)

下位の要素(DB_NAMEおよびDB_TYPE)で,データベースの情報を指定します。

<DATABASE_DATA>
    データベース参照名
    データベース種別
</DATABASE_DATA>
データベース参照名(要素名:DB_NAME)

DB Connectorのデータベース参照名を指定します。

DBアダプタ実行時に,ここで指定した値を元にアプリケーション統合属性ファイルのリソース参照を検索するため,アプリケーション統合属性ファイルのres-ref-name要素指定値と同じ値を指定してください。

dynamic属性にYが設定されている場合はこの要素の値は省略できます。また,この要素の値がすでに設定されていた場合は指定を無視します。

<DB_NAME dynamic="Y|N">データベース参照名</DB_NAME>
  • dynamic

    接続先を動的に変更するかどうかを指定します。

    接続先を動的に変更する場合はYを,動的に変更しない場合はNを指定します。指定を省略した場合は,Nが指定されたときと同じ動作になります。

データベース種別(要素名:DB_TYPE)

データベースの種別として次のどれかを指定します。

  • HIRDB

    DBMSとしてHiRDBを使用する場合(DB ConnectorとしてDBConnector_DABJ_CP/XA.rarを使用する場合)に指定します。

  • HIRDB-TYPE4

    DBMSとしてHiRDBを使用する場合(DB ConnectorとしてDBConnector_HiRDB_Type4_CP/XA.rarを使用する場合)に指定します。

  • ORACLE

    DBMSとしてOracleを使用する場合(DB ConnectorとしてDBConnector_DABJ_CP/XA.rarを使用する場合)に指定します。

  • ORACLE-THIN

    DBMSとしてOracleを使用する場合(DB ConnectorとしてDBConnector_Oracle_CP/XA.rarを使用する場合)に指定します。

    <DB_TYPE>データベース種別</DB_TYPE>
SQL情報(要素名:SQL_DATA)

下位の要素(SQL識別子およびSQL実行文)で,実行するSQLの情報を指定します。

<SQL_DATA encoding="hexBinary|base64Binary">
    SQL識別子
        SQL実行文
</SQL_DATA>
  • encoding

    バイナリデータのエンコード・デコード形式を指定します。

    hexBinary形式でエンコードまたはデコードする場合はhexBinaryを,base64Binary形式でエンコードまたはデコードする場合はbase64Binaryを指定します。指定を省略した場合は,hexBinaryが指定されたときと同じ動作になります。

    なお,この属性が有効になるのは,data_type属性に次のデータ型が指定された場合だけです。

    HiRDBの場合:LONGVARBINARY

    Oracleの場合:VARBINARY,LONGVARBINARY,BLOB

    注意事項

    バイナリデータをデータ変換する場合,SQLオペレーション定義ファイルのencoding属性に指定した値とバイナリフォーマット定義ファイルに指定したエンコード・デコード形式を合わせてください。形式が異なる場合の動作は保証されません。

    参考

    09-50より前の環境からDBアダプタをバージョンアップした場合に,エンコード・デコード形式をbase64binaryに変更する手順を次に示します。

    1. 開発環境でバイナリフォーマット定義ファイルを再作成します。

    2. SQLオペレーション定義ファイルを修正(エンコード・デコード形式を設定)します。

    3. 修正したSQLオペレーション定義ファイルを使用してcsamkxmlsコマンドでXMLスキーマを生成します。

    4. XMLスキーマとバイナリフォーマット定義ファイルを開発環境でDBアダプタに設定します。

    5. 開発環境でマッピング定義を再設定します。

    6. 開発環境で修正したSQLオペレーション定義ファイルをDBアダプタに設定します。

    7. DBアダプタを再配備します。

SQL識別子(要素名:任意((1〜256文字)))

実行するSQLを識別するための要素です。この要素を省略した場合,SQL文を実行しません。下位の引数要素でSQL実行文を指定します。属性としてout_maxOccursを指定できます。また,実行するSQL命令の数にあわせて複数回指定できます。

なお,SQL識別子の名称として「DBadapter」および「DBA_MULTI_SQL」は指定できません。

<SQL識別子 out_maxOccurs="検索結果出力最大件数">
    SQL実行文
</SQL識別子>
    :
  • out_maxOccurs

    検索結果の最大出力件数を指定します。省略した場合は1000が設定されます。0を指定した場合は,2147483647が設定されます。

SQL実行文

SQL実行文を指定します。SQLの構文は,利用するデータベースの仕様に従います。SQL実行文の表や列の名称およびデータなどの可変部分(引数要素)を指定します。

なお,SQL文の終わりを示すセミコロン(;)は必要ありません。

SQL命令 <引数要素名 dba_inf="引数の種別" data_type="データ型"/>

なお,SQL実行文の先頭は,「SELECT△」または次のどれかを指定します(△は半角スペース)。

  • 「INSERT△」

  • 「UPDATE△」

  • 「DELETE△」

ただし,「SELECT△」,または「INSERT△」,「UPDATE△」,「DELETE△」のどれかの直後に引数要素がある場合,「△」(半角スペース)は省略できます。

指定内容を次に示します。

SQL命令

指定できるSQL命令はSELECT,またはINSERT,UPDATE,DELETEです。

SELECTで検索できるデータ型について,次の表に示します。

表3‒3 SELECTで検索できるデータ型(HiRDBの場合)

HiRDBのデータ型

検索の可否

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

(凡例)

○:SELECTで検索できます。

−:SELECTで検索できません。

〔 〕で囲まれた部分は省略できることを意味します。

表3‒4 SELECTで検索できるデータ型(Oracleの場合)

Oracleのデータ型

検索の可否

Oracle JDBC Thin Driverの場合

VARCHAR2

NVARCHAR2

NUMBER

LONG

DATE

BINARY_FLOAT

BINARY_DOUBLE

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR TO MONTH

INTERVAL DAY TO SECOND

RAW

LONG RAW

ROWID

UROWID

CHAR

NCHAR

CLOB

NCLOB

BLOB

BFILE

ユーザ定義型(オブジェクト型)

ユーザ定義型(REFデータ型)

ユーザ定義型(VARRAY)

ユーザ定義型(ネストした表)

(凡例)

○:SELECTで検索できます。

−:SELECTで検索できません。

注※

サポート対象バージョンのOracle JDBC Thin Driverを利用する場合,論理J2EEサーバの定義でJVMの起動パラメタとして次の値を設定する必要があります。

-Doracle.jdbc.mapDateToTimestamp=false

起動パラメタの設定の詳細については,マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「10.8.23 起動パラメタの設定(J2EEサーバ)」を参照してください。

●ポイント

DBアダプタで検索できないデータ型でも,データベースが提供する関数(ファンクション)を使用して検索できるデータ型に変換できれば,検索できるようになります。

OracleのTIMESTAMP型(列名:c_ts)をTO_CHARファンクションでVARCHAR2型に変換して検索する場合の例を次に示します。

SELECT TO_CHAR(c_ts) FROM 表名
引数要素名

任意の引数要素の名称を指定します。複数の引数要素を同一名称で指定した場合,同じ引数として扱われます。同一名称の引数要素で,それぞれの属性dba_infおよびdata_typeに異なる値を設定した場合はエラーになります。

dba_inf="引数の種別"

引数の種別を指定します。

引数の種別の種類として指定できる内容を次に示します。

  • table

    引数がデータベースに実在するテーブルの名称の場合に指定します。引数として利用するデータはstring型です。

  • column

    引数がデータベースに実在する列の名称の場合に指定します。引数として利用するデータはstring型です。

  • data

    引数がテーブルおよび列の名称以外のデータの場合に指定します。この値を指定した場合,引数として利用するデータのデータ型を属性data_typeに指定する必要があります。また,引数として利用するデータを表3-3および表3-4に示すJavaのデータ型またはクラスに変換して,SQL文に埋め込みます。引数として利用するデータを変換できない場合は,エラーとなります。

    なお,この値を指定した場合,引数要素をINパラメタ(?パラメタまたはバインド変数)として扱います。SQL文中にINパラメタを指定できる個所は,利用するデータベースの仕様に従います。指定できない個所にINパラメタを定義した場合,エラーになります。なお,SQLの実行時に,引数要素は「?」に置き換えられて実行されます。

  • preset

    引数がテーブルおよび列の名称以外のデータの場合に指定します。この値を指定した場合,引数として利用するデータをそのままSQL文に埋め込みます。引数として利用するデータはstring型です。

data_type="データ型"

属性dba_infにdataを指定した場合に,引数として利用するデータの型を指定します。データベースのデータ型とdata_typeに指定できるデータの型の対応を次の表に示します。

表3‒5 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[]

〔 〕で囲まれた部分は省略できることを意味します。

表3‒6 data_typeに指定できるデータ型(Oracleの場合)

Oracleのデータ型

data_typeに指定できるデータ型

引数として利用するデータの変換先のデータ型およびクラス

LONG

LONGVARCHAR

java.io.Reader

NUMBER

NUMERIC

java.math.BigDecimal

VARCHAR2

VARCHAR

java.lang.String

NVARCHAR2

ROWID

CHAR

CHAR

CHAR

NCHAR

CLOB

CLOB※1

  • Oracle JDBC Thin Driverの場合

    java.io.Reader

NCLOB

DATE

DATE※2

java.sql.Date

TIME※3

java.sql.Time

TIMESTAMP※4

java.sql.Timestamp

RAW

VARBINARY

byte[]

LONG RAW

LONGVARBINARY

byte[]

BLOB

BLOB

byte[]

(凡例)

−:指定できません。

注※1

JDBCドライバのバージョンが10.2の場合にだけ指定できます。10.2以外のバージョンのJDBCドライバを使用した場合,データが破損するおそれがあります。

注※2

設定する値の形式が「yyyy-mm-dd」の場合に指定します。

注※3

設定する値の形式が「hh:mm:ss」の場合に指定します。

注※4

設定する値の形式が「yyyy-mm-dd hh:mm:ss」の場合に指定します。

複数SQL文実行情報(要素名:MULTI_SQL_DATA)

サービスリクエスタからの1回のサービス部品実行要求で複数のSQL文を実行する場合に,実行するSQL文の最大個数を,下位の要素(MAX_SQL_NO)で指定します。単一のSQL文を実行する場合には,この要素は省略できます。

<MULTI_SQL_DATA>
    実行するSQL文の最大個数
</MULTI_SQL_DATA>
実行するSQL文の最大個数(要素名:MAX_SQL_NO)

実行するSQL文の最大個数(サービスリクエスタからの要求電文のDBA_MULTI_SQL要素の最大出現回数)を,1〜2,147,483,647の範囲内で指定します。省略した場合の値は「1024」になります。

<MAX_SQL_NO>1回のサービス部品実行要求で実行するSQL文の最大個数</MAX_SQL_NO>
作成例

SQLオペレーション定義ファイルの作成例を次に示します。

作成例の条件

データベース参照名:DB_SERVER1

スキーマ名:DBA

テーブル名:受注表

テーブル構成:

受注番号

(INTEGER)

得意先コード(CHAR)

商品コード

(CHAR)

受注個数

(INTEGER)

1

AA001

0001

5

2

AB002

0001

1

3

AA001

0102

3

4

XA005

0103

1

5

AA001

0105

1

実行するSQLの形式:

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>)
SQLオペレーション定義ファイルの作成例(単一のSQL文を実行する場合)
<?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>
SQLオペレーション定義ファイルの作成例(複数のSQL文を実行する場合)

次の例では,1回のサービス部品実行要求で実行するSQL文の最大個数を「10」にしています。

<?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>

(2) 電文フォーマットの作成

DBアダプタの場合,WSDLが生成されないため,サービス部品の電文フォーマットも自動生成されません。そのため,サービス部品の電文フォーマット(DBアダプタ用のXMLフォーマット定義ファイル)を作成して,設定する必要があります。

(a) DBアダプタ用のXMLフォーマット定義ファイルの作成

DBアダプタ用のXMLフォーマット定義ファイルを作成するには,「(1) SQLオペレーション定義ファイルの作成」で作成したSQLオペレーション定義ファイルの名称を-oオプションに指定してcsamkxmlsコマンドを実行します。

●コマンドの実行例

csamkxmlsコマンドの実行形式を次に示します。

<サービスプラットフォームのインストールディレクトリ>\CSC\bin\csamkxmls -o <SQLオペレーション定義ファイルの名称> -x <DBアダプタ用のXMLフォーマット定義ファイルの名称>

csamkxmlsコマンドの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「csamkxmls(DBアダプタ用のXMLフォーマット定義ファイルの生成)」を参照してください。

注意事項

csamkxmlsコマンドを実行したとき,SQLオペレーション定義ファイルのファイルサイズが大きいと,「java.lang.OutOfMemoryError」のメッセージが表示されることがあります。

このエラーが表示された場合,環境変数HCSCDBA_XMXに,現在のJavaVMのメモリ割り当てサイズよりも大きい値を設定して,再度コマンドを実行してください。

環境変数HCSCDBA_XMXには,JavaVMのヒープサイズ(-Xmx)に設定される値(単位:Mbyte)を指定します。省略した場合,JavaVMのヒープサイズはJavaコマンドを実行する環境に依存します。

設定例

set HCSCDBA_XMX=64

注意事項

DBアダプタ用のXMLフォーマット定義ファイルは,SQLオペレーション定義ファイルで指定したSQL識別子の数だけフォーマットを含みます。単一のSQL文を実行する場合,データ変換を定義するときには,SQL識別子ごとにオペレーションを変更(サービスアダプタ定義画面でオペレーションを追加)して定義する必要があります。複数のSQL文を実行する場合,データ変換を定義するときには,SQL識別子ごとにオペレーションを変更して定義する必要はありません。

データ変換の定義については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「7. データ変換の定義」を参照してください。サービスアダプタ定義画面については,マニュアル「サービスプラットフォーム リファレンス」の「1.2.2 サービスアダプタ定義画面」を参照してください。

(b) DBアダプタ用のXMLフォーマット定義ファイルの作成例

DBアダプタ用のXMLフォーマット定義ファイルの作成例を次に示します。

図3‒3 (例1)SELECT文を使用し,WHERE句の値を引数化したい場合

[図データ]

図3‒4 (例2)SELECT文を使用し,取得する列名も引数化したい場合

[図データ]

図3‒5 (例3)SELECT文を使用し,WHERE句の列名や式も引数化したい場合

[図データ]

(3) サービスアダプタ定義画面での操作

DBアダプタを定義する場合の手順を次に示します。

  1. サービスアダプタ定義画面を表示します。

    サービスアダプタ定義画面の表示方法については,「3.3.1(4) サービスアダプタ定義画面の表示」を参照してください。

  2. サービス部品制御情報の[サービス名]および[サービスID]を必要に応じて編集します。

    サービス名は,DBアダプタを追加したときに入力した名称から異なる名称に変更したい場合に入力してください。

    サービスIDは,運用管理者がHCSCサーバの操作(オペレーション)を行うときに必要になる識別情報です。サービス名との関連がわかるような形で命名することを推奨します。

  3. サービス部品制御情報の[追加]ボタンをクリックして,オペレーションを追加します。

    オペレーション名は,サービスリクエスタからHCSCサーバを呼ぶときに必要になる識別情報です。

  4. サービス部品制御情報の[システム例外をフォルトに変換する]チェックボックスを必要に応じてチェックします。

  5. オペレーション情報の[通信モデル]のドロップダウンリストから,「同期」または「非同期」を選択します。

    応答が必要な場合は「同期」を選択してください。

  6. 要求電文について,手順7.から手順16.までを実施します。

  7. 次に示す操作をします。

    標準電文のフォーマットを指定する場合

    手順8.〜10.を実施して,手順11.に進みます。

    標準電文のフォーマットを指定しない場合

    手順11.に進みます。

  8. 標準電文の[使う]チェックボックスをチェックします。

  9. 標準電文の[参照]ボタンをクリックして,[電文フォーマット]に標準電文のフォーマットを指定します。

    指定できる電文フォーマットの形式については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.6.5 XMLスキーマの適用範囲」を参照してください。なお,外部のXMLスキーマを参照している電文フォーマットは指定できません。

  10. 標準電文の[表示]ボタンをクリックします。

    標準電文のフォーマットが表示されます。必要に応じて指定した標準電文のフォーマットを確認してください。

  11. サービス部品電文の[参照]ボタンをクリックして,[電文フォーマット]にサービス部品電文のフォーマットを指定します。

    ここには,作成したDBアダプタ用のXMLフォーマット定義ファイルを指定します。

    [電文フォーマット]に指定できる電文種別は,XML電文だけです。

  12. サービス部品電文の[表示]ボタンをクリックします。

    サービス部品電文のフォーマットが表示されます。必要に応じて指定したサービス部品電文のフォーマットを確認してください。

  13. 必要に応じて,データ変換定義を行います。

    次に示す操作をします。

    標準電文の[使う]チェックボックスをチェックした場合

    手順14.〜16.を実施して,手順17.に進みます。

    標準電文の[使う]チェックボックスをチェックしない場合

    手順17.に進みます。

  14. データ変換定義のファイル名を入力します。

  15. [編集]ボタンをクリックします。

    データ変換定義画面が表示されます。

    なお,初めて定義する場合は,[ルート要素選択]ダイアログが表示されます。

    また,電文フォーマットを変更した場合は,電文フォーマットの変更を反映するかを確認するダイアログが表示されます。電文フォーマットを変更した場合の手順は,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「7.3.2 電文フォーマットを変更した場合の定義手順」を参照してください。

  16. 標準電文とサービス部品電文の内容をマッピングします。

  17. 手順5.の[通信モデル]で「同期」を選択した場合,応答電文についても同様に,手順7.から手順16.までを実施します。

  18. サービスアダプタ定義(詳細)タブをクリックします。

  19. サービスアダプタ(EJB-JARファイル)および独自定義ファイルの名称を確認します。

    サービスアダプタ(EJB-JARファイル)の名称が「cscdba_ejb.jar」,独自定義ファイルの名称が「cscadapter_property.xml」であることを確認してください。

    ユーティリティクラス(JARファイル)の設定は不要です。

  20. 独自定義ファイルの[追加]ボタンをクリックして,次のファイルを追加します。

    • SQLオペレーション定義ファイル

      [csa_sql_<任意の名称>.xml]

(4) アプリケーション統合属性ファイルの編集

サービスプラットフォームが提供するテンプレートファイルを利用して,アプリケーション統合属性ファイルを編集します。

アプリケーション統合属性ファイルの編集手順を示します。

  1. サービスアダプタ定義画面(詳細)の[独自定義ファイル]で「cscadapter_property.xml」を選択し,[編集]ボタンをクリックします。

    アプリケーション統合属性ファイルを編集するためのエディタが起動します。

  2. エディタ上でアプリケーション統合属性ファイルを編集します。

    アプリケーション統合属性ファイルによるプロパティ設定については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「9.2 アプリケーション統合属性ファイルによるプロパティ設定」を参照してください。アプリケーション統合属性ファイルの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「3.1 アプリケーション統合属性ファイル」を参照してください。

    アプリケーション統合属性ファイルに設定する項目について,次の表に示します。

    表3‒7 アプリケーション統合属性ファイルの設定項目

    タグ

    説明

    設定内容

    変更

    可否

    設定例

    <hitachi-application-all-property>

    ルートタグ

     <ejb-jar>

    EJBに関する情報の定義の開始タグ

      <hitachi-session-bean-property>

    SessionBeanの属性の定義の開始タグ

       <resource-ref>

    リソース参照についての定義の開始タグ※1

        <res-ref-name>

    リソース参照名

    SQLオペレーション定義ファイルの<DB_NAME>タグに指定したデータベース参照名

    DB_SERVER1

        <res-sharing-scope>

    参照したリソースを共有するかどうかの指定

    DBアダプタが参照するDB Connectorを共有するかどうかの指定

    Shareable

        <linked-to>

    データソース表示名

    DB Connectorのプロパティ定義(display-name)に指定したリソースアダプタの名称

    DB_Connector_for_HiRDB_Type4_XAやDB_Connector_for_Oracle_XAなど※2

    display-nameを変更した場合は変更後の名称。

       </resource-ref>

    リソース参照についての定義の終了タグ

       <container-transaction>

    コンテナのトランザクションについての定義の開始タグ

        <trans-attribute>

    メソッドに割り当てるトランザクション属性

    トランザクションを引き継ぐRequired

    Required※3

       </container-transaction>

    コンテナのトランザクションについての定義の終了タグ

       <session-runtime>

    runtimeの定義の開始タグ

        <stateless>

    statelessの定義の開始タグ

         <pooled-instance>

    プール内のインスタンスについての定義の開始タグ

          <minimum>

    プール内のインスタンスの最小数

    DBアダプタのインスタンスの最小数

    0または1≦minimum≦maximum

          <maximum>

    プール内のインスタンスの最大数

    DBアダプタのインスタンスの最大数

    0(無制限)または1≦maximum≦maximum-sessions

         </pooled-instance>

    プール内のインスタンスについての定義の終了タグ

        </stateless>

    statelessの定義の終了タグ

       </session-runtime>

    runtimeの定義の終了タグ

      </hitachi-session-bean-property>

    SessionBeanの属性の定義の終了タグ

     </ejb-jar>

    EJBに関する情報の定義の終了タグ

    </hitachi-application-all-property>

    ルートタグ

    (凡例)

    −:変更できません。

    注※1

    SQLオペレーション定義ファイルのdynamic属性にYが設定されている場合は,このタグおよびその子要素の定義を省略してください。

    注※2

    display-nameを変更した場合は,変更後の名称を指定してください。

    注※3

    ビジネスプロセスとは別にDBアダプタのトランザクションを開始する場合は,HCSCサーバランタイム定義ファイルのdba-separate-transactionプロパティにtrue,またはSQLオペレーション定義ファイルの「dba_separate_transaction」属性にYを設定し,かつアプリケーション統合属性ファイルの<trans-attribute>タグにRequiresNewを設定してください。

    注意事項

    表3-7で示した設定・変更できる項目以外は,設定・変更しないでください。

  3. Eclipseのメニューから[ファイル]−[保存]を選択し,定義内容を保存します。

(5) データ変換

要求電文のデータ変換を行う場合,サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し,データ変換定義画面でデータ変換を定義します。応答電文のデータ変換を行う場合,サービス部品から返される電文に標準電文を設定し,データ変換定義画面でデータ変換を定義します。

(a) データ変換が必要なケース

サービスリクエスタの電文の形式と,DBアダプタ電文の形式が異なる場合,データ変換が必要です。

次のような場合は,標準電文のフォーマットを指定してデータ変換を定義します。

  • DBアダプタに指定した電文フォーマット(XMLフォーマット定義ファイル)と異なる電文フォーマットでDBアダプタを呼びたい場合

  • DBアダプタに指定した電文フォーマット(XMLフォーマット定義ファイル)と異なる電文フォーマットでDBアダプタからの応答を受け取りたい場合

(b) データ変換の定義

  • 要求電文のデータ変換をする場合

    サービスアダプタ定義画面で標準電文にサービスリクエスタから入力される電文を設定し,データ変換定義画面でデータ変換を定義します。

    要求電文については,DBアダプタに指定した電文フォーマット(XMLフォーマット定義ファイル)のDBA_IN_DATAと対応付けます。

  • 応答電文のデータ変換をする場合

    サービス部品から返される電文に標準電文を設定し,データ変換定義画面でデータ変換を定義します。

    応答電文については,DBアダプタに指定した電文フォーマット(XMLフォーマット定義ファイル)のDBA_OUT_DATAと対応付けます。

データ変換の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「7. データ変換の定義」を参照してください。

(6) EARファイルの入れ替え

DBアダプタの追加時にEARファイルを設定します。DBアダプタを追加したあとにEARファイルを修正する必要がある場合,DBアダプタのサービスアダプタ定義画面で,EARファイルを入れ替えます。

DBアダプタのサービスアダプタ定義画面で,EARファイルを入れ替える手順を次に示します。

  1. ツリービューのサービス定義一覧で,EARファイルを入れ替えるDBアダプタをダブルクリックします。

    サービスアダプタ定義画面が表示されます。

  2. 画面下部の[サービスアダプタ定義(詳細)]タブをクリックします。

    サービスアダプタ定義(詳細)画面が表示されます。

  3. サービスアダプタ定義(詳細)画面で,[参照]ボタンをクリックします。

  4. 入れ替えるEARファイルを指定します。

(7) サービスリクエスタの作成

DBアダプタに要求を出すサービスリクエスタは,要求電文を受け付ける標準受付の種類によって作成方法が異なります。それぞれの標準受付の種類ごとの作成方法を参照して作成してください。参照先を次の表に示します。

表3‒8 DBアダプタに要求を出すサービスリクエスタの作成方法

標準受付の種類

参照先

同期受付

Webサービス(SOAP1.1)

マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「9.2 標準の同期受付(Webサービス)に要求を出すサービスリクエスタ(SOAP通信基盤)

Webサービス(SOAP1.2)

マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「9.3 標準の同期受付(Webサービス)に要求を出すサービスリクエスタ(JAX-WSエンジン)

SessionBean

マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「9.4 標準の同期受付(SessionBean)に要求を出すサービスリクエスタ

非同期

MDB(WS-R)

マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「9.5 標準の非同期受付(MDB(WS-R))に要求を出すサービスリクエスタ

MDB(DBキュー)

マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「9.6 標準の非同期受付(MDB(DBキュー))に要求を出すサービスリクエスタ

以降の項では,DBアダプタ電文の形式について説明します。

DBアダプタ用のサービスリクエスタの電文の形式が,DBアダプタ電文の形式と異なる場合,データ変換が必要です。データ変換の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「7. データ変換の定義」を参照してください。

(a) 要求電文の形式

要求電文は,XML文書形式で作成します。

要素,属性およびテキストデータは,W3CのXMLの仕様に従って指定します。XML文書で使用できない「<」,「>」,「&」などの文字を使用する場合,エスケープするか,CDATAセクションを利用する必要があります。

要求電文の形式は,単一のSQL文の実行を要求する場合と,複数のSQL文の実行を要求する場合とで異なります。

要求電文の形式を次に示します。なお,斜体の文字は可変値を表します。

単一のSQL文の実行を要求する場合

ルート要素(DBadapter要素)の下位要素としてSQL識別子要素を記述します。記述できるSQL識別子要素の数は,1つだけです。

<DBadapter>
  <SQL識別子 out_maxOccurs="検索結果出力最大件数">
    <DBA_IN_DATA>
      <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
        :
    </DBA_IN_DATA>
  </SQL識別子>
</DBadapter>
複数のSQL文の実行を要求する場合

ルート要素(DBadapter要素)の下位要素としてDBA_MULTI_SQL要素を記述します。複数のDBA_MULTI_SQL要素を記述できます。記述できる数は,SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以下です。

<DBadapter>
  <DBA_MULTI_SQL>
    <SQL識別子 out_maxOccurs="検索結果出力最大件数">
      <DBA_IN_DATA>
        <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
          :
      </DBA_IN_DATA>
    </SQL識別子>
  </DBA_MULTI_SQL>
    :
</DBadapter>

(b) 要求電文の要素と属性

要求電文の要素と属性について次の表に示します。なお,要素および属性の指定は,SQLオペレーション定義ファイルの設定値に依存します。SQLオペレーション定義ファイルについては「(1) SQLオペレーション定義ファイルの作成」を参照してください。

表3‒9 要求電文の要素と属性

要素名・属性名

種別

内容と設定値

設定値の型

省略可否

DBadapter

要素

ルート要素です。次の下位要素があります。

単一SQL文の実行要求の場合

下位要素はSQL識別子要素です。

複数SQL文の実行要求の場合

下位要素はDBA_MULTI_SQL要素です。

×

DBA_MULTI_SQL

要素

サービスリクエスタからの要求が,複数のSQL文を実行する要求であることを示す要素です。SQL識別子以降の下位要素で入力情報を設定します。

SQLオペレーション定義ファイルのMAX_SQL_NO要素に設定した値以内で複数記述できます。

単一のSQL文の実行を要求する場合,この要素は記述できません。

SQL識別子

要素

SQL識別子にはSQLオペレーション定義ファイルで指定したSQL識別子の名称を指定します。

DBA_IN_DATA以降の下位要素で,入力情報を設定します。

属性にout_maxOccursがあります。

 out_maxOccurs

属性

検索結果出力最大件数を指定します。0以上の値を指定します。

省略した場合

SQLオペレーション定義ファイルで指定したout_maxOccursの値が設定されます。

「0」を設定した場合

最大件数が2,147,483,647件に設定されます。

xsd:int

DBA_IN_DATA

要素

引数要素以降の下位要素で,SQLオペレーション定義ファイルで設定した引数要素のデータを設定します。

×

引数要素

要素

引数要素にはSQLオペレーション定義ファイルで指定した引数要素の名称を指定します。

この要素には,SQLオペレーション定義ファイルで指定した引数要素のデータが格納されます。

属性にnulldataがあります。

SQLオペレーション定義ファイルの設定で,該当するSQL識別子に引数要素がない場合,この要素は設定できません。

xsd:stringまたはdata_typeの設定値

×

 nulldata

属性

SQLオペレーション定義ファイルで指定したdba_inf(引数の種別)が「data」の場合に,空要素のデータを「null」として扱うかどうかを指定します(dba_infが「data」以外の場合は,指定できません)。

「null」として扱う場合

「"Y"」を指定します。

「null」として扱わない場合

「"N"」を指定します。

なお,省略した場合,この属性には「"N"」が設定されます。

xsd:string

{Y|N}

(凡例)

−:設定値はありません。

○:省略できます。

×:省略できません。

注※

格納する引数要素の型は,SQLオペレーション定義ファイルで,該当する引数要素に指定したdba_inf(引数の種別)によって異なります。dba_infがtable,columnまたはpresetの場合,xsd:string型になります。dba_infがdataの場合,data_type(データ型)の設定値に従ってください。data_typeの設定値と引数要素の型の対応については,「表3-10」および「表3-11」を参照してください。

また,dba_infがdataの場合,引数要素に格納するデータをシングルクォーテーション(')で囲む必要はありません。

表3‒10 data_typeの設定値と引数要素の型の対応(HiRDBの場合)

data_typeの設定値

引数要素の型

INTEGER

xsd:int

SMALLINT

xsd:short

DECIMAL

xsd:string

FLOAT

xsd:double

REAL

xsd:float

CHAR

xsd:string

VARCHAR

xsd:string

DATE

xsd:date

TIME

xsd:string

TIMESTAMP

xsd:string

LONGVARBINARY

xsd:hexBinary

xsd:base64Binary

注※

記述した型に加え,空要素の設定も許可されます。

表3‒11 data_typeの設定値と引数要素の型の対応(Oracleの場合)

data_typeの設定値

引数要素の型

NUMERIC

xsd:string

CHAR

xsd:string

VARCHAR

xsd:string

DATE

xsd:date

TIME

xsd:string

TIMESTAMP

xsd:string

LONGVARCHAR

xsd:string

CLOB

xsd:string

VARBINARY

xsd:hexBinary

xsd:base64Binary

LONGVARBINARY

xsd:hexBinary

xsd:base64Binary

BLOB

xsd:hexBinary

xsd:base64Binary

注※

記述した型に加え,空要素の設定も許可されます。

なお,DBアダプタに送信する要求電文で設定する引数要素の値は,次の表のとおりに扱います。

表3‒12 DBアダプタに送信する要求電文での引数要素の扱い

要求電文の引数要素の値

SQLオペレーション定義ファイルの設定値

要求電文のnulldataの属性値

引数要素の扱い

dba_infの属性値

data_typeの属性値

空要素

data

"Y"または"△Y△"

null

"Y"または"△Y△"以外(省略時も含む)

空文字列("")

data以外

空文字列("")

空要素以外

data

CHAR,VARCHAR,LONGVARCHAR,CLOB

値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は,空白文字を削除しないで"△ABC△"として扱います。

CHAR,VARCHAR,LONGVARCHAR,CLOB以外

値の前後の空白文字を削除します。<引数要素>△123△</引数要素>は,空白文字を削除して"123"として扱います。

data以外

値の前後の空白文字は削除しません。<引数要素>△ABC△</引数要素>は,空白文字を削除しないで"△ABC△"として扱います。

(凡例)

−:判定の材料ではありません。

△:1つ以上の空白文字(半角空白文字,改行文字,タブ文字)です。

注※

nulldataの属性値の前後の空白文字は無視します。

(c) 応答電文の形式

応答電文は,XML文書形式で出力されます。

なお,検索結果(列名など)にXML文書で使用できない「<」や「&」などの文字が含まれていた場合,「&lt;」や「&amp;」などにエスケープして応答電文に設定されます。そのため,データベースに格納されているデータをエスケープする必要はありません。

応答電文の形式は,単一のSQL文の実行要求に対する応答の場合と,複数のSQL文の実行要求に対する応答の場合とで異なります。

応答電文の形式を次に示します。なお,斜体の文字は可変値を表します。

単一のSQL文の実行要求に対する応答の場合

ルート要素(DBadapter要素)の下位要素としてSQL識別子要素が出力されます。

<DBadapter>
  <SQL識別子 out_maxOccurs="検索結果出力最大件数">
    <DBA_IN_DATA>
      <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
        :
    </DBA_IN_DATA>
    <DBA_OUT_DATA>
      <DBA_ResultSetNo>SQLリターン値</DBA_ResultSetNo>
      <DBA_ResultSetXmlNo>検索結果の件数</DBA_ResultSetXmlNo>
      <DBA_ResultSetName>
        <DBA_ResultColumnName cid="列番号">列の名称</DBA_ResultColumnName>
          :
      </DBA_ResultSetName>
      <DBA_ResultSet lid="行番号">
        <DBA_ResultColumn cid="列番号">該当行n列目の検索結果</DBA_ResultColumn>
          :
      </DBA_ResultSet>
        :
    </DBA_OUT_DATA>
  </SQL識別子>
</DBadapter>
複数のSQL文の実行要求に対する応答の場合

ルート要素(DBadapter要素)の下位要素としてDBA_MULTI_SQL要素が出力されます。要求電文で記述したDBA_MULTI_SQL要素と同数のDBA_MULTI_SQL要素が出力されます。

<DBadapter>
  <DBA_MULTI_SQL>
    <SQL識別子 out_maxOccurs="検索結果出力最大件数">
      <DBA_IN_DATA>
        <引数要素 nulldata="空要素の扱い">引数要素のデータ</引数要素>
          :
      </DBA_IN_DATA>
      <DBA_OUT_DATA>
        <DBA_ResultSetNo>SQLリターン値</DBA_ResultSetNo>
        <DBA_ResultSetXmlNo>検索結果の件数</DBA_ResultSetXmlNo>
        <DBA_ResultSetName>
          <DBA_ResultColumnName cid="列番号">列の名称</DBA_ResultColumnName>
            :
        </DBA_ResultSetName>
        <DBA_ResultSet lid="行番号">
          <DBA_ResultColumn cid="列番号">該当行n列目の検索結果</DBA_ResultColumn>
            :
        </DBA_ResultSet>
          :
      </DBA_OUT_DATA>
    </SQL識別子>
  </DBA_MULTI_SQL>
    :
</DBadapter>

なお,要求電文で入力情報が0(ゼロ)の場合,応答電文は次の形式で出力されます。

[図データ]

(d) 応答電文の要素と属性

応答電文の要素と属性について次の表に示します。

表3‒13 応答電文の要素と属性(DBアダプタ用のサービスリクエスタ)

要素名・属性名

種別

内容と設定値

格納される値の型

省略

DBadapter

要素

ルート要素です。次の下位要素があります。

単一SQL文の実行要求に対する応答の場合

下位要素としてSQL識別子要素が出力されます。

複数SQL文の実行要求に対する応答の場合

下位要素としてDBA_MULTI_SQL要素が出力されます。

×

DBA_MULTI_SQL

要素

サービスリクエスタからの複数のSQL文の実行要求に対する応答であることを示す要素です。SQL識別子以降の下位要素に入力情報(要求電文での設定情報)および出力情報(SQLの実行結果情報)が出力されます。

要求電文で記述したDBA_MULTI_SQL要素と同数のDBA_MULTI_SQL要素が出力されます。

×※1

SQL識別子

要素

下位の要素「DBA_IN_DATA」および「DBA_OUT_DATA」に,それぞれ入力情報(要求電文での設定情報)および出力情報(SQLの実行結果情報)が格納されます。

SQL識別子は,要求電文に設定したSQL識別子です。

なお,属性out_maxOccurs(検索結果出力最大件数)は,要求電文で設定した場合にだけ格納されます。

×

DBA_IN_DATA

要素

要求電文で設定した入力情報がこの要素の下位要素に格納されます。

×

DBA_OUT_DATA

要素

下位の要素にSQL実行時の出力情報が格納されます。実行したSQLによって,格納される出力情報が異なります。

INSERT,UPDATE,DELETEの場合

DBA_ResultSetNoが下位要素として格納されます。

SELECTの場合

次の要素が下位要素として格納されます。

  • DBA_ResultSetNo

  • DBA_ResultSetXmlNo

  • DBA_ResultSetName

  • DBA_ResultSet

×

DBA_ResultSetNo

要素

実行したSQLによって,格納される出力情報が異なります。

INSERT,UPDATE,DELETEの場合

更新した行数(PreparedStatementクラスのexecuteUpdateで取得した値)が格納されます。格納される要素の値が2,147,483,647を超えた場合に格納される値は,DB Connectorの使用するJDBCドライバのPreparedStatementクラスのexecuteUpdateの仕様に従います。

SELECTの場合

検索結果の件数が格納されます。

格納される要素の値が2,147,483,647を超えた場合,2,147,483,647が格納されます。

xsd:int

×

DBA_ResultSetXmlNo

要素

実行したSQLがSELECTの場合,実際の検索結果の件数(DBA_ResultSetNoの値)のうち,この応答電文に格納されている検索結果の件数が格納されます。

DBA_ResultSetNoの値が,要求電文またはSQLオペレーション定義ファイルのout_maxOccursに指定した値よりも大きい場合,out_maxOccursに指定した値が格納されます。

また,格納される要素の値が2,147,483,647を超えた場合,2,147,483,647が格納されます。

xsd:int

DBA_ResultSetName

要素

実行したSQLがSELECTの場合,検索結果の列の名称が,下位要素DBA_ResultColumnNameに格納されます。

なお,検索結果が0件の場合,この要素は格納されません。

DBA_ResultColumnName

要素

実行したSQLがSELECTの場合,該当する列の名称が格納されます。

なお,結果の列がデータベースの列の場合,「列名」の形式で設定されます。また,結果の列名が取得されない場合,SQLを発行した先のデータベースの仕様に従った名称が返されます。

属性にcidがあります。

xsd:string

 cid

属性

DBA_ResultColumnNameに格納される値の列番号を示します。

xsd:int

DBA_ResultSet

要素

実行したSQLがSELECTの場合,一行ごとの結果情報が,下位要素のDBA_ResultColumnに格納されます。なお,検索結果が0件の場合,この要素は格納されません。

属性にlidがあります。

 lid

属性

DBA_ResultSetに格納される値の行番号を示します。

また,格納される要素の値が2,147,483,647を超えた場合,2,147,483,647が格納されます。

xsd:int

DBA_ResultColumn

要素

該当する行(DBA_ResultSetで示される行)のn列目の検索結果が格納されます。※2

属性にcidおよびnulldataがあります。

xsd:string

 cid

属性

DBA_ResultColumnに格納される値の列番号を示します。

xsd:int

 nulldata

属性

DBA_ResultColumnに格納されたデータがnullであるかどうかを示します。

nullの場合「Y」が設定されます。nullでない場合,この属性は設定されません。

xsd:string

(凡例)

−:値は格納されません。

○:SQLがSELECTの場合にだけ出力されます。

△:SQLがSELECTの場合で,実行結果が1件以上のときに出力されます。

×:必ず出力されます。省略されません。

注※1

複数のSQL文の実行要求に対する応答の場合には必ず出力されます。単一のSQL文の実行要求に対する応答の場合には出力されません。

注※2

ResultSetクラスのgetStringで取得した値が格納されます。そのため,検索結果の書式はDB Connectorの使用するJDBCドライバのResultSetクラスのgetStringの仕様に従います。検索結果の書式を変更する場合,データベースが提供する関数(ファンクション)を使用して検索してください。

HiRDBのTIMESTAMP型(列名:c_ts)の書式をVARCHAR_FORMAT関数で変更する場合の例を次に示します。

SELECT VARCHAR_FORMAT(c_ts, 'YYYY-MONTH-DD HH:MI') FROM 表名