问两个Oracle存储过程的问题

mschen 2006-03-21 09:06:53
1.存储过程如何返回结果集.好象在PL/SQL存储过程里不能使用SELECT * FROM 表这样的语句.


2.在存储过程中如何使用像SQL SERVER中的临时表保存中间结果集.
...全文
275 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyinfo 2006-03-23
  • 打赏
  • 举报
回复
使用 Ref cursor 可以返回结果集

例子:

Type SYS_RefCursor IS REF CURSOR;

CREATE OR REPLACE PROCEDURE authors_sel (
cv_results IN OUT SYS_REFCURSOR)
IS
BEGIN
OPEN cv_results FOR
SELECT id, first_name, last_name
FROM authors;
END;
/

------------
在oracle中如何測試調用
prcgolf 2006-03-22
  • 打赏
  • 举报
回复
up
mschen 2006-03-21
  • 打赏
  • 举报
回复
还有没有别的办法.用表类型能使用SQL语句来操作吗?
  • 打赏
  • 举报
回复
也可以用表 类型 :
temp_table type of test%rowtype
index by binary_integer;
ta temp_table;
  • 打赏
  • 举报
回复
关于 Oracel 中没有临时 表 ,但是 可以用一个 select * from test的 结果 作为表 ,实现
临时表的 功能 ,例如 :
select * from
(select * from test)
mschen 2006-03-21
  • 打赏
  • 举报
回复
好的.谢谢zhpsam109(昊子鳖鳖 Jerry)

那第二个问题关于在存储过程使用临时表的问题谁给我解答一下呢:)
kdnuggets 2006-03-21
  • 打赏
  • 举报
回复
使用 Ref cursor 可以返回结果集

例子:

Type SYS_RefCursor IS REF CURSOR;

CREATE OR REPLACE PROCEDURE authors_sel (
cv_results IN OUT SYS_REFCURSOR)
IS
BEGIN
OPEN cv_results FOR
SELECT id, first_name, last_name
FROM authors;
END;
/
zhpsam109 2006-03-21
  • 打赏
  • 举报
回复
存储过程返回游标的例子:http://blog.csdn.net/zhpsam109/archive/2005/12/20/556967.aspx

17,140

社区成员

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

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