Die von Ihnen definierten Merkmale werden der pureQueryXML-Datei hinzugefügt. Wenn Sie das Dienstprogramm StaticBinder ausführen, um die SQL-Anweisungen, die sich in einer pureQueryXML-Datei befinden, zu DB2-Paketen zu binden, liest das Dienstprogramm StaticBinder diese Merkmale. Bei der statischen Ausführung von SQL-Anweisungen verwendet pureQuery Runtime außerdem in der Datei enthaltene Informationen wie die Objektgruppen-ID, Paket-ID, Versions-ID und Abschnittsnummer.
Dieses Thema ist in die folgenden Abschnitte unterteilt:
Eine Beschreibung der in den Diagrammen verwendeten Konventionen finden Sie in Syntaxdiagramme lesen.
Eine Optionsdatei des Dienstprogramms Configure listet die pureQueryXML-Datei(en) auf, die das pureQuery-Dienstprogramm Configure verarbeiten soll, sowie die Optionen, die dem Dienstprogramm Configure mitteilen, wie die pureQueryXML-Dateien zu verarbeiten sind. Sie können einige Optionen des Dienstprogramms Configure als Standardoptionen festlegen, die auf alle pureQueryXML-Dateien zutreffen, die Sie in einer Optionsdatei auflisten. Sie können außerdem Optionen für pureQueryXML-Dateien definieren, sodass Sie die Standardoptionen überschreiben können, und andere Optionen definieren, die nur für einzelne pureQueryXML-Dateien bestimmt sind.
Im Befehl für die Ausführung des Dienstprogramms Configure können Sie die zu verwendende Datei mit der Option -optionsFile angeben.
defaultOptions = -collection COLL01 C:\capture_files\capture_sales.pdqxml = -collection NULLID -rootPkgName SALES C:\capture_files\capture_employee.pdqxml = -collection COLL02 -rootPkgName EMP C:\capture_files\capture_orders.pdqxml = -rootPkgName ORDERSIn diesem Beispiel gibt die mit defaultOptions beginnende Zeile die Objektgruppen-ID für die DB2-Pakete an, die erstellt und gebunden werden. Die nächsten zwei Zeilen überschreiben die Standardobjektgruppen-ID. Für alle drei pureQueryXML-Dateien gibt die obligatorische Option -rootPkgName den Namen des Stammpakets der DB2-Pakete an.
-pkgVersion "ver#1"
Wenn Sie nur eine pureQueryXML-Datei haben, können den Namen der pureQueryXML-Datei und die Optionen für das DB2-Paket mithilfe dieses Befehls angeben.
(1) >>-java--com.ibm.pdq.tools.Configure----------------------------> >--+-------------------------------------+----------------------> | .-NULLID------------. | '- -collection--+-Objektgruppenname-+-' >--+-----------------------------+------------------------------> '- -markDDLForBind--+-TRUE--+-' '-FALSE-' >--+---------------------------------+--------------------------> '- -pkgVersion-- -+-AUTO--------+-' '-Versions-ID-' >-- -rootPkgName--Stamm_des_Paketnamens-------------------------> >--+--------------------------------------------------------+---> '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-' +-READ_ONLY_SCROLLABLE---+ +-READ_ONLY_FORWARD_ONLY-+ '-NEVER------------------' >--+-----------------------------+------------------------------> | .-FALSE-. | '- -cleanConfigure--+-TRUE--+-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------------+----------> | .------------------------. | | | .-|------------. | | | V V | | | '- -groupSQLByStrings----(----Zeichenfolge-+--)-+-' >--+----------------------------------+-------------------------> | .- -1----. | '- -maxMissingSections--+-Anzahl-+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----Tage---' >--+-------------------------------+----------------------------> | .-FALSE-. | '- -removeInvalidSQL--+-TRUE--+-' (2) >--+-------------------------------------+----------------------> | .-FALSE-. | '- -restoreInvalidSQLForce--+-TRUE--+-' >--+------------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceLocations--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+----------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceSchemas--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+--------------------------+--+------------------------+-----> | .-FALSE-. | | .-100----. | '- -showDetails--+-TRUE--+-' '- -sqlLimit--+-Anzahl-+-' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+-------------------------------------------------------------+--> '- -optionsFileForBind--+-Bindeoptionsdatei-----------------+-' '-DEFAULT_IN_PUREQUERYXML_DIRECTORY-' >--+--------------------------+--+-----------------------+------> | .-FALSE-. | | (3) | '- -validateXml--+-TRUE--+-' '-| Traceoptionen |-----' >-- -pureQueryXml--pureQueryXML-Datei--+--------+-------------->< '- -help-'
Wenn Sie mehrere pureQueryXML-Dateien haben, geben Sie die Namen der pureQueryXML-Dateien und die Optionen für die DB2-Pakete mithilfe dieses Befehl und einer Optionsdatei an. Sie können den Befehl und eine Optionsdatei auch dann verwenden, wenn Sie nur eine pureQueryXML-Datei haben.
>>-java--com.ibm.pdq.tools.Configure----------------------------> >-- -optionsFile--Dateiname--+-----------------------+--------->< | (1) | '-| Traceoptionen |-----'
Dieses Syntaxdiagramm zeigt die Standardoptionen, die Sie für alle pureQueryXML-Dateien festlegen können, die Sie in einer Optionsdatei auflisten.
(1) >>-defaultOptions--=--------------------------------------------> >--+-------------------------------------+----------------------> | .-NULLID------------. | '- -collection--+-Objektgruppenname-+-' >--+-----------------------------+------------------------------> '- -markDDLForBind--+-TRUE--+-' '-FALSE-' >--+---------------------------------+--------------------------> '- -pkgVersion-- -+-AUTO--------+-' '-Versions-ID-' >--+--------------------------------------------------------+---> '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-' +-READ_ONLY_SCROLLABLE---+ +-READ_ONLY_FORWARD_ONLY-+ '-NEVER------------------' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------------+----------> | .------------------------. | | | .-|------------. | | | V V | | | '- -groupSQLByStrings----(----Zeichenfolge-+--)-+-' (2) >--+----------------------------------+-------------------------> | .- -1----. | '- -maxMissingSections--+-Anzahl-+-' >--+------------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceLocations--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+----------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceSchemas--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----Tage---' >--+-------------------------------+----------------------------> | .-FALSE-. | '- -removeInvalidSQL--+-TRUE--+-' >--+-------------------------------------+----------------------> | .-FALSE-. | '- -restoreInvalidSQLForce--+-TRUE--+-' >--+--------------------------+--+------------------------+-----> | .-FALSE-. | | .-100----. | '- -showDetails--+-TRUE--+-' '- -sqlLimit--+-Anzahl-+-' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+-------------------------------------------------------------+--> '- -optionsFileForBind--+-Bindeoptionsdatei-----------------+-' '-DEFAULT_IN_PUREQUERYXML_DIRECTORY-' >--+--------------------------+--+-----------------------+----->< | .-FALSE-. | | (3) | '- -validateXml--+-TRUE--+-' '-| Traceoptionen |-----'
Dieses Syntaxdiagramm zeigt die Optionen, die Sie für jede pureQueryXML-Datei festlegen können, die Sie in einer Optionsdatei auflisten.
(1) >>-pureQueryXML-Datei--=----------------------------------------> >--+-------------------------------------+----------------------> | .-NULLID------------. | '- -collection--+-Objektgruppenname-+-' >--+-----------------------------+------------------------------> '- -markDDLForBind--+-TRUE--+-' '-FALSE-' >--+---------------------------------+--------------------------> '- -pkgVersion-- -+-AUTO--------+-' '-Versions-ID-' >-- -rootPkgName--Stamm_des_Paketnamens-------------------------> >--+--------------------------------------------------------+---> '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-' +-READ_ONLY_SCROLLABLE---+ +-READ_ONLY_FORWARD_ONLY-+ '-NEVER------------------' >--+-----------------------------+------------------------------> | .-FALSE-. | '- -cleanConfigure--+-TRUE--+-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------------+----------> | .------------------------. | | | .-|------------. | | | V V | | | '- -groupSQLByStrings----(----Zeichenfolge-+--)-+-' >--+----------------------------------+-------------------------> | .- -1----. | '- -maxMissingSections--+-Anzahl-+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----Tage---' >--+-------------------------------+----------------------------> | .-FALSE-. | '- -removeInvalidSQL--+-TRUE--+-' (2) >--+-------------------------------------+----------------------> | .-FALSE-. | '- -restoreInvalidSQLForce--+-TRUE--+-' >--+------------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceLocations--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+----------------------------------------------------------------------+--> | .------------------------------------------. | | V | | '- -replaceSchemas--"----(--ursprünglicher_Name-->--neuer_Name--)-+--"-' >--+--------------------------+--+------------------------+-----> | .-FALSE-. | | .-100----. | '- -showDetails--+-TRUE--+-' '- -sqlLimit--+-Anzahl-+-' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+--------------------------+-------------------------------->< | .-FALSE-. | '- -validateXml--+-TRUE--+-'
Zeilengruppencursor werden nur von DB2 for z/OS unterstützt. Zeilengruppencursor werden nur verwendet, wenn die Eigenschaften von IBM Data Server Driver für JDBC und SQLJ angeben, dass Zeilengruppencursor verwendet werden sollen. Wenn die Erfassung aus einem anderen Datenquellentyp erfolgt oder die Verwendung von Zeilengruppencursor nicht aktiviert wurde, verwendet keine der erfassten Anweisungen Zeilengruppencursor.
Wenn Zeilengruppencursor nicht für Nur-Vorwärtscursor verwendet werden, kann eine Verbindung des Typs 4 intern einen ähnlichen Mechanismus verwenden, um den Datenaustausch im Netz zu minimieren.
Diese Option nimmt einen von vier Werten an:
Sie müssen diese Option nicht verwenden, wenn eine der folgenden Bedingungen vorliegt:
pureQuery betrachtet eine Anweisung als aktualisierbar, wenn eine der folgenden Bedingungen vorliegt:
Wenn Sie Anweisungen statisch auf einer Datenquelle ausführen, die Zeilengruppencursor nicht unterstützt, versucht pureQuery nicht, einen Zeilengruppencursor für Anweisungen zu verwenden, für die Sie die Verwendung eines Zeilengruppencursors angegeben haben.
Das Dienstprogramm Configure inaktiviert Zeilengruppencursor für beliebige SQL-Anweisungen, für die pureQuery Runtime keine Zeilengruppencursor unterstützt, auch wenn IBM Data Server Driver für JDBC und SQLJ Zeilengruppencursor für diese Anweisungen verwendet hat.
Wenn Sie diese Option nicht angeben und pureQuery Runtime Zeilengruppencursor für diese Anweisung unterstützt, verwendet pureQuery Zeilengruppencursor für Anweisungen, für die IBM Data Server Driver für JDBC und SQLJ Zeilengruppencursor verwendete, als Sie Anweisungen erfassten.
Das Dienstprogramm Configure setzt während des Konfigurationsprozesses in allen Anweisungsgruppen den Wert von configureStatus auf AUTO. Überschreibt den configureStatus-Wert FINAL der Anweisungsgruppe.
FALSE ist der Standardwert.
Für nicht benannte Anweisungsgruppen wendet die Konfiguration alle angegebenen Optionen an.
Bei benannten Anweisungsgruppen, für die der Wert für configureStatus auf REQUIRED gesetzt ist, werden einige Optionen angewendet. Zu diesen angewendeten Optionen zählen die Optionen -collection, -pkgVersion, -forceSingleBindIsolation und -markDDLForBind. Das Konsistenztoken wird aktualisiert. Wenn Sie SQL-Anweisungen in der Anweisungsgruppe statisch ausführen, müssen Sie das Paket, das von der Anweisungsgruppe erstellt wird, erneut binden.
Das Dienstprogramm Configure ändert während des Konfigurationsprozesses den Wert von configureStatus von REQUIRED in AUTO.
Bei benannten Anweisungsgruppen, deren Wert für configureStatus auf AUTO gesetzt ist, wendet das Dienstprogramm Configure nur dann Optionen an, wenn es feststellt, dass die Anweisungsgruppe modifiziert werden muss. Das Konsistenztoken wird nicht aktualisiert, wenn die Anweisungsgruppe nicht geändert wird. Wenn die Markierung configureStatus auf AUTO gesetzt und die Option -pkgVersion angegeben ist, aktualisiert das Dienstprogramm die Anweisungsgruppe unter Verwendung der Versions-ID. Wenn Sie SQL-Anweisungen in der Anweisungsgruppe statisch ausführen und die Anweisungsgruppe modifiziert wird, müssen Sie das Paket, das aus der Anweisungsgruppe erstellt wird, erneut binden.
Bei benannten Anweisungsgruppen, für die die Markierung configureStatus auf FINAL gesetzt ist, zeigt das Dienstprogramm Configure Fehler an, wenn Probleme mit der Anweisungsgruppe gefunden werden. Zu Fehlern gehören Abschnittsnummern, die nicht in aufsteigender Folge vorkommen, und Positionsaktualisierungsanweisungen, die zu keiner Anweisung SELECT gehören. Das Dienstprogramm Configure zeigt Warnungen an, wenn Anweisungen aus einer Anweisungsgruppe entfernt werden müssen. Zum Beispiel muss eine Anweisung möglicherweise aus einer Anweisungsgruppe entfernt werden, wenn die Option -removeSQLInactiveForDays angegeben ist, und die Zeitmarke für die Anweisung den Kriterien für das Entfernen entspricht. Eine Anweisung wird möglicherweise in eine andere Anweisungsgruppe verschoben, wenn sich die zur Anwendung gehörigen Sonderregisterwerte ändern.
Wenn die Option -groupSQLBySpecialRegisters angegeben wird, wird bei einer Änderung eines Attributs eines Sonderregisters eine Warnung protokolliert. In diesem Fall wird kein Fehler ausgegeben.
Wenn Sie eine einzelne Anweisungsgruppe mithilfe der Option -isolationLevel in zwei oder drei verschiedene Pakete binden wollen, von denen jedes eine andere Isolationsstufe aufweist, dürfen Sie die Option -forceSingleBindIsolation nicht angeben, wenn Sie das Dienstprogramm Configure für die pureQueryXML-Datei ausführen, die die Anweisungsgruppe enthält.
Nehmen wir beispielsweise an, dass Sie die folgenden beiden Einträge in eine Optionsdatei für das Dienstprogramm StaticBinder aufgenommen haben:
C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel UR C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel CS
Wenn Sie für die Ausführung des Dienstprogramms Configure für die Datei captureFile.pdqxml die Option -forceSingleBindIsolation verwendet haben, führt das Dienstprogramm StaticBinder Folgendes aus:
Das Ergebnis ist ein einzelnes Paket MYPKGA, das mit der Isolationsstufe CS gebunden ist.
Wenn Sie als Ergebnis zwei Pakete MYPKGA wollen, von denen das eine die Isolationsstufe UR und das andere die Isolationsstufe CS aufweist, dürfen Sie die Option -forceSingleBindIsolation nicht angeben, wenn Sie das Dienstprogramm Configure für die Datei captureFile.pdqxml ausführen.
Werden die Optionen groupSQLBySpecialRegisters und groupSQLByStrings zum Erstellen von Anweisungsgruppen verwendet, werden die Anweisungen zuerst nach Sonderregisterwerten gruppiert. Für jede auf Sonderregistern basierende Gruppe werden die SQL-Anweisungen auf der Basis der über die Option -groupSQLByStrings angegebenen Werte gruppiert. Nachdem die Gruppierung abgeschlossen ist, wird die Gruppierung auf der Basis von -sqlLimit ausgeführt, falls es erforderlich ist. Die Anweisungsgruppen werden nach ihrer Erstellung benannt.
Wenn die pureQueryXML-Datei eine Kombination aus benannten und nicht benannten Paketen enthält und die Option -cleanConfigure auf 'FALSE' gesetzt ist, werden nur die nicht benannten Pakete gruppiert. Die Gruppierung der benannten Pakete wird nicht geändert. Ist die Option -cleanConfigure auf 'TRUE' gesetzt, werden die SQL-Anweisungen in allen benannten und nicht benannten Paketen gruppiert.
Wenn Sie SQL-Anweisungen statisch ausführen, können Sie die Optionen -groupSQLBySpecialRegisters und -optionsFileForBind als Unterstützung beim Binden von Paketen für eine DB2-Datenbank verwenden.
Informationen zu den von pureQuery Runtime aufgezeichneten Sonderregisterinformationen finden Sie über die entsprechenden Links am Ende dieses Themas.
Die jeweils in einem Satz runde Klammern eingeschlossenen Zeichenfolgen werden verwendet, um nach SQL-Anweisungen zu suchen und diese in einer Anweisungsgruppe zusammenzufassen. Es können auch mehrere Zeichenfolgen verwendet werden, um eine SQL-Anweisung einer Anweisungsgruppe zuzuordnen. In diesem Fall müssen die Zeichenfolgen mit einem vertikalen Balken ( | ) voneinander getrennt werden. Wenn eine Zeichenfolge mehrmals vorhanden ist oder wenn es sich bei einer Zeichenfolge um die Unterzeichenfolge einer anderen Zeichenfolge handelt, wird eine Warnung protokolliert.
Eine SQL-Anweisung wird einer Anweisungsgruppe zugeordnet, wenn die Anweisung die Zeichenfolge enthält. Werden mehrere Zeichenfolgen verwendet, um eine Anweisungsgruppe zu erstellen, wird eine SQL-Anweisung der Anweisungsgruppe zugeordnet, wenn sie eine der angegebenen Zeichenfolgen enthält.
Werden die Optionen groupSQLBySpecialRegisters und groupSQLByStrings zum Erstellen von Anweisungsgruppen verwendet, werden die Anweisungen zuerst nach Sonderregisterwerten gruppiert. Innerhalb jeder Gruppe mit Sonderregistern werden die SQL-Anweisungen auf der Basis der über die Option -groupSQLByStrings angegebenen Werte gruppiert. Nachdem die Gruppierung abgeschlossen ist, wird erforderlichenfalls -sqlLimit angewendet und die erstellten Anweisungsgruppen werden benannt.
Wenn die pureQueryXML-Datei eine Kombination aus benannten und nicht benannten Paketen enthält und die Option -cleanConfigure auf 'FALSE' gesetzt ist, werden nur die nicht benannten Pakete gruppiert. Die Gruppierung der benannten Pakete wird nicht geändert. Ist die Option -cleanConfigure auf 'TRUE' gesetzt, werden die SQL-Anweisungen in allen benannten und nicht benannten Paketen gruppiert.
Beispiele zur Gruppierung von SQL-Anweisungen nach Zeichenfolgen finden Sie im Abschnitt mit den Beispielen.
Gültige Werte sind die Zeichenfolgen TRUE und FALSE, bei denen die Groß-/Kleinschreibung nicht beachtet werden muss. Es gibt keinen Standardwert.
Wenn Sie diese Option nicht angeben, überprüft das Dienstprogramm Configure, ob isBindable für eine der DDL-Anweisungen, die sich in nicht benannten Anweisungsgruppen in der pureQueryXML-Datei befinden, den Wert TRUE hat. Weist isBindable für mindestens eine dieser DDL-Anweisungen den Wert TRUE auf, wenn das Dienstprogramm Configure die DDL-Anweisungen zu einer einzelnen benannten DDL-Anweisungsgruppe kombiniert, setzt das Dienstprogramm das Attribut isBindable für die DDL-Anweisungsgruppe auf TRUE.
Wenn das Dienstprogramm StaticBinder den Wert TRUE für das Attribut isBindable von Anweisungsgruppen findet, versucht es alle Anweisungen in dieser Anweisungsgruppe zu binden, deren Attribut isBindable den Wert TRUE hat.
Der Wert Anzahl gibt die maximale Anzahl unnötiger Lücken an, die in einer Anweisung zulässig sind, bevor das Dienstprogramm Configure die Abschnittsnummern neu zuweist. Der Wert von Anzahl kann eine ganze Zahl von -1 oder größer sein. Der Standardwert ist -1. Das Dienstprogramm Configure führt dann keine Neuzuweisung von Abschnittsnummern durch. Wenn der Wert von Anzahl z. B. 0 (Null) oder 1 beträgt, werden alle unnötigen Lücken zwischen Abschnittsnummern entfernt.
Das Dienstprogramm Configure führt die Neuzuweisung von Abschnittsnummern nur in einer angegebenen Anweisungsgruppe durch. Das Attribut configureStatus für die Gruppe darf dabei nicht auf FINAL gesetzt sein.
Wenn Sie die Option -removeInvalidSQL oder die Option -removeSQLInactiveForDays verwenden, könnten einige SQL-Anweisungen aus den Anweisungsgruppen entfernt werden. Für die übrigen SQL-Anweisungen führt das Dienstprogramm Configure keine automatische Neuzuweisung von Abschnittsnummern durch. Die Neuzuweisung von Abschnittsnummern setzt voraus, dass alle entsprechenden Datenbankpakete erneut gebunden werden.
Wenn Sie die Option -removeInvalidSQL oder die Option -removeSQLInactiveForDays mit der Option -maxMissingSections angeben, werden die SQL-Anweisungen entfernt, bevor die Abschnittsnummern neu zugewiesen werden.
Wenn dieser Wert in der defaultOptions-Zeile einer Optionsdatei des Dienstprogramms Configure angegeben wird, müssen sich alle in der Datei aufgelisteten pureQueryXML-Dateien in einem Einzelverzeichnis befinden.
Mithilfe der Bindeoptionen und weiteren Informationen in der Datei können Sie eine Gruppe von Bindeoptionen angeben, sodass das Verhalten einer SQL-Anweisung bei der statischen Ausführung dem Verhalten bei einer dynamischen Ausführung über eine Anwendung vergleichbar ist. Die Bindeoptionen werden mit dem pureQuery-Dienstprogramm StaticBinder verwendet, um Pakete für eine DB2-Datenbank zu erstellen und die Pakete für die Datenbank zu binden.
Das Dienstprogramm Configure fügt Kommentare mit Informationen zu den Anweisungsgruppen und Sonderregisterwertegruppen hinzu, auf die in der Datei verwiesen wird.
Das Dienstprogramm Configure fügt die StaticBinder-Option -configureWarning mit Warnungen hinzu. Die Warnungen geben mögliche Ursachen dafür an, dass SQL-Anweisungen nicht das erwartete Verhalten aufweisen, wenn Sie diese statisch ausführen, nachdem Sie über die Anweisungsgruppe Pakete für die Datenbank gebunden haben.
Informationen zur vom Dienstprogramm Configure erstellten StaticBinder-Optionsdatei und zu den beim Erfassen von SQL-Anweisungen aufgezeichneten Sonderregisterinformationen finden Sie über die entsprechenden Links am Ende dieses Themas.
Für DB2 ist es zulässig, dass mehrere Versionen eines Pakets gleichzeitig vorhanden sind. Somit können Sie neue Pakete binden, ohne ältere Versionen von Paketen mit demselben Namen ersetzen zu müssen. Wenn bei neuen Paketen Probleme auftreten, können Sie eine ältere Version dieses Pakets verwenden.
Das Dienstprogramm Configure erstellt eine Kopie der pureQueryXML-Datei und hängt die Versions-ID an den Namen der Datei an.
Die Versions-ID darf nur Zeichen enthalten, die für Dateinamen unter Ihrem Betriebssystem gültig sind. Außerdem darf die Länge der Zeichenfolge und des Namens des Pakets die von Ihrem Betriebssystem unterstützte maximal zulässige Länge für Dateinamen nicht überschreiten.
Wenn Sie diese Option angeben und das Dienstprogramm Configure die pureQueryXML-Datei nicht ändert, erstellt das Dienstprogramm keine Kopie der pureQueryXML-Datei.
Wenn Sie diese Option nicht angeben, werden Datenbankpakete, die aus nachfolgenden Bindevorgängen resultieren, ohne eine Version erstellt und es wird keine Kopie der Datei erstellt.
Die Prüfung der Version während der Laufzeit basiert auf dem Konsistenztoken, nicht auf dem Versionsnamen.
Ist für die Variable Tage beispielsweise 5 gesetzt und 25.11. (25. November) ist das aktuelle Datum, werden SQL-Anweisungen mit der Zeitmarke 20.11. (20. November) oder einer älteren Zeitmarke nicht geschrieben.
Die Zeitmarke wird zu dem Zeitpunkt aktualisiert, wenn pureQuery Runtime die SQL-Anweisung erfasst oder wenn Sie das Dienstprogramm Merge mit inkrementellen Erfassungsdateien ausführen.
Hat die SQL-Anweisung keine Zeitmarke, wird die SQL-Anweisung in die Ausgabedatei geschrieben. Keine Zeitmarkeninformationen enthalten könnte beispielsweise eine pureQueryXML-Datei einer früheren Version. Wenn Sie eine pureQueryXML-Datei konfigurieren, die keine Zeitmarkeninformationen aufweist (Version 3 oder älter), wird die Option ignoriert, alle SQL-Anweisungen werden in die Ausgabedatei geschrieben und es wird eine Nachricht angezeigt.
Für die Nachrichten, die nicht in die pureQueryXML-Ausgabedatei geschrieben werden, wird eine Nachricht in die Protokolldatei geschrieben. Ist die Option showDetails auf true gesetzt, werden alle Anweisungen angezeigt, die nicht in die Ausgabedatei geschrieben wurden.
-replaceLocations "(SAMPLE > SAMPLE1) (STLEC1 > STLEC2)"
-replaceLocations "(\"test1\">\"prod1\")"
Die Namensersetzung erfolgt in einem einzigen Arbeitsgang. Wenn Sie beispielsweise die Ersetzungszeichenfolge "(S1>S2) (S2>S3)" angeben, werden alle Vorkommen von S1 durch S2 und die ursprünglichen Vorkommen von S2 werden durch S3 ersetzt. Das Dienstprogramm Configure führt nicht einen Arbeitsgang zum Ersetzen von S1 durch S2 und einen weiteren zum Ersetzen von S2 durch S3 durch. Beispiele für Namensersetzungen finden Sie im Beispiel am Ende dieses Themas.
Diese Option wird nur für DB2 for z/OS Version 10 und DB2 for Linux, UNIX, and Windows Version 9.8 unterstützt. Das Dienstprogramm Configure verhindert keine Ersetzung von Speicherpositionsnamen durch andere Versionen der unterstützten Datenbanken. Das Dienstprogramm zeigt eine Warnung an, wenn Sie eine pureQueryXML-Datei angeben, die mit älteren Versionen der Datenbank verwendet wird. Bei früheren Datenbankversionen wird keine Warnung angezeigt. Das Dienstprogramm Configure ermittelt die Datenbank und deren Version über die Informationen in der pureQueryXML-Datei.
Bevor Sie das Dienstprogramm Configure mit der Option -replaceLocations verwenden können, muss die JAR-Datei pdqsqlparser.jar Ihrem Klassenpfad hinzugefügt werden. Die JAR-Datei befindet sich im Installationsverzeichnis von pureQuery Runtime (lib/sqlparser).
Die Werte anderer Optionen haben keine Auswirkung auf die Optionen -replaceLocations und -replaceSchemas. Die Ersetzung von Namen erfolgt vor dem Anwenden anderer Optionen mit Ausnahme von -cleanConfigure und -setPreStatusOfAllPkgs.
-replaceSchemas "(MEINSCH1 > MEINSCH2) (MEINSCH3 > MEINSCH4)"
-replaceSchemas "(\"schmTest\">\"schmProd\")"
Die Namensersetzung erfolgt in einem einzigen Arbeitsgang. Wenn Sie beispielsweise die Ersetzungszeichenfolge "(S1>S2) (S2>S3)" angeben, werden alle Vorkommen von S1 durch S2 und die ursprünglichen Vorkommen von S2 werden durch S3 ersetzt. Das Dienstprogramm Configure führt nicht einen Arbeitsgang zum Ersetzen von S1 durch S2 und einen weiteren zum Ersetzen von S2 durch S3 durch. Beispiele für Namensersetzungen finden Sie im Beispiel am Ende dieses Themas.
Diese Option wird nur für DB2 for z/OS Version 10 und DB2 for Linux, UNIX, and Windows Version 9.8 unterstützt. Das Dienstprogramm Configure verhindert keine Ersetzung von Schemanamen durch andere Versionen der unterstützten Datenbanken. Das Dienstprogramm zeigt eine Warnung an, wenn Sie eine pureQueryXML-Datei angeben, die mit älteren Versionen der Datenbank verwendet wird. Bei früheren Datenbankversionen wird keine Warnung angezeigt. Das Dienstprogramm Configure ermittelt die Datenbank und deren Version über die Informationen in der pureQueryXML-Datei.
Bevor Sie das Dienstprogramm Configure mit der Option -replaceSchemas verwenden können, muss die JAR-Datei pdqsqlparser.jar Ihrem Klassenpfad hinzugefügt werden. Die JAR-Datei befindet sich im Installationsverzeichnis von pureQuery Runtime (lib/sqlparser).
Informationen zu den Auswirkungen des Werts des Attributs configureStatus und der Optionen -cleanConfigure und -setPreStatusOfAllPkgs finden Sie bei der Beschreibung der Option -replaceLocations.
Gültige Werte sind TRUE und FALSE. Der Standardwert ist FALSE, d. h. ungültige SQL-Anweisungen werden nicht aus der pureQueryXML-Datei entfernt.
Wenn der Wert des Attributs configureStatus für die Anweisungsgruppe auf FINAL gesetzt ist, werden ungültige SQL-Anweisungen nicht aus der Anweisungsgruppe entfernt. Eine Warnung wird angezeigt.
Wenn Sie auch die Option -restoreInvalidSQLForce mit dem Wert TRUE angeben, wird ein Fehler angezeigt.
Informationen zu SQL-Anweisungen, die als ungültig markiert sind, finden Sie in der Option -statementBindError des pureQuery-Dienstprogramms StaticBinder.
Gültige Werte sind TRUE und FALSE. Der Standardwert ist FALSE, d. h. als ungültig markierte SQL-Anweisungen werden nicht wiederhergestellt.
Wenn Sie auch die Option -removeInvalidSQL mit dem Wert TRUE angeben, wird ein Fehler angezeigt.
Beim Wiederherstellen von als ungültig markierten SQL-Anweisungen aktualisiert das Dienstprogramm Configure diese SQL-Anweisungen, sodass sie nicht mehr als ungültig markiert sind. Das Dienstprogramm Configure nimmt auch andere Änderungen an der pureQueryXML-Datei vor, sodass pureQuery Runtime die SQL-Anweisungen als gültige Anweisungen erkennt. Beispielsweise werden SQL-Anweisungen Abschnittsnummern zugewiesen.
Informationen zu SQL-Anweisungen, die als ungültig markiert sind, finden Sie in der Option -statementBindError des pureQuery-Dienstprogramms StaticBinder.
Stamm_des_Paketnamens muss den Integritätsbedingungen entsprechen, die von der von Ihnen verwendeten DB2-Datenbank festgelegt werden.
Wenn Sie vorhaben, mit dem pureQuery-Dienstprogramm StaticBinder DBRM-Dateien zu generieren anstatt DB2-Pakete zu erstellen, muss Stamm_des_Paketnamens in Großbuchstaben geschrieben sein und darf nicht länger als 6 Zeichen sein. Das Dienstprogramm Configure fügt Zeichen zu dem Stamm des Namens hinzu, wenn entweder die pureQueryXml-Datei DDL-Anweisungen enthält oder die Anzahl der Anweisungen pro Paket (angegeben mit sqlLimit) erreicht ist. Wenn Sie mit dem Dienstprogramm StaticBinder eine DBRM-Datei generieren und die Kombination aus Stamm_des_Paketnamens, den zusätzlichen Zeichen wegen der Aktivität des Dienstprogramms Configure und der Isolationsstufe länger als 8 Zeichen ist, gibt das Dienstprogramm StaticBinder eine Ausnahmebedingung aus.
Ist die Option -cleanConfigure auf 'TRUE' gesetzt, wird die Option -setPreStatusOfAllPkgs ignoriert. Es wird keine Nachricht protokolliert.
Der Standardwert ist 100.
Paket mit ersten 100 SQL-Anweisungen | Paket mit den nächsten n SQL-Anweisungen, wobei 100 < n < 200 | |
---|---|---|
Isolationsstufe CS | myPackageA1 | myPackageB1 |
Isolationsstufe RR | myPackageA2 | myPackageB2 |
Isolationsstufe RS | myPackageA3 | myPackageB3 |
Isolationsstufe UR | myPackageA4 | myPackageB4 |
Die Zahlen geben die Isolationsstufe der Pakete an, während die Buchstaben die Anzahl der Pakete angeben, die aufgrund des Werts von sqlLimit und der Anzahl Anweisungen in der pureQueryXML-Datei erstellt werden. Die Buchstaben folgen der Reihenfolge des Alphabets. Wenn der Buchstabe Z erreicht ist und weitere Pakete erstellt werden müssen, werden zusätzliche Buchstaben angehängt: AA, AB, AC, usw. Wenn die Namen zu lang für Ihre Datenbank werden, müssen Sie die Länge Ihres Stammpaketnamens reduzieren oder den Wert für sqlLimit erhöhen. Sie können auch die Option -forceSingleBindIsolation verwenden, um die Zahl zu entfernen, die die Isolationsstufe angibt, wenn Sie vorhaben, ein Paket für eine einzelne Isolationsstufe zu erstellen.
Es gibt Situationen, in denen das Dienstprogramm Configure beim Erstellen von Anweisungsgruppen, die DB2-Pakete darstellen, den Grenzwert der SQL-Anweisung überschreitet. Alle SQL-Anweisungen, die einen Cursor manipulieren, müssen sich im selben Paket befinden wie die Anweisung DECLARE CURSOR für diesen Cursor. Beispiel: Wenn eine Anwendung 15 verschiedene UPDATE-Anweisungen ausführt, die auf denselben Cursor verweisen, müssen sich alle 15 Anweisungen in dem DB2-Paket befinden, in dem sich die Anweisung DECLARE CURSOR für diesen Cursor befindet.
Damit Sie die optimale Leistung Ihrer Anwendung erreichen, dürfen Sie sqlLimit nicht auf einen Wert größer als 400 setzen.
>>-+------------------------+--+---------------------------+--->< '- -traceFile--Dateiname-' | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
Die erfolgreiche oder fehlgeschlagene XML-Schemaprüfung wird für jede Eingabedatei ermittelt und dokumentiert. Schlägt eine Eingabedatei fehl, wird die Konfigurationsverarbeitung nicht gestoppt und die nachfolgenden Dateien werden verarbeitet.
Schlägt die Schemaprüfung einer pureQueryXML-Datei fehl, wird die Konfigurationsaktion für die betreffende Datei nicht fortgesetzt. Der erste Fehler in der Schemaprüfung und die fehlgeschlagene Konfiguration werden für die Datei dokumentiert.
Es werden nur pureQueryXML-Dateien des aktuellen Release oder der vorangegangenen Version (Version 4 oder 3) geprüft. Wird eine pureQueryXML-Datei einer früheren Version erkannt, wird für diese Datei keine Prüfung ausgeführt.
Gültigkeitsfehler werden als Teil der Ausgabe des Dienstprogramms Configure ausgegeben.
Sie können eine pureQueryXML-Datei in einem Editor öffnen, um die Aktualisierungen anzuzeigen, die das Dienstprogramm Configure an dieser Datei vorgenommen hat.
Verwenden Sie diese Einstellung, um die DB2-Pakete weiterzuverwenden, die aus den SQL-Anweisungen in der pureQueryXML-Datei erstellt wurden.
Hat das Attribut isBindable den Wert 'true' für die Anweisungsgruppe und den Wert 'false' für eine SQL-Anweisung in der Gruppe, steuert der Wert der pureQuery Runtime-Eigenschaft allowDynamicSQL, ob pureQuery Runtime versucht, die Anweisung dynamisch auszuführen oder einen Fehler zurückgibt.
Hat das Attribut isBindable den Wert 'false' für die Anweisungsgruppe, steuert der Wert der pureQuery Runtime-Eigenschaft allowDynamicSQL, ob pureQuery Runtime versucht, eine SQL-Anweisung in der Gruppe dynamisch auszuführen oder einen Fehler zurückgibt.
Mithilfe des pureQueryXML-Editors in der Workbench können Sie den Wert des Attributs isBindable in einer pureQueryXML-Datei für eine Anweisungsgruppe und eine Anweisung ändern.
Wenn Sie eine pureQueryXML-Datei manuell bearbeiten, stellen Sie sicher, dass Sie zuerst eine Sicherungskopie der Datei erstellen. Führen Sie die XML-Schemaüberprüfung der pureQueryXML-Eingabedateien durch Angabe der Option -validateXml für die pureQuery-Dienstprogrammen Merge, Configure oder StaticBinder aus.
Wenn Sie eine pureQueryXML-Datei außerhalb der Workbench bearbeiten müssen, setzen Sie im Startbefehl des Elements statementSet der Anweisungsgruppe, in der Sie die Bearbeitung durchführen, den Wert des Attributs configureStatus auf REQUIRED. Wenn Sie mit dem Bearbeiten der Datei fertig sind, führen Sie das Dienstprogramm Configure für die Datei aus.
<statementSet configureStatus="REQUIRED">
Wenn Sie eine pureQueryXML-Datei außerhalb der Workbench bearbeiten, können Sie den Wert des Attributs isBindable für eine Anweisungsgruppe und eine Anweisung ändern.
Wenn Sie das Attribut isBindable für eine Anweisungsgruppe ändern möchten, ändern Sie den Wert des Attributs isBindable für das Paketelement, das das untergeordnete Element des Anweisungsgruppenelements darstellt.
Wenn Sie das Attribut isBindable für eine SQL-Anweisung ändern möchten, ändern Sie den Wert des Attributs isBindable für das Element statementAttributes, das das untergeordnete Element des Anweisungselements darstellt.
<statementSet configureStatus="AUTO"> <package collection="NULLID" consistencyToken="0000012551b7579f" isBindable="true" isDDLPackage="false" name="pureQu" version=""/> <statements> <statement id="1" sectionNumber="1"> <statementDescriptor> <prepareSql>SELECT CID FROM CUSTOMER WHERE CID > 1002 </prepareSql> <statementType>QUERY</statementType> <resultSetMetadata> <column columnName="CID" columnNameX="CID" databaseName="XMLTEST" databaseSchema="TEST " db2type="492" length="8" nullable="false" tableName="CUSTOMER"/> </resultSetMetadata> <statementAttributes cursorName="DB_PDQ_SPC2" isBindable="true" prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" resultSetType="TYPE_FORWARD_ONLY"/> <processedSql /> </statementDescriptor> <statementMetadata> <traceInfo> <sqlDefinitionStackTraces> <trace> . . . </statementSet>
Im folgenden XML-Fragment aus dem Beispiel steht das Attribut isBindable im Startbefehl des Paketelements. Der Wert ist 'true'.
<package collection="NULLID" consistencyToken="0000012551b7579f" isBindable="true" isDDLPackage="false" name="pureQu" version=""/>
Die Beispielanweisungsgruppe enthält die SQL-Anweisung SELECT CID FROM CUSTOMER WHERE CID > 1002. Im folgenden XML-Fragment ist das Attribut isBindable für die SQL-Anweisung ein Attribut des Elements statementAttributes. Das Element statementAttributes ist ein untergeordnetes Element des Anweisungselements, das die SQL-Anweisung enthält. Der Wert ist 'true'.
<statementAttributes cursorName="DB_PDQ_SPC2" isBindable="true" prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" resultSetType="TYPE_FORWARD_ONLY"/>
Wenn pureQuery Runtime SQL-Anweisung erfasst, die für eine DB2-Datenbank ausgeführt werden, werden einige DB2-Sonderregisterwerte verfolgt und mit der SQL-Anweisung aufgezeichnet. Die aufgezeichneten Sonderregisterwerte sind die Werte, die allgemein festgelegt sind und möglicherweise das Verhalten der SQL-Anweisung beeinflussen, wenn sie geändert werden.
Das Dienstprogramm Configure zeigt die in der pureQueryXML-Datei aufgezeichnete Sonderregisteraktivität als Teil der Aktivität des Dienstprogramms Configure an.
Wenn Sie Anweisungsgruppen auf der Basis der Sonderregisterinformationen erstellen möchten, die mit den SQL-Anweisungen aufgezeichnet wurden, geben Sie die Option -groupSQLBySpecialRegisters an.
Wenn Sie eine StaticBinder-Optionsdatei erstellen möchten, die auf den bei der Erfassung der SQL-Anweisungen aufgezeichneten Sonderregisterinformationen basierende Bindeinformationen enthält, geben Sie die Option -optionsFileForBind an. Sie können eine StaticBinder-Optionsdatei auch dann erstellen, wenn Sie die Option -groupSQLBySpecialRegisters zur Erstellung von Anweisungsgruppen auf der Basis von Sonderregisterinformationen zu SQL-Anweisungen nicht angegeben haben. Informationen zur Datei und zu den von pureQuery Runtime aufgezeichneten Sonderregisterinformationen finden Sie über die entsprechenden Links am Ende dieses Themas.
Bei der Erfassung einer SQL-Anweisung in einer pureQueryXML-Datei zeichnet pureQuery Runtime Sonderregisterinformationen für die Anweisung auf. Die Sonderregisterinformationen werden in der Datei im XML-Element specialRegValuesSet gespeichert.
Das Element specialRegValuesSet enthält mindestens eine Instanz des XML-Elements specialRegValue. Das Attribut specialRegValueId ist ein Attribut des Elements specialRegValue. Der Wert des Attributs specialRegValueId entspricht der ID des Elements specialRegValue.
Das Element specialRegValue enthält darüber hinaus eine Gruppe von Sonderregisterinformationen, die bei der Erfassung einer SQL-Anweisung aufgezeichnet werden. Die erfassten SQL-Anweisungen werden in einer Instanz des XML-Elements statementSet gespeichert. Jedes statementSet-Element enthält mindestens eine Instanz des XML-Elements 'statement'. Jedes Element 'statement' enthält SQL-Informationen zur erfassten SQL-Anweisung.
Der Wert des Attributs specialRegValueId dient dazu, die Sonderregisterinformationen im Element specialRegValue mit den SQL-Anweisungen in Beziehung zu setzen. Der Wert des Attributs specialRegValueId wird von pureQuery Runtime als Wert eines Attributs des Elements statementAttributes der SQL-Anweisung angegeben.
Informationen zu den von pureQuery Runtime aufgezeichneten Sonderregisterinformationen finden Sie über die entsprechenden Links am Ende dieses Themas.
Das folgende XML-Fragment ist ein Beispiel für das Element specialRegValuesSet aus einer pureQueryXML-Datei:
<specialRegValuesSet> <specialRegValue specialRegValueId="0" specialRegisterVectorValue="UNTRACKED_SET: FALSE| SCHEMA: MYTEST | PATH: "SYSIBM","SYSFUN","SYSPROC", "SYSIBMADM","MYTEST"| SQLID: MYTEST | DECFLOAT ROUNDING: ROUND_HALF_EVEN"/> <specialRegValue specialRegValueId="1" specialRegisterVectorValue="UNTRACKED_SET: FALSE| SCHEMA: DB2ADMIN| PATH: "SYSIBM","SYSFUN","SYSPROC", "SYSIBMADM","DB2ADMIN"| SQLID: DB2ADMIN| DECFLOAT ROUNDING: ROUND_HALF_EVEN"/> </specialRegValuesSet>
<statement id="1" sectionNumber="1"> <statementDescriptor> <prepareSql>SELECT count(EMPNO) FROM EMPLOYEE WHERE WORKDEPT NOT LIKE 'E21' </prepareSql> <statementType>QUERY</statementType> <resultSetMetadata> <column columnName="1" databaseName="SAMPLE" db2type="496" length="4" nullable="false" unnamedColumn="1"/> </resultSetMetadata> <statementAttributes cursorName="DB_PDQ_SPC5" isBindable="true" prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" resultSetType="TYPE_FORWARD_ONLY" specialRegValuesUsed="0,1"/> <processedSql /> </statementDescriptor> . . . </statement>
Im Beispiel gibt der Wert des Attributs specialRegValuesUsed für das Element statementAttributes zwei Sonderregistergruppen-IDs an. Die Gruppen-IDs haben die Werte 0 und 1. pureQuery Runtime erfasste die SQL-Anweisung mehrfach. Bei der Erfassung der Anweisung durch pureQuery wurden zwei verschiedene Gruppen von Sonderregisterinformationen aufgezeichnet.
Angenommen Sie haben zwei pureQueryXML-Dateien, eine für jede Verbindung, die Ihr Nicht-pureQuery-API-Anwendung herstellt. Die Namen der Dateien lauten capture_sales.pdqxml (enthält 450 SQL-Anweisungen) und capture_employee.pdqxml (enthält ebenfalls 450 SQL-Anweisungen, von denen 50 DDL-Anweisungen sind).
Für diese Dateien wollen Sie dem Dienstprogramm Configure die folgenden Werte zur Verfügung stellen, wenn Sie das Dienstprogramm für diese Dateien zum ersten Mal ausführen:
Optionen für Dienstprogramm Configure | capture_sales.pdqxml | capture_employee.pdqxml |
---|---|---|
-collection | first | second |
-markDDLForBind | FALSE | FALSE |
-pkgVersion | 1.0 | 1.0 |
-rootPkgName | PK001S | PK005E |
-sqlLimit | 200 | 200 |
java com.ibm.pdq.tool.Configure -collection first -pkgVersion 1.0 -rootPkgName PK001S \ -sqlLimit 200 -pureQueryXml C:\capture_files\capture_sales.pdqxml
java com.ibm.pdq.tool.Configure -collection second -pkgVersion 1.0 -rootPkgName PK005E \ -sqlLimit 200 -pureQueryXml C:\capture_files\capture_employee.pdqxml
Der Befehl könnte wie folgt aussehen:
java com.ibm.pdq.tool.Configure -optionsFile myOptionsFile.txt
Die Optionsdatei, die einen beliebigen Namen und eine beliebige Erweiterung haben kann, die Ihr Betriebssystem unterstützt, enthält die folgenden Einträge:
defaultOptions = -pkgVersion 1.0 -sqlLimit 200 C:\capture_files\capture_sales.pdqxml = -collection first -rootPkgName PK001S C:\capture_files\capture_employee.pdqxml = -collection second -rootPkgName PK005E
capture_sales.pdqxml_1.0
capture_employee.pdqxml_1.0
capture_employee.ddl
SELECT * FROM TABLE3 SELECT * FROM TABLE2 SELECT * FROM TABLE1
Anweisungsgruppe 1: SELECT * FROM TABLE3 Anweisungsgruppe 2: SELECT * FROM TABLE2 Anweisungsgruppe 3: SELECT * FROM TABLE1
Anweisungsgruppe 1: SELECT * FROM TABLE1 Anweisungsgruppe 2: SELECT * FROM TABLE2 SELECT * FROM TABLE3
Anweisungsgruppe 1: SELECT * FROM TABLE1, SELECT * FROM TABLE2 Anweisungsgruppe 2: SELECT * FROM TABLE3
Die Namensersetzung erfolgt in einem einzigen Arbeitsgang. Wenn Sie z. B. die Ersetzungszeichenfolge "(S1>S2) (S2>S3)" angeben, werden die Vorkommen von S1 durch S2 und die ursprünglichen Vorkommen von S2 durch S3 ersetzt. Das Dienstprogramm Configure führt nicht einen Arbeitsgang zum Ersetzen von S1 durch S2 und einen weiteren zum Ersetzen von S2 durch S3 durch.
Wenn Sie eine Ersetzungszeichenfolge ähnlich wie "(SCH1>SCH2) (SCH2>SCH3)" angeben, könnten Sie nicht erwartete Ergebnisse erhalten, wenn Sie eine pureQueryXML-Datei mehrfach konfigurieren. Bei der ersten Konfiguration wird der Name SCH1 in SCH2 geändert und der Name, der in der Datei ursprünglich SCH2 lautete, wird in SCH3 geändert. Beim zweiten Konfigurieren der Datei wird der Name SCH2 in SCH3 geändert, einschließlich der Instanzen des Namens SCH2, die bei der ersten Konfiguration der Datei geändert wurden. Alle Namen, die in der Datei ursprünglich SCH1 oder SCH2 lauteten, werden in SCH3 geändert.
Wenn Sie eine Namensersetzung durchführen wollen, z. B. eine Ersetzung von Schemanamen von SCH1 in SCH2 und dann von SCH2 in SCH1, können Sie das Dienstprogramm Configure zweimal ausführen. Führen Sie zuerst das Dienstprogramm mit der Option -replaceSchemas "(SCH1>SCH2)" aus und dann ein zweites Mal mit der Option -replaceSchemas "(SCH2>SCH1)".
INSERT INTO "schm0".table0 (col1, col2, col3) values (1, 'schm0', 'col3')Wenn Sie -replaceSchemas "(\"schm0\">\"prodSch\")" angeben, ersetzt das Dienstprogramm den Schemanamen, nicht jedoch das Literal:
INSERT INTO "prodSch".table0 (col1, col2, col3) values (1, 'schm0', 'col3')
-replaceLocations " ( sample > testDB ) " -replaceLocations "(sample > testDB)"
SET CURRENT SCHEMA = "schm0" SET CURRENT SCHEMA = 'schm0';
SET CURRENT SCHEMA = "prodSchm" SET CURRENT SCHEMA = 'prodSchm';
SET PACKAGE PATH = 'schema1, schema2'Das Dienstprogramm Configure erkennt die beiden Namen als Schemanamen und ersetzt sie bei Bedarf.
SET PACKAGE PATH = 'abc'
SET PATH = 'schema1';Der Name wird erforderlichenfalls vom Dienstprogramm geändert.