formatsql : Mise en forme et annotation d'instructions SQL uniques

Une fois que vous avez transmis à l'API formatsql une instruction SQL, l'API renvoie l'instruction mise en forme pour vous permettre de la lire plus facilement. L'API formatsql peut également annoter l'instruction avec des statistiques.

Vous devez capturer l'instruction SQL via le client IBM® Data Studio avant d'appeler cette API.

Paramètres d'entrée

Transmettez à l'API les paires de clés et de valeurs suivantes en utilisant l'URL : https://localhost/tuning/formatsql

Tableau 1. Paramètres d'entrée
Clé Valeur Valeurs admises Valeur par défaut
dbType Type de serveur de données. ZOS  
dbHost Hôte du serveur de données. Nom du domaine ou adresse IP.  
dbPort Numéro de port du serveur de données.    
dbName Nom du serveur de données.    
dbUser ID à utiliser lors de la connexion au serveur de données.    
dbPassword Mot de passe à utiliser lors d'une connexion au serveur de données.    
sql Texte de l'instruction SQL.    
showAnnotation Détermine si l'instruction SQL doit être annotée avec des statistiques. Si vous incluez ce paramètre, l'API explique l'instruction SQL avant de renvoyer l'instruction mise en forme et annotée. false, true true
schema Schéma du processus EXPLAIN à utiliser pour les objets non habilités dans l'instruction SQL. Cette valeur remplace la valeur définie dans le fichier tuning_service.properties.    
sqlid Définit la valeur du registre spécial CURRENT SQLID.   Si vous n'indiquez pas de valeur, le service d'optimisation utilise l'ID d'autorisation spécifié pour la connexion au sous-système.

Paramètres de sortie

L'API renvoie les paires de clés et de valeurs suivantes :

Tableau 2. Paramètres de sortie
Clé Valeur
code Code retour de l'API Web.
0
Exécution sans avertissements
4
Exécution avec des avertissements
8
Arrêt avant la fin de l'exécution en raison d'une erreur
output Elément SQL mis en forme, avec ou sans annotations.
message Messages d'erreur ou d'avertissement.
exception Informations sur l'exception, le cas échéant. Ces informations peuvent être utiles au service de support IBM si vous le contactez pour résoudre un problème.

Exemple 1

Cet exemple utilise cURL pour transmettre une instruction SQL à l'API formatsql, qui renvoie l'instruction mise en forme et annotée avec des statistiques.

Entrée
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:hôte,
   dbPort:numéro_port,
   dbName:sous-système,
   dbUser:ID_utilisateur,
   dbPassword:mot_de_passe,
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\"
   }"
https://localhost/tuning/formatsql
Sortie
{ 
"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"
}

Exemple 2

Cet exemple utilise cURL pour transmettre une instruction SQL à l'API formatsql en associant le paramètre showAnnotation à la valeur "false". Toutefois, une erreur se produit car la table ID_utilisateur.NATION n'est pas définie.

Entrée
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:hôte,
   dbPort:numéro_port,
   dbName:sous-système,
   dbUser:ID_utilisateur,
   dbPassword:mot_de_passe,
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\",
   showAnnotation:false
   }"
https://localhost/tuning/formatsql
Sortie
{ 
"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: ID_utilisateur.NATION IS
      AN UNDEFINED NAME.
   SQLCODE=-204, SQLSTATE=42704, DRIVER=3.67.24..."
}

Feedback