plsql怎么查看在执行存储过程
答案:2 悬赏:50
解决时间 2021-02-17 19:08
- 提问者网友:夕夏残阳落幕
- 2021-02-17 09:52
plsql怎么查看在执行存储过程
最佳答案
- 二级知识专家网友:伤口狠精致
- 2021-02-17 11:24
-- 进入cmd,执行类似于下面的操作:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 4月 21 10:18:45 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn eygle/eygle
已连接。
eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
2 as
3 begin
4 open emp_cur for SELECT * FROM EMP;
5 end;
6 /
过程已创建。
eygle@SZTYORA>
eygle@SZTYORA> var v_emp refcursor;
eygle@SZTYORA> exec emp_proc(:v_emp);
PL/SQL 过程已成功完成。
eygle@SZTYORA> print v_emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 400 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGO
eygle@SZTYORA>
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 4月 21 10:18:45 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
idle> conn eygle/eygle
已连接。
eygle@SZTYORA> create or replace procedure emp_proc(emp_cur out sys_refcursor)
2 as
3 begin
4 open emp_cur for SELECT * FROM EMP;
5 end;
6 /
过程已创建。
eygle@SZTYORA>
eygle@SZTYORA> var v_emp refcursor;
eygle@SZTYORA> exec emp_proc(:v_emp);
PL/SQL 过程已成功完成。
eygle@SZTYORA> print v_emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC
---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ---------- --------------------------
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 CHICAGO
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 CHICAGO
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 400 30 CHICAGO
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 CHICAGO
eygle@SZTYORA>
全部回答
- 1楼网友:哥在撩妹请勿打扰
- 2021-02-17 12:29
--建立测试数据:
create table book(编号 number(10),书名 varchar2(20),价格 varchar2(20))
insert into book values(100,'aa','88.77')
select * from book
--建立存储过程:
create or replace procedure query_book(name in out number,my_book out varchar2,my_book2 out varchar2) is
begin
select 编号 ,书名,价格 into name,my_book,my_book2 from book where 编号=name;
end query_book;
--调用存储过程:
declare v_name number(10);
v_my_book varchar2(50);
v_my_book2 varchar2(20);
begin
v_name := 100;
query_book(v_name,v_my_book,v_my_book2); --调用存储过程
dbms_output.put_line('v_name is: '||v_name);
dbms_output.put_line('v_my_book is: '||v_my_book);
dbms_output.put_line('v_my_book2 is: '||v_my_book2);
exception
when others then
dbms_output.put_line(sqlerrm);
end;
ps:
plsql developer -->file-->new--->sql window-->然后就可以在弹出的空白窗口里写了.
存储过程写完后,是否有错,可以看plsql developer 的左边列表:
选"my objects"-->procedures-->展开-->看你对应的存储过程,如果存储过程前面有红色交叉,则表示存储过程有错.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯