oracle怎么用自定义表值函数?

[复制链接]
查看11 | 回复9 | 2009-1-15 11:42:46 | 显示全部楼层 |阅读模式
oracle里有没有像MSsqlserver里的自定义表值函数,比如sqlserver的用法:select * from f_func(2)
oracle怎么用一个过程或函数返回一个结果集呢?
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
没有人理?
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
请高手指点一下吧
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
关注!
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
10g后用sys_refcursor即可。
10g前自定义type
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
请有具体的例子?
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
create type a is talbe of number;
function fun1(...) return a
......
select * from table(fun1(...))
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
OPER@TL>select * from test;
AAABBB
---------- ----------
1
1
1
2
1
3
2
1
2
2
2
3
6 rows selected.
OPER@TL>
1create or replace function f_func(in_var number)
2return sys_refcursor
3as
4r_c sys_refcursor;
5begin
6open r_c for
7select * from test
8where aaa=in_var;
9return r_c;
10* end;
OPER@TL>/
Function created.
OPER@TL>select f_func(1) from dual;
F_FUNC(1)
--------------------
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
AAABBB
---------- ----------
1
1
1
2
1
3

OPER@TL>复制代码
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
不错,学习了
回复

使用道具 举报

千问 | 2009-1-15 11:42:46 | 显示全部楼层
lz的目的是什么,对sql server 不了解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行