视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
通过RPG来使用IBMDB2fori7.1提供的SQL/XML函数
2020-11-09 09:48:57 责编:小采
文档


本文展示了通过 RPG 来使用 IBM DB2 for i 7.1 提供的 SQL/XML 函数的几个示例。文中展示了如何将 SQL 语句嵌入 RPG 程序,从而执行涉及 XML 数据的关系查询并生成 XML 结果。本文中演示了 SQL/XML 发布函数和近期发布的 XMLTABLE 函数。

对于任何企业来说,应用程序的现代化和 Web 支持都是极为重要的目标,但这同时也带来了一些挑战。通常,这些企业希望把 IT 资源的重心放在改进过去使用成功的基础架构,而不是编写全新的应用程序。在 IBM i 平台上,现代化通常意味着把RPG编写的应用程序改成基于Web的应用。由于目前存在大量通过 Web 传输数据的 XML 标准,因此在 RPG 中提供 XML 功能至关重要。RPG 程序员必须认识到,DB2 for i 引入的原生 XML 数据类型,为支持嵌入式 SQL(包括 RPG)各种编程语言提供了一整套全新的选择来同时处理 XML 和传统数据。

在关系查询中使用来自 XML 文档的数据

假设我有一个应用程序,用它在关系数据库表中跟踪客户订单。为了完成这项任务,我需要使用 SQL 在模式 (RPG_ORDERS) 中创建以下 ORDERS 表,并在其中插入一些记录:

清单 1. SQL 创建和插入语句

	
 CREATE TABLE rpg_orders.orders( 
	order_id BIGINT GENERATED ALWAYS AS IDENTITY( 
	 START WITH 1000 INCREMENT BY 1 
	 NO MINVALUE NO MAXVALUE 
	 NO CYCLE NO ORDER 	CACHE 20 ),
	Cust_email VARCHAR(50), 
	Order_ts TIMESTAMP , 
	Product VARCHAR(50) CCSID 37, 
	Price DOUBLE PRECISION , 
	PRIMARY KEY(order_id) ) 
	; 

INSERT INTO rpg_orders.orders 
(cust_email, order_ts, product, price)
VALUES

('ntl@us..com',
 '2012-04-15 13:00:00',
 'Camera',
 999.50
),

('ntl@us..com',
 '2012-04-16 12:00:00',
 'lens',
 500.25),

('ntl@us.ibm.com',
 '2012-04-01 11:00:00',
 'Book',
 15.00),

('george@nowhere.com',
 '2012-04-15 13:05:00',
 'Book',
 20) ;



对于请求为拥有匹配的电子邮件地址并在指定时间段内完成的订单生成一个报告的程序,这个基于 Web 的应用程序将提供一个 XML 文档。

清单 2 给出了一个示例请求文档。

清单 2. 信息请求文档示例

	


 ntl@us.ibm.com
  2012-04-14T:00:00:00 
  2012-04-30T23:59:59 



我的第一个 RPG 程序从文件中检索一个 XML 信息请求,并用它在假脱机文件中生成了一个报告。可以假设我们正在从标准输出或套接字中读取此数据 —— 但为保持示例的简洁,流文件便足以阐述相关概念。

下载本文
显示全文
专题