Oracle存储过程及举例(几种参数情况的存储过程)
来源:互联网 发布:苏州单片机培训班 编辑:程序博客网 时间:2024/06/05 03:35
存储过程
存储过程可以有多个或者零个输入输出参数,但通常没有返回值。存储过程是已经编译好的代码,所以执行效率非常高
存储过程创建语句
举例一个没有参数的存储过程
举例一个带in模式参数的存储过程
参数的方式有三种:指定名称传递;按位置传递;混合方式传递
注意混合方式传递从使用【指定名称传递】的位置开始,后面的参数必须使用【指定名称传递】
举例一个带out模式和in out模式参数存储过程
只有努力不会背叛
博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。
存储过程可以有多个或者零个输入输出参数,但通常没有返回值。存储过程是已经编译好的代码,所以执行效率非常高
存储过程创建语句
create [or replace] procedure 存储过程名 [(输入、输出参数、in/out模式参数)]is/asbeginsentences;[exception sentences;]end 存储过程名;
举例一个没有参数的存储过程
create or replace procedure pro_no_par isbeginupdate employees set salary=salary+100 where employee_id=100;commit;dbms_output.put_line('工资已经调整!!');end pro_no_par;--执行,使用executeexecute pro_no_par;结果:
匿名块已完成工资已经调整!!执行使用匿名块beginpro_no_par;end;匿名块已完成工资已经调整!!
举例一个带in模式参数的存储过程
参数的方式有三种:指定名称传递;按位置传递;混合方式传递
注意混合方式传递从使用【指定名称传递】的位置开始,后面的参数必须使用【指定名称传递】
create or replace procedure pro_in_par( var_1 in nvarchar2, var_2 in number) isbeginupdate employees set salary=salary+var_2 where first_name=var_1;commit;dbms_output.put_line(var_1||'的工资已经增加了'||var_2||'!');end pro_in_par;--执行execute pro_in_par('Steven',100);结果:
匿名块已完成Steven的工资已经增加了100!execute pro_in_par(var_1=>'Steven',var_2=>100);匿名块已完成Steven的工资已经增加了100!execute pro_in_par('Steven',var_2=>100);匿名块已完成Steven的工资已经增加了100!
--举例混合参数输入,后面的参数没有使用【指定名称传递】execute pro_in_par(var_1=>'Steven',100);在行 42 上开始执行命令时出错:execute pro_in_par(var_1=>'Steven',100)错误报告:ORA-06550: 第 1 行, 第 34 列: PLS-00312: 一个定位相关参数没有说明其相关性ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored06550. 00000 - "line %s, column %s:\n%s"*Cause: Usually a PL/SQL compilation error.*Action:
举例一个带out模式和in out模式参数存储过程
create procedure pro_out_par( var_1 in out number, var_2 out employees.first_name%type, var_3 out employees.phone_number%type) isbeginselect first_name,phone_number into var_2,var_3 from employees where employee_id=var_1;end pro_out_par;--执行declare ex_var_1 number;ex_var_2 employees.first_name%type;ex_var_3 employees.phone_number%type;beginex_var_1:=102;pro_out_par(ex_var_1,ex_var_2,ex_var_3);dbms_output.put_line('员工号为'||ex_var_1||'的员工姓名是;'||ex_var_2||',联系电话是:'||ex_var_3);end;结果;
匿名块已完成员工号为102的员工姓名是;Lex,联系电话是:515.123.4569
只有努力不会背叛
博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。
0 0
- Oracle存储过程及举例(几种参数情况的存储过程)
- oracle存储过程举例
- Oracle存储过程及参数理解
- Oracle存储过程及参数理解
- Oracle存储过程及参数理解
- Oracle存储过程及参数理解
- Oracle存储过程及参数理解
- Oracle存储过程及参数理解
- Oracle 存储过程 调用带有 out 参数的存储过程
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- 【[R] 【教程】教你如何读懂线性回归lm的结果summary(判断显著性)[转]】
- @InitBinder注解的使用
- 输出字符串中连续最长的数字串
- 基于Nginx实现10万+并发,你应该做的Linux内核优化
- web.有要求的输入框.随笔
- Oracle存储过程及举例(几种参数情况的存储过程)
- PAT A 1102
- Mongodb重难点解析(二、初步提升)
- 比较小的一些知识点一(关于菜单的创建和资源文件的创建)
- 双飞翼布局
- Linux 常见目录作用
- 转置矩阵
- Android进程间的通信:Mesenger、aidl
- c++ pair和tuple的操作