关于有参的ORACLE存储过程,来者有分!!

myf7961 2003-10-20 05:49:53
我是用ORACLE,我想让自己写一个存储过程,例如传入str1,str2两个参数,传出一个str3,str3的值为str1+str2,当然不可能有这么简单的存储过程,我想通过一个例子知道怎么写一个带参的过程,这个返回值怎样在PB里可以获取的?在SQL/PLUS里怎样调用?
谢谢了!!不带参的过程我会写!!!
...全文
42 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
myf7961 2003-10-22
  • 打赏
  • 举报
回复
xiexie
daydayupliq 2003-10-21
  • 打赏
  • 举报
回复
SQL> create table xuesheng (id int,k1 number(3),k2 number(3));

表已创建。

SQL> alter table xuesheng add constraint pk_xue primary key(id);

表已更改。

SQL> insert into xuesheng (id,k1,k2) values(1,78,87);

已创建 1 行。

SQL> create or replace procedure ccc
2 (
3 str1 in int,
4 str3 out number
5 )
6 as
7 kc1 number(3);
8 kc2 number(3);
9 begin
10 select k1,k2
11 into kc1,kc2
12 from xuesheng
13 where id=str1;
14 str3:=kc1+kc2;
15 end;
16 /

过程已创建。

SQL> create or replace procedure ddd as
2 str1 number(2);
3 str3 number(4);
4 begin
5 str1:=1;
6 ccc(str1,str3);
7 dbms_output.put_line(str3);
8 end;
9 /

过程已创建。

SQL> set serveroutput on
SQL> begin
2 ddd;
3 end;
4 /
165

PL/SQL 过程已成功完成。

SQL>
dragonl3 2003-10-21
  • 打赏
  • 举报
回复
UP
beckhambobo 2003-10-21
  • 打赏
  • 举报
回复
create procedure get_value(str1 in number,str2 in number,str3 out number)
as
begin
str3:=str1+str2;
end;
/
set serveroutput on
declare
v_str number;
begin
get_value(1,1,v_str);
end;
/

17,377

社区成员

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

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