Esta sección describe la búsqueda en una colección con el fin de conseguir estos fines:
Esta tarea equivale en realidad a una composición utilizando una condición. Puede especificar los criterios de búsqueda siguientes:
Por ejemplo, si habilitó la colección XML "sales_ord", utilizando el archivo DAD order.dad, pero ahora desea modificar el precio (price_value) utilizando datos obtenidos de la Web, puede modificar el valor del elemento <SQL_stmt> del archivo DAD, de esta manera:
EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; ... EXEC SQL END DECLARE SECTION; float price_value; /* crear tabla */ EXEC SQL CREATE TABLE xml_order_tab (xmlorder XMLVarchar); /* inicializar variable de lenguaje principal e indicadores */ 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; /* obtener precio a partir de alguna fuente */ price_value = 1000.00 /* por ejemplo*/ /* especificar la sobreescritura */ 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); /* Llamar al procedimiento almacenado */ 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 condición que define un precio mayor que 2500,00 en order.dad es sustituida por la condición que establece un precio > ?, donde ? toma el valor de la variable de entrada price_value.
Puede utilizar las operaciones normales de consulta SQL para hacer búsquedas en tablas de colección. Puede unir tablas de colección, o utilizar subconsultas, y luego realizar búsqueda estructurales en columnas de texto. Puede aplicar los resultados de la búsqueda estructural para recuperar o generar el documento XML especificado.