すべてのプロダクト
Search
ドキュメントセンター

Hologres:ExecuteStatement

最終更新日:May 15, 2026

OpenAPI を介して指定されたデータベースで SQL ステートメントを同期実行し、結果を返します。

操作説明

この API は、OpenAPI 経由で Hologres インスタンスの SQL ステートメントを安全に実行できます。

この API を使用する前に、次の前提条件を満たしていることを確認してください。

  1. コンソールのインスタンス詳細ページの [データセキュリティ] タブで、[Allow SQL execution through OpenAPI] オプションが有効になっていること。

  2. 呼び出し元の RAM アカウントに hologram:ExecuteStatement 権限が付与されていること。

この API は、SELECT、DDL、DML などのステートメントをサポートします。また、SQL インジェクションを防止するため、$1 および $2 プレースホルダーを使用したパラメータ化されたクエリもサポートしています。デフォルトでは、クエリ結果は 200 行 (最大 1,000 行まで設定可能) および 10 MB に制限されています。これらの制限を超える結果セットは切り捨てられ、レスポンスの truncated フィールドは切り捨てが発生したかを示します。1 回の実行のタイムアウトは 30 秒です。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

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 ステートメント内のプレースホルダー (例: $1$2) に順次マッピングされます。サポートされているタイプには、StringLongDoubleBoolean、および null (SQL の NULL 値用) があります。パラメータ化クエリを使用すると、SQL インジェクションを防ぎ、プリペアドステートメントのキャッシュ再利用率を向上させることができます。これらのパラメーターは、sql フィールド内のすべての SQL ステートメントに適用されます。

any

任意

パラメーターの値。

test_val

maxRows

integer

任意

返す行の最大数。デフォルト: 200。最大: 1,000。結果セットがこの制限を超えた場合、応答の Truncated フィールドに示されるとおり、切り捨てられます。

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

結果セットが切り捨てられたかどうかを示します。返された行数が MaxResults の値を超える場合、true になります。

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

列のデータ型 (int4textbool など)。

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.

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。