【发布时间】:2016-05-07 10:04:27
【问题描述】:
我在 esql (IBM Websphere Message Broker) 中有一个子流程,我需要在其中实现类似于 select distinct 功能的功能。
一些背景知识:我在 Oracle 数据库group_errcode_ref 中有一个表。该表几乎是ERROR_CODE 和ID 的固定链接/映射。 ERROR_CODE 是唯一的,但 ID 可以重复。例如错误代码 4000 和 4001 都可以链接到 ID 1。
在我的 esql 子流中,我有一组错误代码,这些错误代码根据进入流的当前数据而变化。
所以我需要做的是我需要输入错误代码数组,并从我的表group_errcode_ref中为数组中的所有错误代码选择ID
我现在拥有的:
declare db rows;
set db.rows[] = (select d.ID from Database.group_errcode_ref as d where d.ERROR_CODE in (select D from errCodes.Code[] as D);
errCodes 是来自输入的错误代码数组。 row 是与错误代码对应的所有 ID 的数组。
这很好,但我想从 db.rows[] 数组中删除重复项。
我不确定在 esql 中执行此操作的最佳方法,但它不支持 distinct。 group by,或order by
【问题讨论】:
-
oracle 与 eSQL 和 IBM 产品有什么关系?
-
@xQbert 我正在使用通过 websphere MQ/esql 中的 ORA_ODBC 驱动程序访问的 Oracle 数据库。 array2 的查询正在访问 oracle 数据库 - 认为它可能是一个相关标签。
-
是否支持
group by? -
@agent5566 不,它不支持 group by/order by。我在想在选择之后必须有一些逻辑/排序来获得不同的 ID,但我不确定 esql 中的最佳方式。我想我会重新提出我的问题,因为我已经稍微更改了代码 - 以减少混乱。
-
我不知道这个问题与 WebSphere MQ 有什么关系。 MQ 中没有 ESQL。你的意思是消息代理?如果是,建议您相应地标记以引起 MB 专家的注意 - 更有可能以这种方式得到答案。
标签: sql oracle messagebroker ibm-integration-bus extended-sql