OpenAPI を介して指定されたデータベースで SQL ステートメントを同期実行し、結果を返します。
操作説明
この API は、OpenAPI 経由で Hologres インスタンスの SQL ステートメントを安全に実行できます。
この API を使用する前に、次の前提条件を満たしていることを確認してください。
コンソールのインスタンス詳細ページの [データセキュリティ] タブで、[Allow SQL execution through OpenAPI] オプションが有効になっていること。
呼び出し元の RAM アカウントに hologram:ExecuteStatement 権限が付与されていること。
この API は、SELECT、DDL、DML などのステートメントをサポートします。また、SQL インジェクションを防止するため、$1 および $2 プレースホルダーを使用したパラメータ化されたクエリもサポートしています。デフォルトでは、クエリ結果は 200 行 (最大 1,000 行まで設定可能) および 10 MB に制限されています。これらの制限を超える結果セットは切り捨てられ、レスポンスの truncated フィールドは切り捨てが発生したかを示します。1 回の実行のタイムアウトは 30 秒です。
今すぐお試しください
テスト
RAM 認証
リクエスト構文
POST /api/v1/instances/{instanceId}/executeStatement HTTP/1.1
パスパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| instanceId |
string |
任意 |
インスタンス ID。 |
hgprecn-cn-i7m2ucpyu005 |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| body |
object |
任意 |
リクエストボディ。 |
|
| dbName |
string |
任意 |
データベース名。 |
test_db |
| sql |
string |
任意 |
実行する SQL ステートメント。最大長は 16,384 文字です。複数の SQL ステートメントをセミコロン (;) で区切って指定できます。複数のステートメントが指定された場合、API は最後のステートメントの結果を返します。 |
select * from test_table limit 10; |
| parameters |
array |
任意 |
パラメータ化クエリのバインドパラメーターの配列。これらのパラメーターは、SQL ステートメント内のプレースホルダー (例: |
|
|
any |
任意 |
パラメーターの値。 |
test_val |
|
| maxRows |
integer |
任意 |
返す行の最大数。デフォルト: 200。最大: 1,000。結果セットがこの制限を超えた場合、応答の |
300 |
| maxBytes |
integer |
任意 |
応答の最大サイズ (バイト単位)。デフォルト: 10,485,760 (10 MB)。応答サイズがこの制限を超えた場合、応答の Truncated フィールドに示されるとおり、切り捨てられます。 |
1024 |
| queryTimeout |
integer |
任意 |
クエリタイムアウト (秒単位)。デフォルト: 30。最大: 30。最小: 1。クエリがこの時間制限を超えた場合、サーバーはクエリをキャンセルします。 |
5 |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
結果データ。 |
||
| requestId |
string |
リクエスト ID。 |
819A7F0F-2951-540F-BD94-6A41ECF0281F |
| success |
string |
リクエストが成功したかどうかを示します。 |
True |
| errorCode |
string |
エラーコード。このパラメーターは、リクエストが失敗した場合にのみ返されます。 |
InvalidParameterValue |
| errorMessage |
string |
エラーメッセージ。このパラメーターは、リクエストが失敗した場合にのみ返されます。 |
参数值不合法(如 SQL 为空、超长等) |
| httpStatusCode |
string |
HTTP ステータスコード。 |
200 |
| data |
object |
SQL ステートメントの実行結果。 |
|
| success |
boolean |
SQL ステートメントが正常に実行されたかどうかを示します。 |
|
| errorCode |
string |
SQL ステートメントの実行エラーコード。このパラメーターは、実行が失敗した場合にのみ返されます。 |
InvalidParameterValue |
| errorMessage |
string |
SQL ステートメントの実行エラーメッセージ。このパラメーターは、実行が失敗した場合にのみ返されます。 |
参数值不合法(如 SQL 为空、超长等) |
| results |
array<object> |
実行結果のリスト。このリストには、常に結果オブジェクトが 1 つだけ含まれます。複数の SELECT ステートメントを実行した場合、最後のステートメントの結果のみが返されます。 |
|
|
array<object> |
単一の SQL ステートメントの結果を含むオブジェクト。 |
||
| success |
boolean |
SQL ステートメントが正常に実行されたかどうかを示します。 |
True |
| sql |
string |
実行された SQL ステートメント。 |
select * from test_table limit 10; |
| count |
integer |
SELECT ステートメントが返した行数。 |
25 |
| updateCount |
integer |
INSERT、UPDATE、または DELETE ステートメントで影響を受けた行数。このパラメーターは SELECT ステートメントでは返されません。 |
10 |
| truncated |
boolean |
結果セットが切り捨てられたかどうかを示します。返された行数が |
|
| queryId |
string |
クエリ ID。 |
E3F4B2A7-1234-5678-9ABC-DEF012345678 |
| errorMessage |
string |
SQL ステートメントのエラーメッセージ。 |
ERROR: relation \"non_existent_table\" does not exist\n Position: 15 |
| errorCode |
string |
SQL ステートメントのエラーコード。 |
SQL_ERROR |
| columnMetadata |
array<object> |
結果セット内の列のメタデータ。 |
|
|
object |
単一の列のメタデータを含むオブジェクト。 |
||
| name |
string |
列の名前。 |
id |
| type |
string |
列のデータ型 ( |
int4 |
| nullable |
boolean |
列が NULL 許容かどうかを示します。 |
|
| records |
array |
クエリが返すレコードのセット。各行は文字列の配列で、すべての値は文字列としてシリアル化されます。NULL 値は "\N" として表されます。 |
|
|
array |
結果セット内の単一の行を表す配列。 |
||
|
string |
文字列として返されるフィールド値。 |
["1", "Alice"] |
例
成功レスポンス
JSONJSON
{
"requestId": "819A7F0F-2951-540F-BD94-6A41ECF0281F",
"success": "True",
"errorCode": "InvalidParameterValue",
"errorMessage": "参数值不合法(如 SQL 为空、超长等)",
"httpStatusCode": "200",
"data": {
"success": false,
"errorCode": "InvalidParameterValue",
"errorMessage": "参数值不合法(如 SQL 为空、超长等)",
"results": [
{
"success": true,
"sql": "select * from test_table limit 10;",
"count": 25,
"updateCount": 10,
"truncated": false,
"queryId": "E3F4B2A7-1234-5678-9ABC-DEF012345678",
"errorMessage": "ERROR: relation \\\"non_existent_table\\\" does not exist\\n Position: 15",
"errorCode": "SQL_ERROR",
"columnMetadata": [
{
"name": "id",
"type": "int4",
"nullable": false
}
],
"records": [
[
" [\"1\", \"Alice\"]"
]
]
}
]
}
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 403 | NoPermission | RAM user permission is insufficient, please grant AliyunHologresReadOnlyAccess permission. |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。