ORACLE存储过程怎么调用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE存储过程怎么调用?相关的知识,希望对你有一定的参考价值。

参考技术A sqlplus或者PL/SQL
SQL窗口
输入(单独调用存储过程):
无参数
EXEC
过程名;
或者
BEGIN
过程名
END;
IN
参数
EXEC
过程名(入参数..);
或者
BEGIN
过程名(入参数...)
END;
OUT参数,IN
OUT参数
variable
绑定变量名
数据类型;
//定义一个变量接收出参数的值;
EXEC
过程名(:绑定变量名);

oracle 怎么调用存储过程

假设一张表paiming 字段name,chengji
存储过程及调用
注:我ORACLE 不是SQL

ORACLE存储过程 以oracle自带例子数据库的表举例
1、

create or replace procedure p
is
cursor c is
select * from emp2 for update;
begin
for v_emp in c loop
if(v_emp.sal <2000) then
update emp2 set sal =sal+1 where current of c ;
elsif(v_emp.sal>=2000) then
delete from emp2 where current of c;
end if;
end loop;
commit;
end;

创建了存储过程不代表运行了存储过程;
运行此存储过程 :
方式一 exec p;
方式二
begin
p;
end;
2、带参数的存储过程
in 相当于程序里的参数,供传入用,在存储过程不能改变其值;
out 相当于程序里的返回值,在存储过程中可以为其赋值传出;
in out 既可以当参数又可以当返回值用;
不带上述说明符默认为in类型;

下例中v_a v_b 为in类型
v_c 为out类型
v_d 为in out 类型

create or replace procedure p(v_a in number,v_b number,v_c out number,v_d in out number)
is
begin
if(v_a > v_b) then
v_c := v_a;
else
v_c := v_b;
end if;
v_d := v_d+1;
end;

---> 调试时:
可以在命令窗口调试,出错时 用show errors 显示出错信息;
可以在plDv中调试;

---> 运行时:
可以在命令窗口运行:
declare
v_a number:=3;
v_b number:=4;
v_c number;
v_d number:=5;
begin
p(v_a,v_b,v_c,v_d);
dbms_output.put_line(v_c);
dbms_output.put_line(v_d);
end;
可以在plDv中调试;
参考技术A 过程名(字段 变量) 就行了啊 参考技术B 你用PL还PD?
还是在程序里调用

以上是关于ORACLE存储过程怎么调用?的主要内容,如果未能解决你的问题,请参考以下文章

qt调用oracle存储过程,该怎么处理

oracle form怎么调用oracle存储过程

请问oracle怎么执行存储过程

oracle中,一个存储过程怎么调用另一个存储过程?

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

sql server 怎么服务器连接调用oracle的存储过程