Informix SQL / 在另一个查询中重用存储过程的结果

Posted

技术标签:

【中文标题】Informix SQL / 在另一个查询中重用存储过程的结果【英文标题】:Informix SQL / reuse result of stored procedure in another query 【发布时间】:2012-08-14 11:27:15 【问题描述】:

我想在另一个查询中使用存储过程的结果。但我不知道正确的语法。 DBMS:IBM Informix,存储过程,我用。

Select col1 from table (MULTISET(EXECUTE PROCEDURE procedure ('param1','param2')))

【问题讨论】:

Informix 11.x(意思是 11.10、11.50 或 11.70),我猜?版本号总是值得注意的;平台也值得注意,尽管它对这个问题并不重要。 版本号是 IBM Informix Dynamic Server 版本 11.50.UC5XE 【参考方案1】:

这个例子:

CREATE FUNCTION SF_DYN_REP_EXEC(i_sql varchar)
    RETURNING INT, VARCHAR(30);

    DEFINE ret_groupid int;
    DEFINE ret_groupname varchar(30);
    FOREACH cursor1
    FOR
        SELECT groupid,
             groupname INTO 
             ret_groupid,
             ret_groupname
        FROM tctaddinmessagegroups
        RETURN ret_groupid,
             ret_groupname WITH RESUME;
    END FOREACH;
END FUNCTION;

select vret_groupid C1,
             vret_groupname C2 from
table (function SF_DYN_REP_EXEC('blablabla'))
vtab1(vret_groupid,
             vret_groupname)
order by vret_groupid,
             vret_groupname;

【讨论】:

以上是关于Informix SQL / 在另一个查询中重用存储过程的结果的主要内容,如果未能解决你的问题,请参考以下文章

在另一个查询中重用 GraphQL 查询而不重复

在另一个查询中重用从一个查询缓存的数据

informix SQL查询咨询

Informix 的 SQL 查询以获取上个月的所有记录

Informix SQL 查询:返回不同结果的两个相似查询

Informix SQL - 简单选择查询返回意外结果