【问题标题】:How to populate a single-dimension array with result of a query FOR DB2?如何使用 FOR DB2 的查询结果填充一维数组?
【发布时间】:2013-05-14 15:55:56
【问题描述】:

我需要使用来自选择查询的结果集填充一维数组。

我使用以下方法创建了数组类型: 创建或替换类型 UR.array_traveler_id 为 BIGINT array[];

在存储过程中,我使用以下 SELECT INTO 查询:

SELECT TRAVELER_ID bulk collect 
INTO arraylist 
FROM UR.APPLIEDPROFILE 
where TRAVELERPROFILEID = p_travelerid;

我已将数组列表声明为: DECLARE arraylist UR.array_traveler_id;

我不知道是什么问题,但 DB2 不允许我使用 BULK COLLECTION。

我得到的错误是“在 .....SQLSTATE=42601 之后发现了一个意外的令牌“收集”

请提出解决办法。

【问题讨论】:

    标签: sql stored-procedures plsql db2


    【解决方案1】:

    BULK COLLECT 子句仅在 PL/SQL 上下文中有效。您应该运行 DB2 9.7 修订包 1 或更高版本,数据库必须以 Oracle 兼容模式创建,并且过程必须用 PL/SQL 而不是 DB2 SQL PL 编写。

    【讨论】:

    • 这取决于哪些先决条件不满足。
    • 我使用的是 DB2 9.7.0.2 pack 2。我必须从 select 语句的结果集中填充一个数组。请推荐?
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多