Marqueurs de paramètres de la clause FROM des requêtes de collections Java intégrées à la mémoire

Il existe différents marqueurs que vous pouvez utiliser dans les instructions SQL SELECT pour faire référence aux paramètres des méthodes exécutant les collections Java intégrées à la mémoire.

Une instruction SQL peut utiliser les valeurs transmises lors de l'exécution aux paramètres de la méthode utilisant l'instruction. Les instructions SQL notent ces paramètres à l'aide de marqueurs. Chaque marqueur correspond à un paramètre d'une méthode.

Lorsqu'une méthode est appelée, les valeurs de ces paramètres sont obtenues à partir des arguments fournis par l'application d'appel et sont utilisées lors de l'exécution de l'instruction SQL.

Marqueurs de paramètres pour les instructions SELECT des méthodes annotées

Les marqueurs de paramètres suivants sont autorisés dans la clause FROM de l'instruction SELECT qui apparaît dans une méthode annotée exécutant une collection Java intégrée à la mémoire. Ces deux marqueurs de paramètres veulent dire la même chose dans la clause FROM qu'ailleurs dans la requête.

Vous ne pouvez pas utiliser les deux types de marqueurs de paramètres dans la même instruction SQL.

?
? marqueurs de paramètres correspondant au paramètre de la méthode par position. Le marqueur nth ? correspond au paramètre nth de la méthode annotée.
?n
Les marqueurs de paramètres ?n, où n représente une valeur littérale positive entière, correspondent au paramètre de la méthode par position ordinale. ?n correspond au paramètre nth de la méthode annotée.

L'exécution pureQuery obtient les informations dont elle a besoin concernant la classe de la collection à partir de la déclaration de la méthode annotée.

Marqueurs de paramètres pour les instructions SELECT des méthodes intégrées

Les marqueurs de paramètres suivants sont autorisés dans la clause FROM de l'instruction SELECT qui apparaît dans une méthode intégrée exécutant une collection Java intégrée à la mémoire.

Vous ne pouvez pas utiliser les deux types de marqueurs de paramètres dans la même instruction SQL.

?<classname>
Les marqueurs de paramètres ? correspondent au paramètre de la méthode par position. Le caractère nth ? correspond à l'entrée (n-1)th de Object[] qui contient les valeurs des paramètres Object....
?n.<classname>
Les marqueurs de paramètres ?n, où n représente une valeur littérale positive entière, correspondent au paramètre de la méthode par position. ?n correspond à l'entrée (n-1)th de Object[] qui contient les valeurs des paramètres Object....

<classname> représente le nom de classe entièrement qualifiée des membres de la collection correspondante transmise sous forme de paramètre lors de l'exécution de la méthode.

L'exécution pureQuery doit connaître la classe à utiliser lors du contrôle des membres d'une collection Java intégrée à la mémoire.

Lorsque l'une des deux dernières formes est utilisée, le nom de la classe est identifié spécifiquement dans la clause FROM, comme dans l'exemple ci-dessous :

List<Employee> emps; 
Dept[] depts;

List<Map<String, Object>> list = qocData.queryList 
("select e.id, d.name " +
  "from ?1.com.ibm.data.test.Employee as e, " +      
       "?2.com.ibm.data.test.single.Dept as d " + 
   "where e.deptid=d.id", emps, depts);

Commentaires