Es ist nicht erforderlich, die SQL-Anweisung über den IBM® Data Studio-Client zu erfassen, bevor Sie diese API aufrufen.
Übergeben Sie die folgenden Paare von Schlüsseln und Werten über diese URL an die API: https://localhost/tuning/formatsql
| Key (Schlüssel) | Wert | Mögliche Werte | Standardwert |
|---|---|---|---|
| dbType | Der Typ des Datenservers. | ZOS | |
| dbHost | Der Host des Datenservers. | Domänenname oder IP-Adresse | |
| dbPort | Die Portnummer des Datenservers | ||
| dbName | Der Name des Datenservers | ||
| dbUser | Die bei der Herstellung einer Verbindung zum Datenserver zu verwendende ID. | ||
| dbPassword | Das bei der Herstellung einer Verbindung zum Datenserver zu verwendende Kennwort. | ||
| sql | Der Text der SQL-Anweisung. | ||
| showAnnotation | Legt fest, ob die SQL-Anweisung mit Statistikannotationen versehen werden soll. Wenn Sie diesen Parameter angeben, bearbeitet die API die SQL-Anweisung mit EXPLAIN, bevor sie sie formatiert und mit Annotationen versehen zurückgibt. | false, true | true |
| schema | Das Schema für den EXPLAIN-Prozess, das für nicht qualifizierte Objekte in der SQL-Anweisung verwendet werden soll. Dieser Wert überschreibt den Wert, der in der Datei tuning_service.properties festgelegt wurde. | ||
| sqlid | Legt den Wert für das Sonderregister CURRENT SQLID fest. | Wenn Sie keinen Wert angeben, verwendet der Optimierungsservice die Berechtigungs-ID, die für die Herstellung der Verbindung zum Subsystem angegeben wurde. |
Die API übergibt die folgenden Paare von Schlüsseln und Werten:
| Schlüssel | Wert |
|---|---|
| code | Der Rückkehrcode vom Web-API.
|
| output | Die formatierte SQL-Anweisung mit oder ohne Annotationen. |
| message | Fehler- oder Warnnachrichten. |
| exception | Informationen zu einer eventuell aufgetretenen Ausnahmebedingung. Diese Informationen können dem IBM Support während der Arbeit für Sie bei der Fehlerbehebung helfen. |
Dieses Beispiel verwendet cURL, um eine SQL-Anweisung an die formatsql-API zu übergeben, die die Anweisung formatiert und mit Statistikannotationen versehen zurückgibt.
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
dbType:ZOS,
dbHost:Host,
dbPort:Portnummer,
dbName:Subsystem,
dbUser:Benutzer-ID,
dbPassword:Kennwort,
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"
}
Dieses Beispiel verwendet cURL, um eine SQL-Anweisung an die formatsql-API zu übergeben, wobei showAnnotation auf "false" (falsch) gesetzt ist. Hierbei liegt jedoch ein Fehler vor, weil die Tabelle Benutzer-ID.NATION nicht definiert ist.
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
dbType:ZOS,
dbHost:Host,
dbPort:Portnummer,
dbName:Subsystem,
dbUser:Benutzer-ID,
dbPassword:Kennwort,
sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\",
showAnnotation:false
}"
https://localhost/tuning/formatsql
{
"code":8,
"error":"Die Anweisung EXPLAIN ist fehlgeschlagen. Der folgende Fehler wurde zurückgegeben:
SQLCODE: -204, SQLSTATE-Wert: 42704.Die SQL-Anweisung ist fehlgeschlagen.",
"exception":"com.ibm.datatools.dsoe.explain.zos.exception.ExplainException:
com.ibm.datatools.dsoe.common.da.exception.OSCSQLException:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: Benutzer-ID.NATION IST EIN
NICHT DEFINIERTER NAME.
SQLCODE=-204, SQLSTATE-WERT=42704, TREIBER=3.67.24..."
}