Db2 递归查询连接方式

Db2 recursive query connect by

我正在尝试翻译 Oracle 查询

SELECT 姓名 来自雇员 从名字开始 = 'Goyal' 通过先前的连接 empid = mgrid

由于意外令牌连接而出现错误。

您的 Db2 数据库是在 Oracle 兼容模式下创建的吗?否则,您将不会启用 CONNECT BY 支持。通过设置兼容性矢量的适当位,您可以独立于完整的 Oracle 支持启用 CONNECT BYhttps://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.porting.doc/doc/r0052877.html

顺便说一句,您应该使用 SYSCAT 目录视图而不是 SYSIBM 目录视图 DB2 Query to retrieve all table names for a given schema

要查找对象的依赖关系,您可以尝试 DBMS_UTILITY.GET_DEPENDENCY

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0055165.html

如果您只对 table 依赖关系感兴趣(但对于所有 table),这只是网络上的众多示例之一 https://datageek.blog/2015/05/07/db2-administrative-sql-cookbook-identifying-dependent-mqts-and-views/

只有在启用 ORACLE 兼容性时才有效。如下设置,然后重新运行查询:

$ db2set DB2_COMPATIBILITY_VECTOR=08
$ db2stop
$ db2start