【发布时间】: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