Das Dienstprogramm GeneratePureQueryXml generiert eine pureQueryXML-Datei aus einer Eingabedatei. Die Eingabedatei kann eine SQL-Scriptdatei sein, die Anweisungen und Cursorattributinformationen enthält, oder eine XML-Datei von InfoSphere Optim Query Workload Tuner.
Das Dienstprogramm GeneratePureQueryXml liest eine Datei, die SQL-Anweisungen und Informationen zu den Anweisungen enthält, und erstellt eine pureQueryXML-Datei. Nachdem die Datei erstellt wurde, können Sie die Datei mit dem Dienstprogramm Configure für die Verwendung mit pureQuery Runtime vorbereiten. Nachdem Sie die pureQueryXML-Datei konfiguriert haben, verwenden Sie das Dienstprogramm StaticBinder, um DB2-Pakete zu erstellen und die binden, die die SQL-Anweisungen in der konfigurierten pureQueryXML-Datei enthalten.
Das Thema ist in die folgenden Abschnitte unterteilt:
Syntax des Befehls

(1)
>>-------java--java com.ibm.pdq.tools.GeneratePureQueryXml------>
>-- -username--Benutzer-ID-- -password--Kennwort-- -url--JDBC-URL-->
>--+---------------------------------------------+-------------->
| .-com.ibm.db2.jcc.DB2Driver-. |
'- -driverName--+-JDBC-Treiber--------------+-'
>-- -pureQueryXml--Dateiname-- -inputSql--Dateiname------------->
>--+-------------------------------------------+---------------->
| (2).- - - -------------. |
'- -commentStart------+-Kommentaranzeiger-+-'
>--+---------------------------------------+-------------------->
| .-NOT_SET-. |
'- -sqlLiteralSubstitution--+-DISABLE-+-'
'-ENABLE--'
>--+-------------------------------------+---------------------->
| .-;---------. |
'- -statementDelimiter -+-Begrenzer-+-'
>--+------------------------------------------------------+----->
| .-HOLD_CURSORS_OVER_COMMIT-. |
'- -resultSetHoldability -+-CLOSE_CURSORS_AT_COMMIT--+-'
>--+----------------------------------------------+------------->
| .-CONCUR_READ_ONLY-. |
'- -resultSetConcurrency--+-CONCUR_UPDATABLE-+-'
>--+--------------------------------------------+--------------->
| .-TYPE_FORWARD_ONLY-----. |
'- -resultSetType--+-TYPE_SCROLL_SENSITIVE-+-'
'-TYPE_SCROLL_SENSITIVE-'
>--+-----------------------+--+--------+-----------------------><
| (3) | '- -help-'
'-| Traceoptionen |-----'
Anmerkungen:
- Sie können die Optionen in beliebiger Reihenfolge angeben.
- Der Standardwert sind zwei Gedankenstriche (--).
- Informationen zur Syntax finden Sie in der Beschreibung dieser Optionen.
Eine Beschreibung der im Diagramm verwendeten Konventionen finden Sie in Syntaxdiagramme lesen.
Beschreibung der Optionen
- -username Benutzer-ID
- Die Benutzer-ID gibt die Benutzer-ID an, die für die Authentifizierung mit der Datenbank verwendet wird.
- -password Kennwort
- Gibt das Kennwort an, das für die Authentifizierung mit der Datenbank verwendet werden soll.
- -url JDBC-URL
- Gibt die JDBC-URL an, die zum Herstellen einer Verbindung zur Datenbank verwendet werden soll.
- -driverName JDBC-Treiber
- Gibt den vollständig qualifizierten Namen des JDBC-Treibers an, der zum Herstellen einer Verbindung zur Datenbank verwendet werden soll. Der Standardwert ist com.ibm.db2.jcc.DB2Driver,
der Treiber für IBM® Data
Server Driver für JDBC und SQLJ.
- -pureQueryXml Datei
- Gibt den absoluten oder relativen Pfad zur pureQueryXML-Ausgabedatei an.
- -inputSql Datei
- Gibt den absoluten oder relativen Pfad zu einer SQL-Scriptdatei mit der Erweiterung .sql oder zu einer XML-Datei mit der Erweiterung .xml an.
Informationen zum Format der SQL-Scriptdatei finden Sie in Format der vom Dienstprogramm GeneratePureQueryXml verwendeten SQL-Scriptdatei.
Wenn eine XML-Datei angegeben wird, muss die Datei eine gültige InfoSphere Optim Query Workload Tuner-Datei sein. Wenn die XML-Datei nicht gültig ist, wird ein Fehler zurückgegeben.
Informationen zum Exportieren einer Query Workload Tuner-Datei finden Sie in der Dokumentation zu InfoSphere Optim Query Workload Tuner.
Beim Erfassen von SQL-Anweisungen unterstützt InfoSphere Optim Query Workload Tuner die folgenden Funktionen:
- Bei DB2 for Linux, UNIX, and
Windows-Datenbanken können Sie SQL-Anweisungen aus dem Paketcache erfassen.
- Bei DB2 for z/OS-Datenbanken können Sie SQL-Anweisungen aus dem Anweisungscache erfassen. Sie können von InfoSphere Optim Query Workload Tuner ausgeführte SQL-Anweisungen ausschließen, indem Sie die Option Vom Erfassungsprozess abgesetzte dynamische Abfragen ausschließen aktivieren.
Wenn eine SQL-Anweisung mehrmals in der Eingabedatei enthalten ist, wird sie nur einmal in die pureQueryXML-Ausgabedatei aufgenommen. Informationen dazu, wie doppelte SQL-Anweisungen erkannt werden, finden Sie in Doppelte SQL-Anweisungen in einer SQL-Datei erkennen.
- -commentStart Kommentaranzeiger
- Gibt bei einer SQL-Scriptdatei die Zeichenkombination an, die am Anfang einer Zeile angibt, dass es sich um eine Kommentarzeile handelt. Eine Kommentarzeile kann Cursorattribute einer Anweisung enthalten, die auf die SQL-Anweisung angewendet werden, die dem Kommentar unmittelbar folgt. Die Standardeinstellung sind zwei Gedankenstriche (--).
Die Start- und Endkommentarzeichen /* und */ werden bei dieser Option nicht unterstützt.
Diese Option wird nicht unterstützt, wenn die Eingabedatei eine XML-Datei ist. Es wird eine Warnung angezeigt, dass die angegebene Option ignoriert wird.
- -sqlLiteralSubstitution ENABLE|DISABLE|NOT_SET
- Gibt an, ob das Dienstprogramm GeneratePureQueryXml Literalwerte in SQL-Anweisungen durch Parametermarken ersetzen kann. Der Standardwert ist NOT_SET, d. h. Literalwerte werden in den SQL-Anweisungen nicht ersetzt. Die SQL-Literalersetzung ist identisch zur Ersetzung, die erfolgt, wenn pureQuery Runtime SQL-Anweisungen mit aktivierter SQL-Literalersetzung erfasst.
In der folgenden Liste werden die unterstützten Werte beschrieben:
- DISABLE
- Gibt an, dass das Dienstprogramm keine Literalersetzung durchführt.
Die SQL-Anweisungen werden nicht geändert.
Der Wert des Attributs für die SQL-Literalersetzung in der pureQueryXML-Ausgabedatei wird auf DISABLE gesetzt.
- ENABLE
- Gibt an, dass das Dienstprogramm Literalwerte in den SQL-Anweisungen durch Parametermarken ersetzt. SQL-Literale werden nicht ersetzt, wenn das Dienstprogramm feststellt, dass sich die Ersetzung der Literale auf die Ergebnisse der SQL-Anweisungen auswirken würde. Bei der Durchführung der SQL-Literalersetzung werden Kommentare aus den Anweisungen entfernt. Bei SQL-Anweisungen, für die die SQL-Literalersetzung durchgeführt wird, werden mehrere Leerzeichen, auch voran- oder nachgestellte Leerzeichen, durch ein einziges Leerzeichen ersetzt.
Das Dienstprogramm entfernt doppelte SQL-Anweisungen, die während der SQL-Literalersetzung erstellt wurden.
Der Wert des Attributs für die SQL-Literalersetzung in der pureQueryXML-Ausgabedatei wird auf ENABLE gesetzt.
- NOT_SET
- Gibt an, dass für diese Datei keine Literalersetzung durchgeführt wird. Dieser Wert ist der Standardwert.
Der Wert des Attributs für die SQL-Literalersetzung in der pureQueryXML-Ausgabedatei wird auf NOT_SET gesetzt.
Wenn pureQuery Runtime SQL-Anweisungen in einer pureQueryXML-Datei erfasst, ist die Einstellung für die SQL-Literalersetzung in der Datei der Wert der pureQuery Runtime-Eigenschaft sqlLiteralSubstitution, wenn die Anweisungen erfasst werden.
Informationen zur SQL-Literalersetzung von pureQuery Runtime finden Sie in sqlLiteralSubstitution (Eigenschaft).
Informationen zum Attribut für die SQL-Literalersetzung bei der Zusammenführung von pureQueryXML-Dateien finden Sie in Merge (Dienstprogramm).
- -statementDelimiter Begrenzer
- Gibt die Zeichenkombination an, die in SQL-Scriptdateien zum Trennen von Anweisungen verwendet wird. Der Standardwert ist ein Semikolon (;).
Diese Option wird nicht unterstützt, wenn die Eingabedatei eine XML-Datei von InfoSphere Optim Query Workload Tuner ist. Es wird eine Warnung angezeigt, dass die angegebene Option ignoriert wird.
- -resultSetHoldability Lebensdauer
- Gibt die Lebensdauer der Ergebnismenge an, die auf alle Anweisungen in der Datei angewendet wird. Für die Lebensdauer kann einer der folgenden Werte angegeben werden:
- CLOSE_CURSORS_AT_COMMIT legt fest, dass die Ergebnismengen beim Commit geschlossen werden. Dieser Wert setzt den JDBC-Wert java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT.
- HOLD_CURSORS_OVER_COMMIT legt fest, dass die Ergebnismengencursor commitübergreifend beibehalten werden. Dieser Wert setzt den JDBC-Wert java.sql.ResultSet.HOLD_CURSORS_OVER_COMMIT.
Der Standardwert ist HOLD_CURSORS_OVER_COMMIT.
In SQL-Scriptdateien kann der Lebensdauerwert für eine bestimmte SQL-Anweisung in der Datei überschrieben werden, indem die Lebensdauer in einer Kommentarzeile angegeben wird, die der SQL-Anweisung unmittelbar vorausgeht.
Bei XML-Dateien von Query Workload Tuner aus DB2 for z/OS wird die Lebensdauer der Ergebnismenge für die ursprüngliche Vorbereitung einer SQL-Anweisung in der Datei gespeichert.
Wenn die Informationen zur Lebensdauer der Ergebnismenge in der Datei enthalten sind, nutzt das Dienstprogramm diesen Wert für die SQL-Anweisung in der pureQueryXML-Ausgabedatei.
Informationen zur Lebensdauer der Ergebnismenge für SQL-Anweisungen in einer XML-Datei von InfoSphere Optim Query Workload Tuner XML finden Sie in Hinweise zur pureQueryXML-Ausgabedatei.
- -resultSetConcurrency gemeinsamer_Zugriff
- Gibt den gemeinsamen Zugriff für die Ergebnismenge fest, der auf alle Anweisungen angewendet wird.
Für den gemeinsamen Zugriff kann einer der folgenden Werte angegeben werden:
- CONCUR_READ_ONLY legt die Cursorparallelität als schreibgeschützt fest.
- CONCUR_UPDATABLE legt die Cursorparallelität als aktualisierbar fest.
Der Standardwert ist CONCUR_READ_ONLY.
In SQL-Scriptdateien kann der Wert für gemeinsamen Zugriff für eine bestimmte SQL-Anweisung überschrieben werden, indem der gemeinsame Zugriff in einer Kommentarzeile angegeben wird, die der SQL-Anweisung unmittelbar vorausgeht.
Informationen zur Festlegung des gemeinsamen Zugriffs der Ergebnismenge für SQL-Anweisungen in einer XML-Datei von InfoSphere Optim Query Workload Tuner XML finden Sie in Hinweise zur pureQueryXML-Ausgabedatei.
- -resultSetType Typ
- Gibt den Ergebnismengentyp an, der auf alle Anweisungen angewendet wird. Für den Typ kann einer der folgenden Werte angegeben werden:
- TYPE_FORWARD_ONLY legt den Ergebnismengentyp als nur vorwärts fest.
- TYPE_SCROLL_SENSITIVE legt den Ergebnismengentyp als blättersensitiv fest.
- TYPE_SCROLL_INSENSITIVE legt den Ergebnismengentyp als nicht blättersensitiv fest.
Der Standardwert ist TYPE_FORWARD_ONLY. In SQL-Scriptdateien kann der Wert für den Ergebnismengentyp einer bestimmten SQL-Anweisung überschrieben werden, indem der Ergebnismengentyp in der Kommentarzeile angegeben wird, die der SQL-Anweisung unmittelbar vorausgeht.
Informationen zur Festlegung des Ergebnismengentyps für SQL-Anweisungen in einer XML-Datei von InfoSphere Optim Query Workload Tuner XML finden Sie in Hinweise zur pureQueryXML-Ausgabedatei.
- Traceoptionen
- Sie können die Datei, in der Nachrichten protokolliert werden sollen, und
die zu protokollierende Informationsebene angeben.

>>-+------------------------+--+---------------------------+---><
'- -traceFile--Dateiname-' | .-OFF-----. |
'- -traceLevel--+-ALL-----+-'
+-SEVERE--+
+-WARNING-+
+-INFO----+
+-CONFIG--+
+-FINE----+
+-FINER---+
'-FINEST--'
- -traceFile Dateiname
- Gibt den absoluten oder relativen Pfad und den Namen der Datei an, die zum Protokollieren von Informationen zur Operation verwendet werden soll.
- Falls die Datei bereits vorhanden ist, hängt pureQuery neue Nachrichten an den vorhandenen Inhalt der Datei an. Standardmäßig werden die Einträge in 'System.err' geschrieben.
- -traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
- Gibt den zu protokollierenden Informationstyp an. Die Standardstufe ist OFF. Wenn Sie keine Datei angeben, in die die Protokolleinträge geschrieben werden sollen, und Sie diese Option auf einen anderen Wert als OFF setzen, werden die Einträge in 'System.err' geschrieben.
- -help
- Zeigt zusammenfassende Informationen zur Verwendung an.
Hinweise zur pureQueryXML-Ausgabedatei
Die folgende Liste enthält Informationen zur Verwendung der pureQueryXML-Datei:
- Stellen Sie beim Erstellen einer pureQueryXML-Datei aus einer SQL-Scriptdatei oder einer XML-Datei von InfoSphere Optim Query Workload Tuner sicher, dass für jede SQL-Anweisung die folgenden Bedingungen erfüllt sind:
- Der SQL-Anweisungstext in der Datei muss mit der von der Anwendung abgesetzten SQL-Anweisung übereinstimmen. Die Großschreibung und die Leerzeichen der Anweisungen müssen übereinstimmen.
- Die in der Datei für die SQL-Anweisung angegebenen Einstellungen zur Lebensdauer der Ergebnismenge, zum gemeinsamen Zugriff und zum Typ müssen mit den Einstellungen der von der Anwendung abgesetzten SQL-Anweisung übereinstimmen.
Stimmen die Informationen nicht überein, führt die pureQuery-Clientoptimierung keinen Abgleich der SQL-Anweisung mit der von der Anweisung abgesetzten Anweisung durch, wenn die pureQuery Runtime-Eigenschaft executionMode auf STATIC gesetzt ist oder wenn die pureQuery Runtime-Eigenschaft capturedOnly auf TRUE gesetzt ist.
Wenn die Eingabedatei eine Query Workload Tuner-XML-Datei ist, gilt Folgendes:
- Die XML-Datei enthält einige Sonderregisterinformationen für SQL-Anweisungen. Wenn das Dienstprogramm GeneratePureQueryXml eine pureQueryXML-Datei aus einer XML-Datei generiert, sind die Sonderregisterinformationen als Metadaten in der pureQueryXML-Datei enthalten. Es gibt Unterschiede zwischen den von pureQuery Runtime erfassten Sonderregisterinformationen und den von Query Workload Tuner erfassten Sonderregisterinformationen. GeneratePureQueryXml enthält die Sonderregisterinformationen, die normalerweise von pureQuery Runtime erfasst werden.
Wenn Sie die pureQueryXML-Datei mit dem Dienstprogramm Configure konfigurieren, können Sie die Option -groupSQLBySpecialRegisters angeben, um die SQL-Anweisungen in der Datei entsprechend der Sonderregistereinstellungen zu gruppieren.
Sie können auch die Option -optionsFileForBind angeben, um eine StaticBinder-Beispieloptionsdatei zu erstellen, die Bindeoptionen basierend auf den Sonderregistereinstellungen enthält. Informationen zu den Configure-Optionen finden Sie in Configure (Dienstprogramm).
Informationen zu den von pureQuery Runtime überwachten und aufgezeichneten Sonderregisterinformationen finden Sie in Änderungen an DB2-Sonderregistern mit der pureQuery-Clientoptimierung verfolgen.
Sie müssen eine
DB2 for z/OS-Datenbank konfigurieren, um SQL-Leistungsstatistikdaten in einer InfoSphere Optim Query Workload Tuner XML-Datei zu erfassen. Informationen zum Aktivieren der Statistikerfassung finden Sie in DB2 for z/OS-Leistungsstatistikdaten in einer InfoSphere Optim Query Workload Tuner XML-Datei erfassen.
- Bevor Sie eine SQL-Anweisung zur pureQueryXML-Datei hinzufügen, bereitet das Dienstprogramm die Anweisung für die Erfassung von Metadaten vor. Wenn ein Wert für das Sonderregister CURRENT SCHEMA in der XML-Datei enthalten ist, verwendet das Dienstprogramm den Wert des Sonderregisters CURRENT SCHEMA bei der Durchführung der Vorbereitung.
- Wenn das Dienstprogramm feststellt, dass die SQL-Anweisung in der XML-Datei statisch ausgeführt wurde, wird die Anweisung nicht in die pureQueryXML-Ausgabedatei aufgenommen.
- Das Dienstprogramm GeneratePureQueryXml kopiert einige Statistikdaten aus der XML-Datei in die pureQueryXML-Ausgabedatei. Die Statistikdaten in der XML-Eingabedatei hängen vom Typ und von der Version der Datenbank sowie von der Version von InfoSphere Optim Query Workload Tuner ab. Diese Statistikdaten beeinflussen nicht, wie die SQL-Anweisungen in der pureQueryXML-Datei gebunden werden oder wie pureQuery Runtime SQL-Anweisungen mit Anweisungen abgleicht, die von einer Anwendung abgesetzt werden.
Wenn das Dienstprogramm keine Zeitmarkenangaben für SQL-Anweisungen findet, verwendet es das aktuelle Datum und die aktuelle Uhrzeit.
- In der XML-Datei können keine Cursorattribute angegeben werden. Sie können Cursorattribute mit den Optionen -resultSetType, -resultSetHoldability und -resultSetConcurrency des Dienstprogramms GeneratePureQueryXml angeben. Die Optionen gelten für alle SQL-Anweisungen in der XML-Datei.
Bei XML-Dateien aus DB2 for z/OS wird die Lebensdauer der Ergebnismenge für die ursprüngliche Vorbereitung einer SQL-Anweisung in der Datei gespeichert. Wenn die Informationen zur Lebensdauer der Ergebnismenge in der Datei enthalten sind, nutzt das Dienstprogramm diesen Wert für die SQL-Anweisung in der pureQueryXML-Ausgabedatei.
pureQuery Runtime berücksichtigt die SQL-Anweisung und die Cursorattribute der Anweisung bei der Steuerung, wie SQL-Anweisungen ausgeführt werden. Sie können pureQuery Runtime beispielsweise so konfigurieren, dass SQL-Anweisungen statisch ausgeführt werden. Wenn die Anweisung und die Attribute in der pureQueryXML-Datei nicht der Anweisung und den Attributen der Anwendung entsprechen, führt pureQuery Runtime die Anweisung nicht statisch aus.
- Wenn die SQL-Anweisungen in der pureQueryXML-Ausgabedatei unterschiedliche Bindeoptionen für die statische Ausführung erfordern, können Sie den pureQueryXML-Editor in der Workbench verwenden, um die SQL-Anweisungen in Anweisungsgruppen zu gruppieren.
Dann können Sie mit dem Dienstprogramm StaticBinder unterschiedliche Bindeoptionen für die Anweisungsgruppen angeben.
Sie können das Dienstprogramm StaticBinder mit der Option -statementBindError unter Angabe des Werts REMOVE oder MARK_INVALID ausführen.
Das Dienstprogramm StaticBinder überspringt die SQL-Anweisungen, die beim Bindeprozess einen Fehler zurückgeben.
- Die pureQueryXML-Ausgabedatei kann nicht direkt für die pureQuery-Clientoptimierung für die statische Ausführung von SQL-Anweisungen verwendet werden. Bevor Sie das Dienstprogramm StaticBinder verwenden, müssen Sie die pureQueryXML-Datei mit dem Dienstprogramm Configure so modifizieren, dass sie für die pureQuery-Clientoptimierung verwendet werden kann.
- Die pureQueryXML-Ausgabedatei enthält keine Informationen zur Anwendungsausführung, wie Stack-Trace-Informationen und Sonderregisterinformationen, die für eine pureQueryXML-Datei verfügbar sind, die während der Erfassung von SQL-Anweisungen aus einer Anwendung erstellt wurden, die die pureQuery-Clientoptimierung verwendet.
- Die pureQueryXML-Ausgabedatei enthält nicht die folgenden Informationen zu SQL-Anweisungen, die von der pureQuery-Clientoptimierung verwendet werden, um eine Anweisung als SQL-Anweisung zur Laufzeit anzugeben:
- Automatisch generierte Schlüsselspaltennamen
- Automatisch generierte Schlüsselspaltenindizes
- Automatisch generierter Schlüsselindikatoren
Ist eine Anwendung, die die pureQuery-Clientoptimierung verwendet, so konfiguriert, dass sie SQL-Anweisungen statisch oder im Modus für die ausschließliche Verarbeitung erfasster Elemente ausführt und eine vom Dienstprogramm GeneratePureQueryXml erstellte pureQueryXML-Datei verwendet, wird eine von der Anwendung abgesetzte Anweisung nicht statisch ausgeführt, wenn die Anweisung eines dieser drei Features verwendet, auch wenn der Text der SQL-Anweisungen identisch ist.
Das folgende Beispiel erstellt die pureQueryXML-Datei
c:\statements.pdqxml, die Informationen zu Anweisungen enthält, die sich in der SQL-Scriptdatei
c:\mystatements.sql befinden. Der Wert der Option -
sqlLiteralSubstitution ist auf
ENABLE gesetzt, um Literale in SQL-Anweisungen durch Parametermarken zu ersetzen.
java com.ibm.pdq.tools.GeneratePureQueryXml
-username db2admin –password mypass
–url jdbc:db2://localhost:50000/mydb
-sqlLiteralSubstitution ENABLE
–pureQueryXml "C:\statements.pdqxml" –inputSql "C:\mystatements.sql"
Doppelte SQL-Anweisungen in einer SQL-Datei erkennen
Das Dienstprogramm GeneratePureQueryXml erkennt zwei SQL-Anweisungen als Duplikate, wenn der Text der beiden SQL-Anweisungen bis auf voran- und nachgestellte Leerzeichen identisch ist und wenn die folgenden Attribute identisch sind:
- Ergebnismengentyp
- Gemeinsamer Zugriff der Ergebnismenge
- Lebensdauer der Ergebnismenge
Die folgenden beiden Einträge in einer SQL-Datei werden als identisch betrachtet. Die SQL-Anweisungen unterscheiden sich nur durch die Anzahl der voran- und nachgestellten Leerzeichen:
-- resultSetType=TYPE_FORWARD_ONLY
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE ;
-- resultSetType=TYPE_FORWARD_ONLY
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE ;
Die folgenden beiden Einträge in einer SQL-Datei werden als nicht identisch betrachtet. Die Anzahl der Leerzeichen in den SQL-Anweisungen ist unterschiedlich:
-- resultSetType=TYPE_FORWARD_ONLY
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE;
-- resultSetType=TYPE_FORWARD_ONLY
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE;
Die folgenden beiden Einträge in einer SQL-Datei werden als nicht identisch betrachtet, da unterschiedliche Cursorattribute festgelegt sind:
-- resultSetType=TYPE_FORWARD_ONLY
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE;
-- resultSetType=TYPE_SCROLL_SENSITIVE
-- resultSetConcurrency=CONCUR_READ_ONLY
SELECT * FROM EMPLOYEE;
Die folgenden Einträge sind in einer SQL-Eingabedatei enthalten. Die Anweisungen sind bis auf die Literalwerte identisch.
SELECT * FROM EMPLOYEE WHERE EMPNO = '000010'
SELECT * FROM EMPLOYEE WHERE EMPNO = '000020'
SELECT * FROM EMPLOYEE WHERE EMPNO = '000030'
Wenn Sie das Dienstprogramm GeneratePureQueryXml ausführen und die Option
sqlLiteralSubstitution auf
ENABLE gesetzt ist, werden die Literalwerte durch eine Parametermarke ersetzt und die durch die Ersetzung erzeugten Duplikate werden entfernt. Das Ergebnis ist eine einzige SQL-Anweisung, die in die pureQueryXML-Datei geschrieben wird:
SELECT * FROM EMPLOYEE WHERE EMPNO = ?