Thứ Bảy, 1 tháng 10, 2011

Chạy XQuery - P12

XQuery là một ngôn ngữ để truy vấn và định dạng dữ liệu XML. 

>>> Các bài viết liên quan P11  P10  P9  P8  P7  P6  P5  P4  P3  P2  P1
>>> Sách để nghiên cứu: DB2 Express-C 9.7

Đặc tính của pureXML cho phép tài liệu XML được lưu giữ theo cấu trúc phân cấp nguyên thủy của chúng bên trong bảng, chứ không bị chuyển đổi sang dạng văn bản hoặc các định dạng khác. 

Do XML có cách bài trí phi tuyến tính và không thể đoán trước được, có thể sử dụng XQuery để phân tích cú pháp nhanh và tìm ra đường dẫn khớp với các tiêu chuẩn của bạn. XQuery dựa trên cơ sở các biểu thức sẽ được đánh giá để cho kết quả là một giá trị. Có nhiều loại biểu thức có thể được xây dựng từ các từ khóa XQuery, ký hiệu và toán hạng. 

DB2 chấp nhận từ khóa XQUERYnhư một dấu hiệu rằng theo sau đó là một biểu thức XQuery. Với XQuery trong DB2 bạn có thể gọi một trong hai hàm sau để thu được dữ liệu XML: db2-fn:sqlquery và db2-fn:xmlcolumn. Một ví dụ của mỗi hàm được trình bày trong bài tập này. Lưu ý rằng các giá trị được trả lại này không nhất thiết phải là tài liệu XML hoàn thiện.

DB2 9 cũng đưa ra Developer Workbench với trình tạo XQuery (XQuery builder) để giúp bạn xây dựng các truy vấn đến các cột XML nếu bạn không quen với cú pháp XQuery hoặc cấu trúc tài liệu XML. Xem thông tin về Developer Workbench: http://www.ibm.com/developerworks/data/tutorials/dm0608eaton/section2.html

Chạy lệnh sau hoặc từ bộ soạn thảo lệnh hoặc từ dòng lệnh:

B1: Sử dụng hàm db2-fn:xmlcolumn. Hàm này tìm kiếm một đường dẫn đã định trong một cột XML đã cho và trả lại một chuỗi giá trị XML. Đối số của hàm và tên cột là nhạy kiểu chữ (case sensitive: phân biệt chữ hoa – chữ thường), và cột tên phải là một tên đầy đủ (qualified name) của cột. Trong ví dụ đầu, tìm cột AUTHOR_INFO và trích các tên của tác giả:

xquery db2-fn:xmlcolumn('HWLD.AUTHOR.AUTHOR_DOC')/author_info/name

Bạn sẽ thấy như sau:

------------------------------- 
<name>Claire</name> 
<name>Renata</name>
 <name>Jane</name> 

3 record(s) selected. 

B2: Sử dụng hàm db2-fn:xmlcolumn để tìm cột AUTHOR_INFO và trích toàn bộ thông tin về phòng ban.

xquery db2-fn:xmlcolumn('HWLD.AUTHOR.AUTHOR_DOC')/author_info/department 

Bạn sẽ thấy như sau:

1
------------------------------------------------------------------------ 
<department> 
<department_title>DB2 CE</department_title> 
<responsibility>Supporting customer problems</responsibility> 
<start_year>2005</start_year> 
</department> 
<department> 
<department_title>DB2 Index Manager</department_title> 
<responsibility>Develop new features for DB2 indexes</responsibility> 
<start_year/> 
</department>
<department> 
<department_title>FVT kernel</department_title> 
<responsibility>Testing the newest solutions for DB2</responsibility> 
<start_year>2006</start_year> 
</department> 
<department> 
<department_title>DB2 Load</department_title> 
<responsibility>Develop new features for data movement utilities</responsibility>
<start_year>2003</start_year> 
</department> 
<department> 
<department_title>RAD Development</department_title>
<responsibility>Developing the Business Process Executable Language (BPEL) and Business Rules debugger in WebSphere Integration Developer</responsibility> 
<start_year/> 
</department> 
<department> 
<department_title>WebSphere Studio Technical Support team</department_title> 
<responsibility>Team lead</responsibility> 
<start_year>2000</start_year> 
</department> 
6 record(s) selected. 

B3: Sử dụng một tổ hợp XQuery, triệu gọi SQL để truy lục chỉ tên phòng ban của tác giả nào có giá trị ID là 1.

xquery db2-fn:sqlquery('select AUTHOR_DOC from HWLD.AUTHOR
where author_id=1')/author_info/department/department_title 

Bạn sẽ thấy như sau:

-------------------------------------------------------------- 
<department_title>DB2 CE</department_title> 
<department_title>DB2 Index Manager</department_title> 
2 record(s) selected. 

Source: Ibm.com

Không có nhận xét nào:

Đăng nhận xét