首页 / ORACLE / oracle之存储过程
oracle之存储过程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle之存储过程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2528字,纯文字阅读大概需要4分钟。
内容图文
or replace procedure procedure_name( v1 varchar2, v2 in varchar2, v3 out number) as v4 number; v_Sql long; begin v4:=201801; v_slq:=‘ select * from dual where month_id=‘‘‘||v4||‘‘‘ ‘; execute immediate v_sql; dbms_output.put_line(‘v4:‘||v4); end;结构
1.create or replace procedure procedure_name:
创建存储过程,replace为替换原过程。如果创建新过程,而该过程已经存在,不加replace会报错
2.参数列表定义
参数名和参数类型。参数名不能重复,参数类型不需要长度,参数传递方式:IN, OUT, IN OUT
IN 表示输入参数,按值传递方式。
OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
IN OUT 即可作输入参数,也可作输出参数。
3.内部变量
as后课定义内部变量,这里声明的变量必须指定宽度。遵循PL/SQL的变量声明规范。
4.过程语句块
从begin开始为过程语句块,这里执行整个过程的逻辑运算。
5.异常处理块
关键字为exception ,为处理语句产生的异常。该部分为可选
6.结束块
由end关键字结果。
过程语句块
这里是所有具体逻辑实现的部分
1.变量赋值
:=
判断语句
if 比较式 then 语句1;
else 语句2;
end if;
3.sql语句的执行
execute immediate v_sql
这里v_sql可以直接写成sql语句,也可以定义一个long格式变量,然后赋值sql语句。
其中v_sql中调用变量要写成‘||varchar||’格式,如果是一个字符串调用,则为‘‘‘||varchar||’‘‘(三个引号,第二个为转义符)。
4.输出
dbms_output.put_line
执行
方法一
begin
procedure_name();
end;
方法二
execute procedure_name();
游标
通常在过程里或者调用过程时都会涉及到循环,这时就会用到游标。
定义游标
cursor c_postype is select pos_type,description from pos_type_tb1 where rownum < 6;
打开游标
open c_postype
启用游标
fetch c_postype into a;
关闭游标
close c_postype
循环方法1
loop fetch c_postype into v_postype,v_description; exit when c_postype%notfound; ... end loop;
循环方法2
fetch c_postype into v_postype,v_description; while c_postype%found loop ... fetch c_postype into v_postype,v_description; end loo;
循环方法3
for v_pos in c_postype loop v_postype := v_pos.pos_type; v_description := v_pos.description; ... end loop;
从上面三种循环可以看出,for循环是比较简单实用的方法。
首先,它会自动open和close游标。解决了你忘记打开或关闭游标的烦恼。
其次,自动定义了一个记录类型及声明该类型的变量,并自动fetch数据到这个变量中。
我们需要注意v_pos 这个变量无需要在循环外进行声明,无需要为其指定数据类型。 它具体的结构是由游标决定的。
oracle之存储过程
标签:参数 开始 数列 判断语句 结构 ... varchar 输出参数 值传递
本文系统来源:https://www.cnblogs.com/dangjf/p/10077175.html
内容总结
以上是互联网集市为您收集整理的oracle之存储过程全部内容,希望文章能够帮你解决oracle之存储过程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。