【发布时间】:2019-06-23 21:12:19
【问题描述】:
如何将这个旧的 oracle SQL 语句转换为 DB2 ANSI 98 编译:
SELECT
O.OBJECT_NAME AS OBJECT_NAME,
ATT.ATTRIBUTE_NAME AS ATTRIBUTE_NAME,
(CASE WHEN R.RULE_NAME = 'LAST_UPDATE' THEN 1
WHEN R.RULE_NAME = 'SOURCE_SUPREMACY' THEN 2
ELSE 3 END)
ID_RULE,
RD.SRC_CODE,
RD.WEIGTH
FROM
XOBJRULE ORL,
XOBJECT O,
XATTRIBUTE ATT,
XRULE R,
XOBJRULEDET RD,
CDSOURCEIDENTTP S
WHERE
ORL.ID_OBJECT = O.ID_OBJECT(+) AND
ORL.ID_ATTRIBUTE = ATT.ID_ATTRIBUTE(+) AND
ORL.ID_RULE = R.ID_RULE AND
R.ID_RULE = RD.ID_RULE(+) AND
RD.SRC_CODE = S.SOURCE_IDENT_TP_CD(+) AND
ORL.PERSON_ORGANIZATION IN (1,3)
ORDER BY 1,2,5 ASC
此 SQL 语句是从 Java 调试中提取的。我怎么能把它转换成 DB2 格式而不显着改变符号,这样我就不需要检查 Java 代码逻辑了?
【问题讨论】:
-
如果您在调试器中捕获 SQL,我猜您正在使用某种 Java 持久性框架,例如 Hibernate。如果是这种情况,它应该透明地处理数据库中的更改。至少这是谣言... :-)