Plsql 如何从oracle存储函数返回游标或结果集
我有一个存储函数Plsql 如何从oracle存储函数返回游标或结果集,plsql,oracle10g,Plsql,Oracle10g,我有一个存储函数 CREATE OR REPLACE FUNCTION schedule(name in varchar2,pass in varchar2 ) begin select t.name,s.starttime from traininfo t,schedule s, trainslot ts where t.trainid in( select ts.trainid from trainslot where ts.slotid in (sel
CREATE OR REPLACE FUNCTION schedule(name in varchar2,pass in varchar2 )
begin
select t.name,s.starttime from traininfo t,schedule s, trainslot ts
where t.trainid in( select ts.trainid from trainslot
where ts.slotid in (select s.slotid from schedule s
where s.source='dhaka'
and s.dest='bogra' ))
end
我想使用光标返回此结果集。我看不出您在函数中使用了哪一个输入参数。我假设这是故意的,或者是疏忽,因为您正在简化代码。您的查询似乎还缺少在外部查询中的
traininfo
、schedule
和trainslot
表之间联接的条件。考虑到缺少联接条件,您在中嵌套的语句正在回过头来查询时间表
和列车槽
表,这似乎很奇怪。我不知道这是否是由于复制和粘贴错误或在发布问题时遗漏了什么,或者这些是否是真正的问题。我将对您打算编写的查询进行猜测,但如果我的猜测是错误的,您必须告诉我们您的查询应该做什么(发布示例数据和预期输出将非常有帮助)
CREATE OR REPLACE FUNCTION schedule(name in varchar2,pass in varchar2 )
RETURN sys_refcursor
is
l_rc sys_refcursor;
begin
open l_rc
for select t.name, s.starttime
from traininfo t,
schedule s,
trainslot ts
where t.trainid = ts.trainid
and s.slotid = ts.slotid
and s.source = 'dhaka'
and s.dest = 'borga';
return l_rc;
end;