- 语句块定义:
- decalre
- --变量声明
- var1number(2);--仅声明
- var2char(2):='11';--在声明的同时初始化
- begin
- --语句
- end;--语句块结束
- if 语句
ifa=1orb=2then
elsifc=3else
endif;
case语句如果作为分支控制语句,最后结束语句是end case,如果是作为select语句里的控制语句则只需要end。
declare
numnumber(10):=1;
case
whennum=0thendbms_output.put_line('zero');
whennum=1thendbms_output.put_line('one');
elsedbms_output.put_line('default');
endcase;
casenum
when0when1end;
- for 循环
for循环主要有两个用处。
1、 循环一个范围
格式:for i in [start .. end] loop ... end loop;
foriin0..9loop
dbms_output.put_line('i:'||i);
endloop;
2、遍历隐式游标
隐式游标的好处是不需要手动关闭,方便
forcurrowin(
selectt.col1,t.col2
fromtableNamet
where...
)loop
ifcurrow.col1=0return;--中止sp,返回
endif;
endloop;
isok:=9;
whileisok>=0loop
isok:=isok-1;
ifisok=8continue;--与编程语言的continue语义一样,跳过当前循环的剩余语句,回到循环开始
ifisok=4 exit;--与编程语言的break语义一样,跳出循环
dbms_output.put_line('isok:'||isok);
endloop;
dbms_output.put_line('outsidewhileloop.');
createorreplaceproceduresp_name(
--入参、出参列表,逗号分隔。
uidinvarchar2,--不能带长度信息
startDateindate,0); padding:0px; margin:0px; width:auto; border:0px">--第二个输入参数
defaultvarinvarchar2default"",0); padding:0px; margin:0px; width:auto; border:0px">--默认参数,如果不传,要注意参数的顺序
isokoutnumber,0); padding:0px; margin:0px; width:auto; border:0px">--输出参数
resultoutvarchar2--第二个输出参数
)
as
--变量声明,每个声明用分号结束。可以在声明的同时初始化
var1varchar2(11);
var2number(2):=123;
--字符串拼接用||
dbms_output.put_line('isok:'||'abc');
--调用其他存储过程
sub_sp_name(param1,prarm2,outParam1,outParam2);
--存储过程结束
functionfunc(
returnnumber--定义返回类型
returnret_val;
存储过程与函数异同
1、两者定义类似,都可以带输入输出参数。
2、函数有返回值,存储过程没有。
3、函数的调用要在select语句里;而存储过程不用,可以独立调用。
- 游标
隐式游标
隐式游标的好处是不需要手动关闭,方便
显式游标
integer;
v_event_idnumber(10);
v_isagainnumber(2);
v_ratenumber(2);
v_senderchar(11):='13800138000';
cursorcursorVarisselectevent_id,isagain,ratefromcall_eventwheresender=v_sender;--声明游标
opencursorVar;--打开游标
loop
fetchcursorVarintov_event_id,v_isagain,v_rate;--取值
exitwhencursorVar%notfound;--当没有记录时退出循环
dbms_output.put_line(v_event_id||','||v_isagain||','||v_rate);
closecursorVar;--关闭游标
--游标的属性有:%FOUND,%NOTFOUNRD,%ISOPEN,%rOWCOUNT;
--%FOUND:已检索到记录时,返回true
--%NOTFOUNRD:检索不到记录时,返回true
--%ISOPEN:游标已打开时返回true
--%rOWCOUNT:代表检索的记录数,从1开始
带参数游标
cursorcursorVar(p_sendervarchar2)wheresender=p_sender;opencursorVar(v_sender);--打开游标,在括号里传参。
case 语句
while 循环
存储过程定义
函数定义
- 语句块定义:
- decalre
- --变量声明
- --仅声明
- --在声明的同时初始化
- begin
- --语句
- --语句块结束
- if 语句
then
else
endif;
case语句如果作为分支控制语句,最后结束语句是end case,如果是作为select语句里的控制语句则只需要end。
declare
numnumber(10):=1;
case
thendbms_output.put_line('zero');
thendbms_output.put_line('one');
elsedbms_output.put_line('default');
case;
casenum
end;
- for 循环
for循环主要有两个用处。
1、 循环一个范围
格式:for i in [start .. end] loop ... end loop;
in0..9loop
dbms_output.put_line('i:'||i);
endloop;
2、遍历隐式游标
隐式游标的好处是不需要手动关闭,方便
in(
fromtableNamet
where...
)loop
--中止sp,返回
endif;
endloop;
isok:=9;
whileisok>=0loop
isok:=isok-1;
--与编程语言的continue语义一样,跳过当前循环的剩余语句,回到循环开始
--与编程语言的break语义一样,跳出循环
dbms_output.put_line('isok:'||isok);
endloop;
dbms_output.put_line('outsidewhileloop.');
proceduresp_name(
--入参、出参列表,逗号分隔。
--不能带长度信息
--第二个输入参数
--默认参数,如果不传,要注意参数的顺序
--输出参数
--第二个输出参数
)
as
--变量声明,每个声明用分号结束。可以在声明的同时初始化
var1varchar2(11);
var2number(2):=123;
--字符串拼接用||
dbms_output.put_line('isok:'||'abc');
--调用其他存储过程
aram2);
--存储过程结束
相关文章
Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...