存储过程的问题(在线等待)

logzgh 2003-08-19 11:40:49
我写了一个存储过程:

create or replace procedure ETIME.getallemployee
as
begin
select * from etime.employee;
end;
是想通过这个存储过程获取所有的employee信息。但是这个在oracle里面是有错的。
我也知道需要into,应该怎么样写才能把所有的信息返回来呢?

谢谢
...全文
19 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
logzgh 2003-08-19
  • 打赏
  • 举报
回复
那这种一定需要包吗?
写在存储过程里面可不可以?
nicholaz 2003-08-19
  • 打赏
  • 举报
回复
CREATE OR REPLACE package pkg_test as
type myrctype is ref cursor;
function get return myrctype;
end pkg_test;
/

CREATE OR REPLACE package body pkg_test as
function get return myrctype is
rc myrctype; --定义ref cursor变量
begin
open rc for select * from etime.employee;
return rc;
end get;
end pkg_test;
/



logzgh 2003-08-19
  • 打赏
  • 举报
回复
谢谢。我知道不一样。


select ...into ...from只能写一行啊。我还是不知道在包里面怎么写?

能不能帮我写一下。让我看看在包里面怎么写?
jiezhi 2003-08-19
  • 打赏
  • 举报
回复
這個過程是錯誤的。
必須使用select ... into ... from ....的格式才可以。如果想返回結果集合,必須使用包。遮和sql server是不同的。
beckhambobo 2003-08-19
  • 打赏
  • 举报
回复
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;

PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/

CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
nicholaz 2003-08-19
  • 打赏
  • 举报
回复
当然可以了

17,078

社区成员

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

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