interbase的存储过程中如果想返回多条结果应该怎么办?

younker 2003-09-15 12:12:43
下面的例子只能返回最后一条结果,我想让他返回所有的结果集,应该怎么写。
CREATE PROCEDURE SP_GETYEARDATA (
AYEAR INTEGER)
RETURNS (
ADATE DATE,
AMONEY DECIMAL(15,2),
ATYPE SMALLINT,
STYPE CHAR(100),
ADESC VARCHAR(260) CHARACTER SET GB_2312)
AS
DECLARE VARIABLE APAYOUTTYPE INTEGER;
DECLARE VARIABLE AINCOMETYPE INTEGER;
begin
for
select SR_DATE, SR_MONEY, SR_TYPE, SR_INCOMETYPE, SR_PAYOUTTYPE, SR_DESC
from SPENDINGRECORD
where extract(year from SR_DATE)=:AYEAR
into :adate, :amoney, :atype, :aincometype, :apayouttype, :ADESC
do begin
if (atype=0) then
begin
select inctype from incometype where incometypeid=:aincometype
into :STYPE;
end
else
begin
select paytype from payouttype where payouttypeid=:APAYOUTTYPE
into :STYPE;
end
end
suspend;
end
...全文
33 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
younker 2003-09-15
  • 打赏
  • 举报
回复
我已经知道这个问题了。实在调用的时候应该是用
select * from sp_GetYEARDATA(2003)的形势,而不能使用execute sp_GetYEARDATA的形势。
TR@SOE 2003-09-15
  • 打赏
  • 举报
回复
好象你的stype还是没有定义?
TR@SOE 2003-09-15
  • 打赏
  • 举报
回复
好象你的stype还是没有定义?

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧