oracle 管道函数 如何使用拼接sql字符串

sandynet 2016-12-19 03:09:19
我有一个管道函数是这样:

create or replace function fun1 return table_type1 pipelined as
v row_type1;
begin
for myrow in (select KEYID,HOS_CODE, HOS_NAME from tableTest) loop
v := row_type1(myrow.HOS_CODE, myrow.HOS_NAME);
pipe row (v);
end loop;
return;
end;

我想把其中查询的语句换成SQL拼接出来字符串。应该如何写呢?
for myrow in 里面可以放一个字符串吗?还是如何实现?
...全文
533 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandynet 2016-12-20
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
-- 楼主先搜索一下,有了具体问题再问吧,这次给你写出来

SQL> begin
  2      for x in (select regexp_substr('AAA,BB,FF,DDDD','[^,]+',1,level) item
  3      from dual
  4      connect by rownum <= regexp_count('AAA,BB,FF,DDDD',',')+1
  5      ) loop
  6  
  7        dbms_output.put_line(x.item);
  8      end loop;
  9  end;
 10  /
AAA
BB
FF
DDDD
PL/SQL procedure successfully completed

SQL> 

不好意思,你好像没有理解我的意思。 我是想SQL查询语句是用字符串拼接的。就像下面这个地址一样,然后是用管道函数的方式实现的。 http://k11hao.iteye.com/blog/1101988
卖水果的net 2016-12-19
  • 打赏
  • 举报
回复
-- 楼主先搜索一下,有了具体问题再问吧,这次给你写出来

SQL> begin
  2      for x in (select regexp_substr('AAA,BB,FF,DDDD','[^,]+',1,level) item
  3      from dual
  4      connect by rownum <= regexp_count('AAA,BB,FF,DDDD',',')+1
  5      ) loop
  6  
  7        dbms_output.put_line(x.item);
  8      end loop;
  9  end;
 10  /
AAA
BB
FF
DDDD
PL/SQL procedure successfully completed

SQL> 

sandynet 2016-12-19
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
直接 使用regexp_substr 和 regexp_count 两个函数; 楼主先百度一下,有问题再追问;
感谢您的回复。能否告诉我是怎么应用的呢?
卖水果的net 2016-12-19
  • 打赏
  • 举报
回复
直接 使用regexp_substr 和 regexp_count 两个函数; 楼主先百度一下,有问题再追问;

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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