请问如何用一条select语句select出一个cursor ref的记录?那个cursor ref是从function中返回的.
解决方案 »
- 如何将Oracle数据库中的表按照依赖关系排序,应该查找哪张表?
- 怎样把某个库中所有表的操作权限赋给某个用户
- 修改某一字段值 急急急.....在线等待
- 实现这样功能的函数,很简单,实现就给分
- 为什么换了寝室以后oracle不能用了 50分
- 怎样在redhat linux 9(没有Xwindows) 下安装Oracle817客户端?
- 找ORACLE同行合租
- 请问,在oracle 怎么写sql语句查询dwm数据库以t开头的表啊,谢谢,急
- 错误:oracle ora-01704 (字符串过长),如何解决
- 在一个60多条记录的小表中删除一条记录需要3秒钟,ORACLE究竟在干什么?!!!
- 这句SQL语句用存储过程怎么写,急!!
- Oracle字符集问题(us7ascii to zhs16gbk)
declare
cursor aa is
select names,num,to_char(sysdate,'YYYY-MM-DD') DATE from test; 使用函数和上面的to_char函数道理是一样的
在select中直接select游标只能显示cursor对象,不知道有没有展开cursor对象的方法..SELECT pkg_test.get() c FROM dual结果:
<Cursor>to yf520gn :
函数可以返回游标啊.
或者使用程序块或过程来输出:给你个例子
create or replace function fc return sys_refcursor as
c sys_refcursor;
begin
open c for select * from emp;
return c;
end;
declare
emprow emp%rowtype;
s sys_refcursor;
begin
s := fc;
loop
fetch s
into emprow;
exit when s%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close s;
end;
你只能得到这个返回类型
如果你可以定义一个函数来接收这个游标,你需要的功能貌似还可以实现
declare
c sys_refcursor;
begin
SELECT pkg_test.get() into c FROM dual ;
end;
但经过测试发现,这条路似乎是行不通的,因为你没有办法打开这个引用的游标。