-
本节以java为例来访问存储过程,和存储函数
查看全部 -
存储过程11114
查看全部 -
结论:存储过程完全可以取代自定义存储函数
查看全部 -
包头负责声明,包体负责实现
查看全部 -
调用存储函数
查看全部 -
存储过程的调用
查看全部 -
存储过程与存储函数的具体区别和使用场景
查看全部 -
存储函数必须有返回值
查看全部 -
带输入参数的存储过程
注意:
带参数要指明是输入参数还是输出参数(返回值)
一般不在存储过程或者函数提交或者回滚事务,而是交给调用者去操作事务
查看全部 -
存储过程只能创建或者替换,不能修改,因此语法定义为 create [or replace]
存储过程的demo和两种调用方式
查看全部 -
除此之外,可以认为存储过程和存储函数是一样的!!!
查看全部 -
在应用中访问包的存储过程,需要带上包名,(图)查看全部
-
在out参数中使用光标,包头包体等。
查看全部 -
用pl/sql工具如何便捷创建包头?
查看全部 -
1.创建存储过程:
create or replace procedure queryimg(pstu_id in number,
pstuname out varchar2,
page out varchar2,
pclassid out varchar2) as
begin
select t.stuname,t.age,t.classid into pstuname,page,pclassid from zhaozy.student t where stuid = pstu_id;
end;
2.调用:
declare
pstu_id varchar2(256);
pstuname varchar2(256);
page varchar2(256);
pclassid varchar2(256);
begin
pstu_id := 1;
queryimg(pstu_id => pstu_id,
pstuname => pstuname,
page => page,
pclassid => pclassid);
dbms_output.put_line('pstuname=' || pstuname);
-- :pstuname := pstuname;
dbms_output.put_line('page=' || page);
-- :page := page;
dbms_output.put_line('pclassid=' || pclassid);
-- :pclassid := pclassid;
end;
3.疑问:
:page := page;这里冒号什么作用?
加上之后报错:“ORA-01008 并非所有变量都已绑定”
如果去掉冒号就不会报错,但是输出结果和删除这一句是一样的。
查看全部 -
1.存储函数格式:create or replace function 函数名(参数表)
return 函数值类型
as
PLSQL子程序体;
2.举例return所在位置:
调用如上存储函数,注意奖金字段要转为非空,否则输出结果为空:
3.调用函数:
查看全部 -
例子(建立存储过程,然后用pl/sql程序调用):
---给学号加100
create or replace procedure STU(v_name in varchar) as
p_stu_id pm_stu.stu_id%type;
begin
select stu_id into p_stu_id from pm_stu where stu_name= v_name;
update pm_stu set stu_id = stu_id + 100 where stu_name = v_name;
dbms_output.put_line('涨前:' || p_stu_id || '涨后: ' || (p_stu_id + 100));
end;
select t.*,rowid from zhaozy.pm_stu t;
BEGIN
STU('李四');
rollback;
STU('张三');
commit;
END;
查看全部 -
create or replace PROCEDURE 过程名(参数表)
as PLSQL子程序体;
as 相当于PL/SQL程序中的declare,as不可省略,后面跟说明部分,定义光标变量之类的。
3.如何调用存储过程:
create or replace PROCEDURE sayhello as
begin
dbms_output.put_line('HELLO WORLD');
end;
3.1.调用存储过程:
execute sayhello;
可简写为 exec sayhello;
3.2.通过PLP/SQL 程序调用
BEGIN
sayhello();
sayhello();
END;
查看全部
举报