当前位置:首页 » 存储配置 » oracle存储过程中调用存储过程

oracle存储过程中调用存储过程

发布时间: 2022-08-12 19:39:57

⑴ Oracle 存储过程调用存储过程

没有看到定义REPORTEVERYDETAIL1

同时REPORTEVERYDETAILG 是存储过程,不是函数

b:=REPORTEVERYDETAILG () 也有问题

你最好把这些存储过程度放到一个包中建立

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

在存储过程A的begin,end之间你想要的位置,直接用存储过程B就可以了啊…………

⑶ oracle 怎么调用存储过程

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

create or replace procere 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 procere 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中调试;

⑷ oracle中怎么在存储过程中调用同一个包的其他存储过程

在存储过程或函数里调用oracle包的话,首先要有执行这个包的权限;如果包属于其他的用户(不是系统包),调用时:用户名.包名.存储过程(参数)名或者
变量:=用户名.包名.函数(参数);因为函数有返回值,变量类型要跟函数返回值的类型一致。
在command
下调用的话:exec
用户名.包名.存储过程名(参数);select
用户名.包名.函数名(参数)
from
al;就可以了。包属于当期用户可以不写用户名。

⑸ 在oracle中 存储过程如何调用存储过程

在存储过程中直zd接使用就行了
--创建回一个存储答过程
CREATE
OR
REPLACE
PROCEDURE
PR_NEW1
(N_NAME
VARCHAR2)
as
begin
DBMS_OUTPUT.PUT_LINE(N_NAME);
end
;
--在另一个存储过程中调用
CREATE
OR
REPLACE
PROCEDURE
PR_NEW2
as
begin
PR_NEW1('NAME');
---
end
;

⑹ oracle存储过程里调用存储过程

存储过程里直接新起一行写b(c,d);就可以,不在存储过程中单独执行时要call b(c,d);

⑺ oracle 存储过程中调用存储过程

一个带参数的存储过程。
SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (
2 p_user_name VARCHAR2
3 ) AS
4 BEGIN
5 dbms_output.put_line('Hello ' || p_user_name || '!');
6 END HelloWorld1;
7 /

Procere created.

SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 调用存储过程的 存储过程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /

Procere created.

执行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!

PL/SQL procere successfully completed.

热点内容
狐狸视频源码 发布:2025-01-09 17:56:27 浏览:442
javaif或条件 发布:2025-01-09 17:51:22 浏览:295
编程二级证 发布:2025-01-09 17:41:48 浏览:534
强化配置后面用什么词组 发布:2025-01-09 17:37:01 浏览:394
苹果怎样解压缩文件 发布:2025-01-09 17:12:32 浏览:444
同方存储 发布:2025-01-09 17:04:30 浏览:800
网络连接一般什么密码 发布:2025-01-09 17:04:30 浏览:394
脸书的账号密码在哪里 发布:2025-01-09 16:59:16 浏览:192
台湾服务器怎么选云空间 发布:2025-01-09 16:50:06 浏览:442
防走失牵引绳密码如何找回 发布:2025-01-09 16:39:14 浏览:707