In diesem Abschnitt wird das Durchsuchen einer XML-Objektgruppe mit folgenden Zielen beschrieben:
Diese Aufgabe entspricht dem Zusammensetzen mit einer Bedingung. Sie können die Suchkriterien wie folgt angeben:
Wenn Sie beispielsweise eine XML-Objektgruppe sales_ord mit der DAD-Datei order.dad aktiviert haben und jetzt den Preis mit Formatdaten überschreiben wollen, die Sie aus dem Web abgerufen haben, können Sie den Wert des DAD-Elements <SQL_stmt> wie folgt überschreiben:
EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; ... EXEC SQL END DECLARE SECTION; float price_value; /* Tabelle erstellen */ EXEC SQL CREATE TABLE xml_order_tab (xmlorder XMLVarchar); /* Host-Variable und Anzeiger initialisieren */ strcpy(collection,"sales_ord"); strcpy(result_tab,"xml_order_tab"); overrideType = SQL_OVERRIDE; max_row = 20; num_row = 0; returnCode = 0; msg_txt[0] = '\0'; override_ind = 0; overrideType_ind = 0; rtab_ind = 0; maxrow_ind = 0; numrow_ind = -1; returnCode_ind = -1; returnMsg_ind = -1; /* price_value von irgendwoher abrufen, z. B. Formatdaten */ price_value = 1000.00 /* Beispiel */ /* Überschreiben angeben */ sprintf(overwrite, "SELECT o.order_key, customer, p.part_key, quantity, price, tax, ship_id, date, mode FROM order_tab o, part_tab p, table(select substr(char(timestamp(generate_unique())),16) as ship_id, date, mode from ship_tab)as s WHERE p.price > %d and s.date >'1996-06-01' AND p.order_key = o.order_key and s.part_key = p.part_key", price_value); /* Gespeicherte Prozedur aufrufen */ EXEC SQL CALL db2xml!dxxRetrieve(:collection:collection_ind, :result_tab:rtab_ind, :overrideType:overrideType_ind,:overwrite:overwrite_ind, :max_row:maxrow_ind,:num_row:numrow_ind, :returnCode:returnCode_ind,:returnMsg:returnMsg_ind);
Die Bedingung "price > 2500.00" in order.dad wird durch "price > ?" überschrieben, wobei "?" von der Eingabevariablen price_value abhängt.
Sie können zum Durchsuchen von Gruppentabellen die üblichen SQL-Abfrageoperationen verwenden. Sie können Gruppentabellen verknüpfen, Unterabfragen verwenden und anschließend eine strukturelle Textsuche in den Textspalten durchführen. Mit dem Ergebnis der strukturellen Suche können Sie die abzurufenden Daten anwenden oder das angegebene XML-Dokument generieren.