この API を呼び出す前に IBM® Data Studio クライアントを 使用して SQL ステートメントをキャプチャーする必要はありません。
この URL を使用して、以下のキーと値のペアを API に渡します。 https://localhost/tuning/formatsql
| キー | 値 | 使用可能な値 | デフォルト値 |
|---|---|---|---|
| dbType | データ・サーバーのタイプ。 | ZOS | |
| dbHost | データ・サーバーのホスト。 | ドメイン・ネームまたは IP アドレス | |
| dbPort | データ・サーバーのポート番号 | ||
| dbName | データ・サーバーの名前 | ||
| dbUser | データ・サーバーに接続するときに使用する ID。 | ||
| dbPassword | データ・サーバーに接続するときに使用するパスワード。 | ||
| sql | SQL ステートメントのテキスト。 | ||
| showAnnotation | これは、SQL ステートメントに統計のアノテーションを付けるかどうかを決定します。 このパラメーターが組み込まれた場合、API は、フォーマットされてアノテーションが付けられたステートメントを返す 前に SQL ステートメントを EXPLAIN します。 | false、true | true |
| schema | SQL ステートメント内の非修飾オブジェクトに対して使用される EXPLAIN プロセスのスキーマ。 この値は、tuning_service.properties ファイルに設定されている値をオーバーライドします。 | ||
| sqlid | これは、CURRENT SQLID 特殊レジスターの値を設定します。 | この値が指定されない場合、チューニング・サービスでは、サブシステムへの接続用に指定された 許可 ID が使用されます。 |
API は以下のキーと値のペアを返します。
| キー | 値 |
|---|---|
| code | web API からの戻りコード。
|
| output | フォーマット済み SQL ステートメント (アノテーションあり/なし)。 |
| message | エラー・メッセージまたは警告メッセージ。 |
| 例外 | 例外に関する情報 (例外が発生した場合)。 この情報は、お客様が IBM サポートと連携して問題解決にあたる場合に IBM サポートの参考になる可能性があります。 |
この例では、cURL を使用して formatsql API に SQL ステートメントを渡しています。 この API からは、フォーマットされて統計でアノテーションが付けられたステートメントが返されます。
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
dbType:ZOS,
dbHost:host,
dbPort:port_number,
dbName:subsystem,
dbUser:user_ID,
dbPassword:password,
sql:¥"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10¥"
}"
https://localhost/tuning/formatsql
{
"code":0,
"message":"SELECT authorization_ID.NATION.N_NAME¥n
FROM authorization_ID.NATION --CARDF=25 --QUALIFIED_ROWS=11
--NPAGESF=0¥n
WHERE authorization_ID.NATION.N_NATIONKEY < 10 --COLCARDF=25
--MAX_FREQ=(missing) --FF=0.44"
}
この例では、cURL を使用して formatsql API に SQL ステートメントを渡しています。 showAnnotation は false に設定されています。 ただし、表 user_ID.NATION は未定義であるため、エラーが発生します。
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
dbType:ZOS,
dbHost:host,
dbPort:port_number,
dbName:subsystem,
dbUser:user_ID,
dbPassword:password,
sql:¥"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10¥",
showAnnotation:false
}"
https://localhost/tuning/formatsql
{
"code":8,
"error":"The EXPLAIN statement failed. The following error was returned:
SQLCODE: -204, SQLSTATE: 42704.The SQL statement failed.",
"exception":"com.ibm.datatools.dsoe.explain.zos.exception.ExplainException:
com.ibm.datatools.dsoe.common.da.exception.OSCSQLException:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: user_ID.NATION IS
AN UNDEFINED NAME.
SQLCODE=-204, SQLSTATE=42704, DRIVER=3.67.24..."
}