Exemples de commande d’adaptateur JDBC -BIND

Ces exemples d’adaptateur JDBC illustrent l’effet de la commande -BIND dans une fonction GET ainsi que dans une carte de sortie et dans une instruction de langage de manipulation de données (DML) personnalisée.

Exemple de commande -BIND utilisée dans une fonction GET

L’adaptateur JDBC est utilisé dans une fonction GET de la manière suivante :

GET("JDBC", "-URL connection -USER username -PASSWORD password -QUERY ""SELECT C1, C2, C3 FROM table1 WHERE c4 = ? AND c1 = ?""", inputdata)
Etant donné que la commande -BIND n’est pas spécifiée, l’adaptateur suppose que les données d’entrée sont constituées d’un enregistrement avec deux zones :
  • La première zone est mappée au premier paramètre. Il correspond à la colonne c4 de la clause WHERE.
  • La deuxième zone est mappée au deuxième paramètre. Il correspond à la colonne c1 de la clause WHERE.
L’adaptateur interprète les deux zones et lie les deux paramètres en tant que valeurs de texte.

Lorsque la fonction GET est définie avec la commande -BIND comme suit :

GET("JDBC", "-URL connection -USER username -PASSWORD password -QUERY ""SELECT C1, C2, C3 FROM table1 WHERE c4 = ? AND c1 = ?"" -BIND ""2 INT32,1 FLOAT64""", inputdata)
L’adaptateur suppose que les données d’entrée sont constituées d’un enregistrement comportant deux zones :
  • La première zone est mappée au deuxième paramètre. Il correspond à la colonne c1 de la clause WHERE.
  • La deuxième zone est mappée au premier paramètre. Il correspond à la colonne c4 de la clause WHERE.
L’adaptateur interprète la première zone en tant qu’entier 32 bits (dans la représentation textuelle). Il interprète la deuxième zone en tant que nombre à virgule flottante à double précision (valeur 8 dans la représentation textuelle, suivie par le délimiteur de barre verticale (|), suivie de 8 octets représentant le nombre au format binaire).

Exemple de commande -BIND utilisée dans une carte de sortie et un DML personnalisé

L’adaptateur JDBC est utilisé dans une carte de sortie avec la ligne de commande de l’adaptateur définie comme suit :

-URL connection -USER username -PASSWORD password -DML "INSERT INTO table1 VALUES (? + 10, TO_TEXT(?), ? + ?)"
Etant donné que la commande -BIND n’est pas spécifiée, l’adaptateur suppose que les données d’entrée sont constituées d’enregistrements avec quatre zones chacun :
  • La première zone est mappée au premier paramètre.
  • La deuxième zone est mappée au deuxième paramètre.
  • La troisième zone est mappée au troisième paramètre.
  • La quatrième zone est mappée au quatrième paramètre.
L’adaptateur interprète les quatre zones et lie les quatre paramètres en tant que valeurs de texte. Il est probable que cette instruction ne s’exécutera pas (en fonction du pilote), car l’opérateur plus (+) utilisé avec certains des paramètres peut ne pas fonctionner avec des valeurs de texte.

Supposons à présent que la ligne de commande de l’adaptateur soit définie à l’aide de la commande -BINDcomme suit :

-URL connection -USER username -PASSWORD password -DML "INSERT INTO table1 VALUES (? + 10, TO_TEXT(?), ? + ?)" -BIND "1 INT8,2 DATE,4 INT16,3 INT64"
L’adaptateur suppose que les données d’entrée sont constituées d’enregistrements comportant quatre zones chacun :
  • La première zone est mappée au premier paramètre.
  • La deuxième zone est mappée au deuxième paramètre.
  • La troisième zone est mappée au quatrième paramètre.
  • La quatrième zone est mappée au troisième paramètre.
L’adaptateur interprète les zones et lie les paramètres comme suit :
  • La première zone est liée au premier paramètre en tant qu'entier 8 bits.
  • La deuxième zone est mappée au deuxième paramètre en tant que date.
  • La troisième zone est liée au quatrième paramètre en tant qu'entier 16 bits.
  • La quatrième zone est liée au troisième paramètre en tant qu’entier 64 bits.