【问题标题】:I have a db2 stored procedure returning 2 values, how do i use this procedure in a select statement?我有一个返回 2 个值的 db2 存储过程,我如何在 select 语句中使用这个过程?
【发布时间】:2019-11-07 07:57:29
【问题描述】:

我有一个返回两个值的 DB2 存储过程 (my_proc)。我希望这两个值显示为两个不同的列。

以下是正确的使用方法吗?

select my_proc(parameter1,parameter2,parameter3) as column1,column2;

请指导,因为我正在学习 DB2 和存储过程的新手。

【问题讨论】:

  • 您不能从程序中选择。考虑使用返回一行的表值函数;您可以从这样的功能中进行选择。
  • @mustaccio 我已经有一个正在运行的查询,它以下列方式使用存储过程 - 选择 column_name, my_procedure(....) as mycolumn from table where ....;但是这个过程只返回一个值,我想知道如何使用返回两个或多个值的那个?
  • 事情可能并不像你想象的那样。您只能在 Db2 中调用存储过程。您可以在 SELECT 中引用 SQL 函数,但不能在 SELECT 中直接调用存储过程。
  • 您可以将存储过程包装成一个表函数,该函数处理SP返回的结果集并返回相应的结果集(使用所谓的pipelined function)。如果你的 SP 被声明为MODIFIES SQL DATA,那么这个过程会更复杂(你需要一个中间的 SP),但它也是可行的......

标签: sql stored-procedures db2


【解决方案1】:

考虑是否可以将存储过程转换为 UDTF(用户定义的表函数)。这可以从存储过程中选择和加入,其工作方式与存储过程非常相似。

https://www.itjungle.com/2016/06/14/fhg061416-story03/

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多