打印本文 打印本文 关闭窗口 关闭窗口
从 Oracle 移植递归 SQL 到 DB2 UDB
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2772  更新时间:2009/4/22 22:02:38  文章录入:mintao  责任编辑:mintao
nnot find file
----Re: Cannot find file
--Re: Cannot find file
Help! Documentation missing!

为了创建一个 Node 值,我们必须使用函数 nodeInput(),并为之提供像“1.2” 这样的一个字符串作为输入。对于根节点,输入是“1.1”(由于 DB2 节点类型的具体实现,我们只能从 1.1 开始,而不是从 1 开始)。对于所有其他的节点,我们同样使用 DB2 的 RANK() 函数来为直属子节点分配序号。这是在 GetResponsesN() 函数中进行的。之后,这个序号被连接到上级节点的字符表示(通过 nodeOutput() 获得)上,再将这样得到的字符串作为输入,通过 nodeInput() 函数创建新的 Node 值。

结束语

DB2 UDB 为递归 SQL 而设的方法提供了一种非常灵活的方式来处理层次结构。正如本文所演示的,DB2 UDB 能够轻易地仿效其他数据库供应商的行为,因为 DB2 通过用户定义的函数提供了方便自如的可扩展性。而且,DB2 UDB 还提供了处理非常高级的递归查询的方法,例如那些在单个表中有多重层次结构的情况下的递归查询。通过使用我描述过的这些技术,在移植应用程序时您可以充分利用 DB2 的长处。

致谢

感谢 Serge Rielau (IBM)为我指引了正确的方向;感谢 Jacques Roy (IBM)认真审查并正确无误地输入了这篇文档;同时也感谢 Jacques Terrasse (Aldata)为我提供了机会,使我得以在客户环境中得出这一解决方案。

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口