Questa sezione descrive la ricerca di una raccolta XML per le seguenti attività:
Questa attività rappresenta una composizione che utilizza una condizione. E' possibile specificare i criteri di ricerca utilizzando quelli riportati di seguito:
Ad esempio, se è stata abilitata una raccolta XML, sales_ord, utilizzando il file DAD, order.dad e si desidera sostituire il prezzo utilizzando i dati che derivano dal Web, è possibile sostituire il valore dell'elemento DAD <SQL_stmt> come segue:
EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; ... EXEC SQL END DECLARE SECTION; float price_value; /* create table */ EXEC SQL CREATE TABLE xml_order_tab (xmlorder XMLVarchar); /* initialize host variable and indicators */ 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; /* get the price_value from some place, such as form data */ price_value = 1000.00 /* for example*/ /* specify the overwrite */ 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); /* Call the store procedure */ 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);
La condizione prezzo > 2500.00 in order.dad viene sostituita da > ?, dove ? si basa sulla variabile di input price_value.
E' possibile utilizzare operazioni di interrogazione SQL regolari per ricercare le tabelle della raccolta. E' possibile unire le tabelle della raccolta oppure utilizzare le interrogazioni secondarie e quindi effettuare ricerche di testo strutturale nelle colonne di testo. Con i risultati della ricerca strutturale, è possibile utilizzare questi dati per richiamare o creare il documento XML specificato.