oracle 过程取数据问题 急急急,在线等

wentshop 2011-06-04 02:23:51
我想用java取整张表的数据,用过程取 效果跟 select * from emp 一样 过程该怎么写?
create or replace procedure usp_test as
cursor cu is select * from emp;
v_row emp%rowtype;
begin

open cu;
loop
fetch cu into v_row;
exit when cu%notfound;
dbms_output.put_line(v_row.empno||' '||v_row.ename);
end loop;
close cu;
end;
我是这样写的 有什么不对
...全文
61 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wentshop 2011-06-04
  • 打赏
  • 举报
回复
谢谢大家 问题解决了
NLP爱好者 2011-06-04
  • 打赏
  • 举报
回复
用过程就必须返回游标,否则无法提取数据,其实select * from emp也是通过游标返回的数据
shadow1986a 2011-06-04
  • 打赏
  • 举报
回复
还有其它方法,这个最方便常用。  你也可以定义一个record或数组返回。
wentshop 2011-06-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shadow1986a 的回复:]
create or replace function usp_test
RETURN SYS_REFCURSOR
is
mycur sys_refcursor;
begin
open mycur for select * from all_tables;
return mycur;
end;

你可以这样写。
[/Quote]

必须要返回一个 cursor 吗 、?
shadow1986a 2011-06-04
  • 打赏
  • 举报
回复
create or replace function usp_test
RETURN SYS_REFCURSOR
is
mycur sys_refcursor;
begin
open mycur for select * from all_tables;
return mycur;
end;

你可以这样写。
NLP爱好者 2011-06-04
  • 打赏
  • 举报
回复
定楼上~~~~~~~~~~~~~~~~~~~~·

不过最好是将 * 替换成要提取的字段名称,这样能够查询效率高一些
tangren 2011-06-04
  • 打赏
  • 举报
回复
--取整张表要返回一个游标,然后在JAVA中处理这个数据集
CREATE OR REPLACE PROCEDURE get_emps(o OUT SYS_REFCURSOR) IS
BEGIN
OPEN o FOR
SELECT * FROM emp;
END;
shadow1986a 2011-06-04
  • 打赏
  • 举报
回复
你这个可以运行,但是不会返回结果集。

17,090

社区成员

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

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