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

调用oracle存储过程

发布时间: 2023-01-08 12:01:23

Ⅰ 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.

Ⅱ 如何调用ORACLE程序包中的存储过程

pl/sql里,select
语句必须接into
,不接into那就得返回一个游标出去,比如
create
or
replace
package
test_package
is
procere
query_test(num
number,po_cursor
out
sys_refcursor);
end
test_package;
create
or
replace
package
body
test_package
is
procere
query_test(num
number,po_cursor
out
sys_refcursor)
is
begin

select
unitname,tradetype,workernumber

from
test

where
income=num;
end
query_test;
end
test_package;

Ⅲ oracle数据库调用存储过程

这个需要分情况的
如果是在应用程序(java等)中调用存储过程,需要根据相应语言的语法来进行。这个可以通过查找相应语言的帮助来找到。
如果是在Oracle的其他存储过程中调用,直接写存储过程名就可以了。传入相应的参数,即可执行。
如果在Oracle的命令行中,使用EXEC
存储过程名(参数)
的方式即可调用。
如果存储过程执行的语句写在SQL文件中,则可以通过调用文件的方式执行,即
SQL>
@D:\SQL\example.sql的形式

Ⅳ 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中,一个存储过程怎么调用另一个存储过程

已经有人回答的很专业了!x0dx0a原则就是:你要调用哪个存储过程,就要为该存储过程传入它需要的参数x0dx0a它定义的几个,你就传入几个x0dx0a当然参数的类型要对应上。x0dx0a还有就是如果一个存储过程中定义了out类型的参数,当你在调用它的时候,这个out类型的参数也要参入,看它定义的是什么类型的out参数。然后定义一个该类型的变量,传入进去,用于接收存储过程返回的值。然后用这个值,去做下面的逻辑。

Ⅵ oracle数据库存储过程之后的调用

在Oracle中用pl/SQL代码块就可以调用存储过程,如下:

begin
-- Call the procere
test(is_year_id => :is_year_id,
is_district_id => :is_district_id,
is_district_sub_id => :is_district_sub_id,
is_district_level => :is_district_level,
os_meg => :os_meg,
os_code => :os_code);
end;

参数如果都是输入参数给常量就可以 如果有输出型参数,你就得声明变量,然后传进去,如:
declare
声明变量
begin
-- 调用过程 把输出弄参数用变量传进去 过程调用后解析这个变量值就行了
end;

看了上次给你改的过程,如果要调用那个过程的话可以这么写:
declare
flag number(1);
begin
-- 调用过程 把输出弄参数用变量传进去 过程调用后解析这个变量值就行了
_Login(flag ) ;
--根据你的需要对flag的值不同去做不同的事情
if flag=1 then
--写你要处理的内容
end if;
end;

Ⅶ 如何使用java语言调用oracle存储过程

1.api上的方法为 Connection.prepareCall(java.lang.String)
2.prepareCall(String sql)
throws SQLException
参数:sql - 可以包含一个或多个 '?' 参数占位符的 SQL 语句。通常此语句是使用 JDBC 调用转义语法指定的。
3.JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。分别为:
{?= call <procere-name>[(<arg1>,<arg2>, ...)]}
{call <procere-name>[(<arg1>,<arg2>, ...)]}

4.示例,无返回值调用:Connection.prepareCall({ call p_test(p1,p2)})

Ⅷ oracle 函数中能调用存储过程吗

oracle 函数中能调用存储过程,举例如下:

1、无参数存储过程的调用

--创建无参存储过程
CREATEORREPLACEFUNCTIONstu_procRETURNVARCHAR2IS
--声明语句段
v_namevarchar2(20);
BEGIN
--执行语句段
SELECTo.snameINTOv_nameFROMstudentowhereo.id=1;
RETURNv_name;
END;

--调用无参存储过程
DECLARE
BEGIN
DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc);
END;

2、入参存储过程的调用

--创建入参存储过程
CREATEORREPLACEFUNCTIONstu_proc(v_idINNUMBER)RETURNVARCHAR2IS
--声明语句段
v_namevarchar2(20);
BEGIN
--执行语句段
SELECTo.snameINTOv_nameFROMstudentowhereo.id=v_id;
RETURNv_name;
END;

--调用入参存储过程
DECLARE
BEGIN
DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc(1));
END;

Ⅸ 请问oracle怎么执行存储过程

我试验过了,就是exec 存储过程名或者execute 存储过程名(参数),请你在仔细确认一下,你的存储过程名写没写对呀,或者你没有进入sqlplus中?

----
以上,希望对你能有帮助。

热点内容
安卓删掉的软件怎么修复 发布:2025-07-27 01:29:29 浏览:445
缓存的月末 发布:2025-07-27 01:29:28 浏览:837
电脑一周不用邮箱连接不到服务器 发布:2025-07-27 01:07:34 浏览:449
手指速算法二 发布:2025-07-27 01:07:30 浏览:701
苹果压缩z 发布:2025-07-27 01:05:54 浏览:471
哪些设备需要双重化配置保护 发布:2025-07-27 01:03:37 浏览:363
javawsdlwebservice 发布:2025-07-27 00:59:23 浏览:326
多项式求和的存储表达方式画图 发布:2025-07-27 00:57:45 浏览:729
铝压缩曲线 发布:2025-07-27 00:48:16 浏览:564
修改ftp主动模式 发布:2025-07-27 00:48:01 浏览:857