Select *
ist nicht zulässig.- Customer_Table
- Cust_Name
- Cust_Address
- Cust_City
- Cust_State
- Cust_Zip
Um alle Zeilen aus der Datenbank abzurufen, könnten Sie eine Abfrage ähnlich der folgenden erstellen:
SELECT Cust_Name, Cust_Address, Cust_City, Cust_State, Cust_Zip from Customer_Table;
Sie werden nur selten Ihre Transaktion mit allen Zeilen in der Datenbank vergleichen wollen. Um nur die relevanten Kandidatendatensätze zurückzugeben, fügen Sie eine WHERE-Klausel hinzu und nutzen Sie die Variablenersetzung. Mit „Variablenersetzung“ ist eine spezielle Syntax gemeint, die Sie verwenden, um die Candidate Selection-Engine zu veranlassen, die Variable durch die eigentlichen Daten aus Ihrem Kopfdubletten-Datensatz zu ersetzen.
Um die Variablenersetzung zu verwenden, schließen Sie den Feldnamen in geschweiften Klammern ein, denen Sie ein Dollarzeichen voranstellen: ${FieldName}
. Beispiel: Die folgende Abfrage gibt nur Datensätze mit einem Wert in „Cust_Zip“ zurück, der mit dem Wert in „PostalCode“ im Kopfdubletten-Datensatz übereinstimmt.
SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip FROM Customer_Table WHERE Cust_Zip = ${PostalCode};
Für SQL 2000 muss der Datentyp mit dem Datentyp für Candidate Finder identisch sein. Der JDBC-Treiber legt die Candidate Finder-Eingabevariable (z. B. ${MatchKey}), die in der WHERE-Klausel verwendet wird, auf den Datentyp „nVarChar(4000)“ fest. Wenn die Daten in der Datenbank auf den Datentyp „VarChar“ festgelegt werden, ignoriert der SQL-Server den Index in der Datenbank. Wenn der Index ignoriert wird, sinkt die Leistung. Verwenden Sie deshalb die folgende Abfrage für SQL 2000:
SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip FROM Customer_Table WHERE Cust_Zip = CAST(${PostalCode} AS VARCHAR(255));