> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# データベース操作

データベースオペレーションでは、データベースに接続し、データベースに対してクエリを実行できます。これらのオペレーションは、ジョブ実行後の変換の適用、ロギングシステムの作成など、多くのことに使用できます。

以下の例は、post-job イベントで`dbNonQuery` オペレーションを使用して、ジョブの結果を記録する新しい行を挿入します。

```xml theme={null}
<api:info title="After Run" desc="このイベントはジョブを実行した後に発生します。">
  <input name="JobName"         required="true" desc="実行されたジョブの名前。" />
  <input name="Source"          required="true" desc="データソース接続の名前。" />
  <input name="Destination"     required="true" desc="同期先接続の名前。" />
  <input name="JobStatus"       required="true" desc="完了した実行のステータス。"/>
  <input name="Query#"          required="true" desc="実行された各クエリを含む配列。" />
  <input name="QueryStatus#"    required="true" desc="実行された各クエリのステータスを含む配列。" />
</api:info>

<api:set attr="db.driver"  value="cdata.jdbc.sql.SQLDriver"/> 
<api:set attr="db.conn"    value="jdbc:sql:user=;password=;Server=;Database="/> 
<api:set attr="db.query">
INSERT INTO MyLog (JobName, RunDate, Results) VALUES ('[_input.JobName]', '[null | now()]', '[_input.JobStatus]')
</api:set>
<api:call op="dbNonQuery" in="db"/>
```

## オペレーション

* [すべてのテーブルをリスト](#dblisttables)
* [テーブル内のカラムをリスト](#dblistcolumns)
* [クエリを実行](#dbquery)
* [NonQuery を実行](#dbnonquery)
* [ストアドプロシージャを実行](#dbcall)
* [トランザクションを開始](#dbbegintransaction)
* [トランザクションを終了](#dbendtransaction)

### dbListTables

データベースのテーブルをリストします。

| インプット属性（必須） | 説明                 |
| :---------- | :----------------- |
| driver      | JDBC ドラーバーのクラス名。   |
| conn        | 接続文字列またはデータベースURL。 |

| インプット属性（オプション）      | 説明                                                            |
| :------------------ | :------------------------------------------------------------ |
| includesystemtables | システムテーブルを含めるかどうか。`True` および`False` が使用可能です。デフォルト値は`False` です。 |
| schema              | テーブルが属するスキーマ。                                                 |

| アウトプット属性   | 説明            |
| :--------- | :------------ |
| db:name    | テーブル名。        |
| db:type    | テーブルの型。       |
| db:schema  | テーブルが属するスキーマ。 |
| db:catalog | テーブルが属するカタログ。 |

### dbListColumns

テーブルまたはビューのカラムをリストします。

| インプット属性（必須） | 説明                     |
| :---------- | :--------------------- |
| driver      | JDBC ドラーバーのクラス名。       |
| conn        | 接続文字列またはデータベースURL。     |
| table       | カラムをリストするテーブル（またはビュー）。 |

| インプット属性（オプション） | 説明            |
| :------------- | :------------ |
| schema         | テーブルが属するスキーマ。 |

| アウトプット属性      | 説明        |
| :------------ | :-------- |
| db:columnname | カラム名。     |
| db:datatype   | カラムのデータ型。 |

### dbQuery

データベースに対してクエリを実行します。

| インプット属性（必須） | 説明                 |
| :---------- | :----------------- |
| driver      | JDBC ドラーバーのクラス名。   |
| conn        | 接続文字列またはデータベースURL。 |
| query       | 実行するSQL クエリ文字列。    |

| インプット属性（オプション） | 説明                                                                        |
| :------------- | :------------------------------------------------------------------------ |
| commandtimeout | オペレーションが完了するまでのCommandTimeout（秒）。ゼロ（0）はタイムアウトなしを意味します。この属性のデフォルトは`60` です。 |
| paramname#     | SQL ステートメント内のパラメータ名。                                                      |
| paramValue#    | SQL ステートメント内のパラメータ値。                                                      |

| アウトプット属性 | 説明                  |
| :------- | :------------------ |
| db:\*    | クエリによりアウトプットは異なります。 |

### dbNonQuery

データベースに対してノンクエリを実行します。

| インプット属性（必須） | 説明                 |
| :---------- | :----------------- |
| driver      | JDBC ドラーバーのクラス名。   |
| conn        | 接続文字列またはデータベースURL。 |
| query       | 実行するSQL クエリ文字列。    |

| インプット属性（オプション） | 説明                                                                        |
| :------------- | :------------------------------------------------------------------------ |
| commandtimeout | オペレーションが完了するまでのCommandTimeout（秒）。ゼロ（0）はタイムアウトなしを意味します。この属性のデフォルトは`60` です。 |
| paramname#     | SQL ステートメント内のパラメータ名。                                                      |
| paramValue#    | SQL ステートメント内のパラメータ値。                                                      |

| アウトプット属性 | 説明                  |
| :------- | :------------------ |
| db:\*    | クエリによりアウトプットは異なります。 |

### dbCall

データベースでストアドプロシージャを実行します。

| インプット属性（必須） | 説明                 |
| :---------- | :----------------- |
| driver      | JDBC ドラーバーのクラス名。   |
| conn        | 接続文字列またはデータベースURL。 |
| Sp          | ストアドプロシージャの名前。     |

| インプット属性（オプション） | 説明                                                                        |
| :------------- | :------------------------------------------------------------------------ |
| commandtimeout | オペレーションが完了するまでのCommandTimeout（秒）。ゼロ（0）はタイムアウトなしを意味します。この属性のデフォルトは`60` です。 |
| dynamic        | ストアドプロシージャの種類。動的ストアドプロシージャの場合、この値は`true` です。デフォルト値は`false` です。            |
| paramname#     | SQL ステートメントのパラメータ名。                                                       |
| paramValue#    | SQL ステートメントのパラメータ値。                                                       |
| outparams      | カンマ区切りのストアドプロシージャのアウトプットパラメータ。                                            |
| paramtype:\*   | 指定されたデータカラムのデータ型。                                                         |
| paramsize:\*   | 指定されたデータカラムのカラムサイズ。                                                       |

| アウトプット属性 | 説明                          |
| :------- | :-------------------------- |
| db:\*    | ストアドプロシージャによってアウトプットは変わります。 |

### dbBeginTransaction

データベースでトランザクションを開始します。

| インプット属性（必須） | 説明                 |
| :---------- | :----------------- |
| driver      | JDBC ドラーバーのクラス名。   |
| conn        | 接続文字列またはデータベースURL。 |

| インプット属性（オプション）     | 説明                                                      |
| :----------------- | :------------------------------------------------------ |
| transactiontimeout | トランザクションのタイムアウト（秒）。ゼロ（0）はタイムアウトなしを意味します。デフォルト値は`60` です。 |
| transactionid      | トランザクションのID。                                            |

### dbEndTransaction

コミットまたはロールバックによってトランザクションを終了します。

| インプット属性（必須）       | 説明                                            |
| :---------------- | :-------------------------------------------- |
| driver            | JDBC ドラーバーのクラス名。                              |
| conn              | 接続文字列またはデータベースURL。                            |
| transactionaction | トランザクションのアクション。`commit` および`rollback`が使用可能です。 |

| インプット属性（オプション） | 説明            |
| :------------- | :------------ |
| transactionid  | トランザクションの識別子。 |
