

# Amazon RDS Data API オペレーションリファレンス
<a name="data-api-operations"></a>

Amazon RDS Data API では、以下のオペレーションを使用して、SQL ステートメントを実行することができます。


****  

|  Data API オペレーション  |  AWS CLI コマンド  |  説明  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_ExecuteStatement.html](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_ExecuteStatement.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/rds-data/execute-statement.html](https://docs.aws.amazon.com/cli/latest/reference/rds-data/execute-statement.html)  |  データベースで SQL ステートメントを実行します。  | 
|  [https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_BatchExecuteStatement.html](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_BatchExecuteStatement.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/rds-data/batch-execute-statement.html](https://docs.aws.amazon.com/cli/latest/reference/rds-data/batch-execute-statement.html)  |  データの配列に対してバッチ SQL ステートメントを実行して、一括更新オペレーションおよび挿入オペレーションを行います。パラメータセットの配列を使用して、データ操作言語 (DML) ステートメントを実行できます。バッチ SQL ステートメントは、挿入ステートメントと更新ステートメントを個々に実行するよりもパフォーマンスは大幅に向上します。  | 

どちらかの操作を使用して、個々の SQL ステートメントを実行したり、トランザクションを実行したりできます。トランザクションの場合、Data API は次のオペレーションを提供します。


****  

|  Data API オペレーション  |  AWS CLI コマンド  |  説明  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_BeginTransaction.html](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_BeginTransaction.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/rds-data/begin-transaction.html](https://docs.aws.amazon.com/cli/latest/reference/rds-data/begin-transaction.html)  |  SQL トランザクションをスタートします。  | 
|  [https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_CommitTransaction.html](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_CommitTransaction.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/rds-data/commit-transaction.html](https://docs.aws.amazon.com/cli/latest/reference/rds-data/commit-transaction.html)  |  SQL トランザクションを終了し、変更をコミットします。  | 
|  [https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_RollbackTransaction.html](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_RollbackTransaction.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/rds-data/rollback-transaction.html](https://docs.aws.amazon.com/cli/latest/reference/rds-data/rollback-transaction.html)  |  トランザクションをロールバックします。  | 

SQL ステートメントを実行し、トランザクションをサポートするためのオペレーションには、以下の共通の Data API パラメータおよび AWS CLI オプションがあります。他のパラメータやオプションをサポートするオペレーションもあります。


****  

|  Data API オペレーションのパラメータ  |  AWS CLI コマンドオプション  |  必須  |  説明  | 
| --- | --- | --- | --- | 
|  `resourceArn`  |  `--resource-arn`  |  はい  |  Aurora DB クラスターの Amazon リソースネーム (ARN)。クラスターは、Data API を呼び出す IAM ロールまたはユーザーと同じ AWS アカウントにある必要があります。別のアカウントのクラスターにアクセスするには、そのアカウントのロールを引き受けます。  | 
|  `secretArn`  |  `--secret-arn`  |  はい  |  DB クラスターへのアクセスを有効にするシークレットの ARN の名前。  | 

RDS Data API は、Aurora MySQL の次のデータ型をサポートしています。
+ `TINYINT(1)`, `BOOLEAN`, `BOOL`
+ `TINYINT`
+ `SMALLINT` [`SIGNED` \$1 `UNSIGNED`]
+ `MEDIUMINT` [`SIGNED` \$1 `UNSIGNED`]
+ `INT` [`SIGNED` \$1 `UNSIGNED`]
+ `BIGINT` [`SIGNED` \$1 `UNSIGNED`]
+ `FLOAT`
+ `DOUBLE`
+ `VARCHAR`, `CHAR`, `TEXT`, `ENUM`
+ `VARBINARY`, `BINARY`, `BLOB`
+ `DATE`, `TIME`, `DATETIME`, `TIMESTAMP`
+ `DECIMAL`
+ `JSON`
+ `BIT`, `BIT(N)` 

RDS Data API は、次の Aurora PostgreSQL スカラー型をサポートしています。
+ `BOOL`
+ `BYTEA`
+ `DATE`
+ `CIDR`
+ `DECIMAL`, `NUMERIC`
+ `ENUM`
+ `FLOAT8`, `DOUBLE PRECISION`
+ `INET`
+ `INT`, `INT4`, `SERIAL`
+ `INT2`, `SMALLINT`, `SMALLSERIAL`
+ `INT8`, `BIGINT`, `BIGSERIAL`
+ `JSONB`, `JSON`
+ `REAL`, `FLOAT`
+ `TEXT`, `CHAR(N)`, `VARCHAR`, `NAME`
+ `TIME`
+ `TIMESTAMP`
+ `UUID`
+ `VECTOR`

RDS Data API は、次の Aurora PostgreSQL 配列型をサポートしています。
+ `BOOL[]`, `BIT[]`
+ `DATE[]`
+ `DECIMAL[]`, `NUMERIC[]`
+ `FLOAT8[]`, `DOUBLE PRECISION[]`
+ `INT[]`, `INT4[]`
+ `INT2[]`
+ `INT8[]`, `BIGINT[]`
+ `JSON[]`
+ `REAL[]`, `FLOAT[]`
+ `TEXT[]`, `CHAR(N)[]`, `VARCHAR[]`, `NAME[]`
+ `TIME[]`
+ `TIMESTAMP[]`
+ `UUID[]`

パラメータは、Data API の `ExecuteStatement` および `BatchExecuteStatement` への呼び出しと、AWS CLI の `execute-statement` コマンドおよび `batch-execute-statement` コマンドの実行時に使用できます。パラメータを使用するには、名前と値のペアを `SqlParameter` データ型で指定します。値は、`Field` データ型で指定します。次の表は、Data API 呼び出しで指定したデータ型に Java Database Connectivity (JDBC) データ型をマッピングしたものです。


****  

|  JDBC データ型  |  Data API のデータ型  | 
| --- | --- | 
|  `INTEGER, TINYINT, SMALLINT, BIGINT`  |  `LONG`\$1 または `STRING`-  | 
|  `FLOAT, REAL, DOUBLE`  |  `DOUBLE`  | 
|  `DECIMAL`  |  `STRING`  | 
|  `BOOLEAN, BIT`  |  `BOOLEAN`  | 
|  `BLOB, BINARY, LONGVARBINARY, VARBINARY`  |  `BLOB`  | 
|  `CLOB`  |  `STRING`  | 
|  その他の型 (日時に関する型も含む)  |  `STRING`  | 

**注記**  
 データベースによって返される `LONG` 値の Data API 呼び出しで、`STRING` または `LONG` データ型を指定できます。非常に大きな数値では精度を失うといった、JavaScript での作業時に発生する可能性のある事態を避けるために、これを行うことをお勧めします。

`DECIMAL` や `TIME` などの特定のタイプでは、Data API が `String` 値を正しいタイプとしてデータベースに渡せるように、ヒントが必要です。ヒントを使用するには、`typeHint` データタイプの `SqlParameter` 値を含めます。`typeHint` に指定できる値は以下のとおりです。
+ `DATE` - 対応する `String` パラメータ値は、`DATE` タイプのオブジェクトとしてデータベースに送信されます。受け入れられる形式は `YYYY-MM-DD` です。
+ `DECIMAL` - 対応する `String` パラメータ値は、`DECIMAL` タイプのオブジェクトとしてデータベースに送信されます。
+ `JSON` - 対応する `String` パラメータ値は、`JSON` タイプのオブジェクトとしてデータベースに送信されます。
+ `TIME` - 対応する `String` パラメータ値は、`TIME` タイプのオブジェクトとしてデータベースに送信されます。受け入れられる形式は `HH:MM:SS[.FFF]` です。
+ `TIMESTAMP` - 対応する `String` パラメータ値は、`TIMESTAMP` タイプのオブジェクトとしてデータベースに送信されます。受け入れられる形式は `YYYY-MM-DD HH:MM:SS[.FFF]` です。
+  `UUID` - 対応する `String` パラメータ値は、`UUID` タイプのオブジェクトとしてデータベースに送信されます。
**注記**  
現在、Data API はユニバーサル固有識別子 (UUID) の配列をサポートしていません。

**注記**  
 Amazon Aurora PostgreSQL の場合、Data API は常に UTC タイムゾーンの Aurora PostgreSQL データ型 `TIMESTAMPTZ` を返します。