【发布时间】:2010-10-14 14:16:49
【问题描述】:
我又来了一些 PLSql..
我想知道,是否有任何方法可以像 select 一样使用以下函数,而不必将其转换为函数或过程(这样我就可以从包含它的脚本中看到代码)。
代码如下:
DECLARE
outpt VARCHAR2(1000) := '';
flow_rI VARCHAR2(50);
CURSOR flow_r IS
select flow_run_id
from table
where CREATED_DATE < sysdate - 32
and rownum < 10
order by 1 desc;
BEGIN
OPEN flow_r;
LOOP
FETCH flow_r INTO flow_rI;
EXIT WHEN flow_r%notfound;
BEGIN
outpt := outpt || ',' || flow_rI;
EXCEPTION
WHEN no_data_found THEN
dbms_output.Put_line(outpt);
END;
END LOOP;
dbms_output.Put_line(outpt);
outpt := '';
CLOSE flow_r;
END;
这个想法很简单,我只想从我的table 中获取一系列代码,但结果的格式类似于"1234,2434,424,45,767,43" 之类的东西,而不是查询的表结果。稍后将在代码中用于各种目的,包括我可以简单地执行in ([variable with that string]) 的另一个查询。
问题是使用dbms_output.Put_line(outpt);,我无法从我的应用程序层访问它,似乎在plsql中我无法使用return而不将其转换为函数。
有人有想法吗?只要我可以在脚本中包含整个代码,它就不需要是这样的 PlSql。
谢谢!
f.
【问题讨论】:
-
ps.:是的,我知道我在字符串的开头有一个剩余的“,”-_-