Définition de la requête SQL

Vous pouvez taper n'importe quelle instruction SQL SELECT valide dans la zone de texte de la boîte de dialogue Options de Candidate Finder.
Remarque : Select * n'est pas valide.
Par exemple, imaginez que vous avez une table dans votre base de données nommée Customer_Table qui possède les colonnes suivantes :
  • Customer_Table
  • Cust_Name
  • Cust_Address
  • Cust_City
  • Cust_State
  • Cust_Zip

Pour extraire toutes les rangées de la base de données, vous pourriez exécuter une requête ressemblant à ceci :

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State, Cust_Zip from Customer_Table; 

Il est rare que vous ayez besoin de faire correspondre votre transaction et toutes les rangées de la base de données. Pour ne renvoyer que les enregistrements candidats pertinents, ajouter une clause WHERE avec substitution de variable. La substitution de variable fait référence à une notation spéciale que vous utiliserez pour faire en sorte que le moteur de sélection de candidats (Candidate Selection) remplace la variable par les données réelles de votre enregistrement suspect.

Pour utiliser la substitution de variable, encadrez le nom de champ entre des accolades précédées du signe dollar comme ceci : ${FieldName}. Par exemple, la requête suivante ne renverra que les enregistrements qui ont une valeur dans Cust_Zip qui correspond à la valeur dans PostalCode sur l'enregistrement suspect.

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip 
FROM Customer_Table 
WHERE Cust_Zip = ${PostalCode}; 

Pour SQL 2000, le type de données doit être identique au type de données pour Candidate Finder. Le pilote JDBC définit la variable d'entrée Candidate Finder (par ex. : ${MatchKey}) qui est utilisée dans la clause WHERE sur un type de données nVarChar(4000). Si les données dans la base de données sont définies sur un type de données VarChar, SQL Server ignorera l'index sur la base de données. Si l'index est ignoré, la performance en souffrira. Par conséquent, utilisez la requête suivante pour SQL 2000 :

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip 
FROM Customer_Table 
WHERE Cust_Zip = CAST(${PostalCode} AS VARCHAR(255));