この例は、列定義の中でdefault_clauseを使用する方法を示しています。customerNameのパスは、文書構造に一致しないものに変更されています。顧客名(customerName)についてはデフォルト値が返されます。
SELECT X.* FROM (SELECT * FROM customer WHERE customerID = 1) AS C, XMLTable ( '/Customer/Order/Item' PASSING C.customerXML COLUMNS "Seqno" FOR ORDINALITY, "CustomerName" VARCHAR(64) PATH '../../NonExistentNode' DEFAULT 'John Doe', "OrderNumber" VARCHAR(32) PATH '../@Number', "OrderDate" DATE PATH '../@Date', "ItemID" VARCHAR(12) PATH '@ID', "Quantity" INTEGER PATH 'Quantity', "UnitPrice" DECIMAL(9,2), "TotalPrice" DECIMAL(9,2) PATH 'Price' ) AS X ("Sequence #", "Customer Name", "Order #", "Order Date", "Item ID", "Qty", "Unit Price", "Total Price");
問合わせの結果は、次のとおりです。
Sequence # Customer Name Order # Order Date Item ID Qty Unit Price Total Price --------------------------------------------------------------------------------------- 1 John Doe NW-01-16366 12/02/28 001 10 29.50 295.00 2 John Doe NW-01-16366 12/02/28 101 1 139.99 139.99