[oracle]pl/sql in/out变量的使用和过程中过程的调用
2014-07-31 00:29
411 查看
--in/out 类型变量的使用 以及过程中调用过程,获取out类型的返回值
--建一张表books
--简单过程一 插入一条记录
测试:
--简单过程二 由id获取一条记录的的name
测试:
--简单过程三 得到一个用户集合的结果集,取出同一个出版社的书的id和name
看起来还能用:
SQL> exec sub_pro33('10');
图书ID是:2 名称是:haorn
图书ID是:4 名称是:anglele
PL/SQL procedure successfully completed
注意!1 过程中的调用只要直接写过程名就好了,不要什么调用关键字。
2 对于out类型的值直接声明一个相同类型的变量来接收就好了。
3 为了好测试才用另一个过程来显示结果的,以后会通过jdbc来调用过程,获取函数。
本文出自 “orangleliu笔记本” 博客,请务必保留此出处http://blog.csdn.net/orangleliu/article/details/38309425
--建一张表books
--简单过程一 插入一条记录
create table books(bookid number,bookname varchar(50),pubhouse varchar(50)); --简单过程一 插入一条记录 create or replace procedure sub_pro1 (bookid in number,bookname in varchar2,pubhouse in varchar2) is begin insert into books values(bookid,bookname,pubhouse); end
测试:
SQL> exec sub_pro1(1,'wudi','安徽文艺出版社'); PL/SQL procedure successfully completed
--简单过程二 由id获取一条记录的的name
create or replace procedure sub_pro2 (bookid in number,bookname out varchar2) is begin select bookname into bookname from books where bookid=bookid; end; --调用过程,并打印出结果 create or replace procedure sub_pro22 (bookno in number) is --接受out变量的内容 v_bookname varchar(50); begin --直接调用过程 sub_pro2(bookno,v_bookname); --如果成功调用,那么变量应该是有值的 dbms_output.put_line(bookno||' 的图书为'||v_bookname); end;
测试:
SQL> exec sub_pro22(1); 1 的图书为wudi
--简单过程三 得到一个用户集合的结果集,取出同一个出版社的书的id和name
books表中插入这么几条数据 BOOKID BOOKNAME PUBHOUSE ---------- -------------------------------------------------- -------------------------------------------------- 1 wudi 安徽文艺出版社 2 haorn 10 3 angle 20 4 anglele 10
--1 创建一个包,定义一个cursor为test_cursor create or replace package testpackage as type test_cursor is ref cursor; end testpackage; --2 创建过程 create or replace procedure sub_pro3 (l_pubhouse in varchar2,l_cursor out testpackage.test_cursor) is begin open l_cursor for select bookid,bookname from books where pubhouse=l_pubhouse; end; --3 调用过程 打印与游标 create or replace procedure sub_pro33(l_pubhouse in varchar2) is books_cursor testpackage.test_cursor; v_bookid books.bookid%type; v_bookname books.bookname%type; begin sub_pro3(l_pubhouse,books_cursor); loop fetch books_cursor into v_bookid,v_bookname; --not found要连在一起写 exit when books_cursor%notfound; dbms_output.put_line('图书ID是:'||v_bookid||' 名称是:'||v_bookname); end loop; end;
看起来还能用:
SQL> exec sub_pro33('10');
图书ID是:2 名称是:haorn
图书ID是:4 名称是:anglele
PL/SQL procedure successfully completed
注意!1 过程中的调用只要直接写过程名就好了,不要什么调用关键字。
2 对于out类型的值直接声明一个相同类型的变量来接收就好了。
3 为了好测试才用另一个过程来显示结果的,以后会通过jdbc来调用过程,获取函数。
本文出自 “orangleliu笔记本” 博客,请务必保留此出处http://blog.csdn.net/orangleliu/article/details/38309425
相关文章推荐
- 如何调用 Oracle 存储过程在 Visual Basic.NET 使用 Microsoft Oracle 托管提供程序
- Oracle过程的使用,调用函数,调用过程,使用游标
- 在Python中使用cx_Oracle调用Oracle存储过程
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- Oracle 使用IN参数创建/调用存储过程
- c#中使用call调用oracle存储过程并获取out参数值
- 在Oracle的存储过程中使用dblink调用远程存储过程备忘
- [oracle]pl/sql in/out变量的使用和过程中过程的调用
- Oracle 动态SQL语句(4)之存储过程的调用与浅谈字符串的使用
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- [oracle]pl/sql in/out变量的使用和过程中过程的调用
- spring 中使用jdbctemplate调用Oracle的存储过程
- 使用VB调用Oracle程序包内的存储过程返回结果集
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- 如何调用 Oracle 存储过程在 Visual Basic.NET 使用 Microsoft Oracle 托管提供程序
- 关于asp调用oracle存储过程的问题
- 使用CodeSmith为一个ORACLE中的表生成存储过程失败
- Delphi 调用 Oracle 存储过程并返回数据集的例子.
- java调用存储过程(oracle)