Les variables de liaison
Toutes les application de type OLTP envoient souvent des requêtes similaire qui diffèrent seulement dans les valeurs utilisées pour filtrer les données, comme pour exemple: la recherches des informations (adresse de livraison, adresse de facturation, etc. ) d'un client en utilisant son nom et prénom. On peut parler dans ce cas des requêtes paramétrable. Pour exemple les deux requêtes suivantes ont la même structure:
select ename from emp where empno = 7369
select ename from emp where empno = 7900
donc on pourrait les remplacer par la requête générique:
select ename from emp where empno = :empno
Du ce point de vue les variables de liaison jouent un rôle similaire aux paramètres passés aux sous-programmes dans le cas des autres langages de programmation. Dans cet exemple les littéraux qui changent d'une exécution de la requête à l'autre sont remplacés par une variable de liaison qui changeras de valeur au moment de l'exécution de la requête.
Il est intéressant de noter qu'au bout de la ligne toutes les langages de programmation qui interagissent avec Oracle construisent leur requêtes SQL d'une manière directe ou indirecte en le stockant dans une chaîne de caractères et que souvent coller les valeurs des variables saisies par les utilisateurs via l'interface IHM semble une opération assez naturelle et facile. Voilà un exemple écrit en Java mais, gardez à l'esprit, que le choix du langage n'a aucune importance dans ces discutions; les mêmes concepts s'appliquent aussi pour les autres langages comme PHP, Ruby, VB, C, C++ ou bien le PL/SQL quand on utilise les requêtes SQL dynamique.
...
txt = "select ename"
+ " from emp"
+ " where empno=" + Long.toString(empno);
rs = st.executeQuery(txt);
if (rs.next()) {
...
Si vous est développeur est vous avez déjà écrit ce type de requête sans vous soucier de conséquences cet article est pour vous.
Partager