oracle存储过程调用
1. 在oracle中 存储过程如何调用存储过程
如果是在三层中的话,把DAL、BLL写出来,然后在Web层中调用BLL中的方法,就这样。。
2. 请问oracle怎么执行存储过程
我试验过了,就是exec 存储过程名或者execute 存储过程名(参数),请你在仔细确认一下,你的存储过程名写没写对呀,或者你没有进入sqlplus中?
----
以上,希望对你能有帮助。
3. oracle的存储过程的调用和写法
存储过程的执行方法如下
/*****************************************************************
oracle pl/sql中新建一个"测试"窗口,键入以下值测试oracle存储过程。
dbms.output.put_line(param)为打印消息,类似jsp的out.println(),
用于在过程中查看错误地方,可以在过称中添加。
*****************************************************************/
declare
param varchar2(10);
begin
param :='week';--这是你的输入参数
proc_rpt_result(param);
dbms_output.put_line(param);--这是过程处理打印结果
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是我前段时间自己查资料总结的,都是初学者 希望对你有用
cursor是游标类型,前面某个查询的值有多个返回 如
select xx from xxx 有多个返回值xx存入游标cursor,下面的open打开游标,对每一个游标的值按顺序进行操作,你可以把游标看成是一个数组,select存入,open取出,你这个包我看不懂。
4. oracle如何在函数中调用存储过程
函数中调用存储过程报错,多半是由于函数的执行用户,没有授权insert 权限。
5. 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;
6. oracle存储过程调用其他过程
直接在 程序中,返回 r_xml 语句之前 直接加一条赋值语句就OK了,
r_xml := r_xml1 || r_xml2;
7. oracle存储过程里调用存储过程
存储过程里直接新起一行写b(c,d);就可以,不在存储过程中单独执行时要call b(c,d);
8. 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.
9. 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中调试;