Oracle存储过程中执行查询的问题

微醺_zZ 2009-09-01 09:47:16
create or replace procedure getemps( p_cursor in out types.cursorType ) 
as begin open p_cursor for select * from PROVINCE_MASTER;
end;


这个存储过程怎么执行?

Oracle存储过程中执行查询,如何返回数据集,这样的存储过程该怎么写呢,请高手指教
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
-无-为- 2009-09-01
  • 打赏
  • 举报
回复

SQL> show user;
USER 为 "SCOTT"

-----创建存储过程

SQL> CREATE OR REPLACE PROCEDURE EMP_COUNT(P_TOTAL OUT NUMBER)
2 AS
3 BEGIN
4 SELECT COUNT(*) INTO P_TOTAL FROM EMP;
5 END;
6 /

过程已创建。

-----执行存储过程
SQL> set serveroutput on;
SQL> DECLARE
2 V_EMPCOUNT NUMBER;
3 BEGIN
4 EMP_COUNT(V_EMPCOUNT);
5 DBMS_OUTPUT.PUT_LINE('雇员总人数为:'||V_EMPCOUNT);
6 END;
7 /
雇员总人数为:14

PL/SQL 过程已成功完成。

微醺_zZ 2009-09-01
  • 打赏
  • 举报
回复
Oracle存储过程中执行查询,如何返回数据集,这样的存储过程该怎么写呢,请高手指教
对于Oracle我属于初学者,跟SQL Server的语法完全不同,麻烦各位给我个示例,让我理解一下。
inthirties 2009-09-01
  • 打赏
  • 举报
回复
如果是在plsql里执行的话

直接用procedure的名字带上参数就可以调用了

比如
declare
v_cursor types.cursorType;
begin
getemps(v_cursor);
end;

这里sp里定义的是out,所以返回值就是这个参数对应的变量。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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