PL/SQL(五):存储过程
来源:互联网 发布:用流量看淘宝费流量吗? 编辑:程序博客网 时间:2024/05/21 15:40
一、存储过程
用途
用于执行某项操作,命名的 PL/SQL 块,能够接受传递的参数,能够被调用。
简述
命名的PL/SQL块
能够接受参数
能够被重复调用
用于执行某项操作
存储在数据库中
二、过程的参数
有三种
1、in 模式
默认模式
可以传递常量或变量
在过程内部,不能赋常量
允许有默认值,如:p_id in number default 7369
2、out 模式
调用时,必须用变量,但会忽略变量值
调用结束后,对变量赋值
3、in out 模式
传入参数值,并可以返回改变的值
备注:
不能限制参数中数据类型的大小
out和in out 参数不允许有默认值
四、代码示例
1、in 模式
参数模式说明: in , 输入模式,默认是in . 表示接收值,在过程代码中不能再赋值.
create or replace procedure param_test_in(num1 int,num2 in int )asbegin -- in 模式的参数,接收到值之后变为常量,不能赋值。 dbms_output.put_line(num1+num2);end param_test_in;declare n1 int; n2 int;begin param_test_in(10,20); --给in模式参数传常量值 n1 := 100; n2 := 200; param_test_in(n1,n2); --给in模式参数传递变量end;
2、out 模式
参数模式说明:out , 输出模式. 表示输出值,在过程代码中,可以重新赋值.调用时,必须用变量调用.
create or replace procedure score_proc( p_score in T_SCORE.EXAM_SCORE%type, p_mes out varchar) is v_score T_SCORE.EXAM_SCORE%type; begin select avg(T_SCORE.EXAM_SCORE) into v_score from T_SCORE; if(p_score>v_score) then p_mes := '分数超过平均分'; else p_mes := '分数不超过平均分'; end if; end score_proc;declare score real := 74.0; mes varchar(200);begin score_proc(score,mes); dbms_output.put_line(mes); end;
3、in out 模式
1)必须要用变量调用
2)过程可以获取到输入变量的值,
3)过程中变量可重新赋值.
4)过程执行完,也会输出值给调用时的变量.
4、其他常用语句
--命令行中,查看过程的错误.show errors PROCEDURE sal_proc;--删除过程drop procedure sal_proc;--授予权限 --1)直接授权grant select on emp to system; -- 表名 emp,用户名 system --2)间接授权grant execute on sal_proc to system; --存储过程 sal_proc,用户名 system--查看用户对象中的procedure和function中的对象名、对象类型 和 状态SELECT object_name, object_type,statusFROM user_objectsWHERE object_type in ('PROCEDURE','FUNCTION')ORDER BY object_name;--查看类型为【过程】的源代码,大写SELECT *FROM user_sourceWHERE type = 'PROCEDURE';
- PL/SQL(五):存储过程
- PL/SQL(五):存储过程
- pl/sql 存储过程
- PL/SQL --> 存储过程
- PL/SQL存储过程
- PL/SQL存储过程
- Pl/sql 存储过程
- PL/SQL --> 存储过程
- PL/SQL调试存储过程
- PL/SQL存储过程编程
- PL/SQL存储过程编程
- 关于PL/SQL---存储过程
- PL/SQL存储过程习题
- PL/SQL调试存储过程
- pl/sql 存储过程实例
- PL/SQL 调试存储过程
- PL/SQL存储过程编程
- oracle PL/SQL 存储过程
- linux 进程调度
- C#对话框 文件路径
- Qt调用jrtplib实现单播、多播和广播
- 开发的应用程序启动不了
- javascript数字插入
- PL/SQL(五):存储过程
- Java基础——多态
- 简单添加host配置到jvm默认的dns查询缓存中
- 代理及动态代理
- ExtJs学习笔记(四)——动态修改store属性
- hdoj 1337
- onvif协议规范
- 消息中间件介绍
- python列表