来自:mjsws > 馆藏分类
配色: 字号:
存储过程基础语法解析
2018-09-19 | 阅:  转:  |  分享 
  
存储过程基础语法解析while循环while条件语句loopbeginend;endloop;eg:createorreplac
eproceduretest_whileasnumint;beginnum:=1;whilenum<10loopb
egindbms_output.put_line(''test'');num=num+1;endloop;end;/createo
rreplaceproceduretest_whileasv_idint;beginv_id:=1;whilev_id
<=10loopbegininserintoTESTB_RENAMEvalues(v_id);v_id=v_id+1;en
dloop;end;定义PL/SQL块时需要注意的几点:1、执行部分时必须的,声明部分和异常部分时可以选的2、可以在一个块的执
行部分或者异常处理部分嵌套其他的PL/SQL块。3、所有的PL/SQL块都已END;结束。638棋牌http://www.rodl
g.com实例:定义一个包含声明部分,执行部分,和异常处理部分的PL/SQL块declarev_namevarchar2(10)
;beginselectenameintov_namefromempwhereempno=1000;DBMS_OUT
PUT.PUT_LINE(v_name);exceptionwhenNO_DATA_FOUNDTHENDBMS_OUTPUT.
PUT_LINE(''NODATA'');END;/实例:定义一个只包含执行部分的PL/SQL块beginDBMS_OUTPUT.P
UT_LINE(''NODATA'');end;/实例:定义一个包含子块的PL/SQL块declarev_salnumber(8,
2);v_deptnoint;beginbeginselectdeptnointov_deptnofromempwh
ereEMPNO=7000;end;selectavg(sal)intov_salfromempwhereDEPT
NO=v_deptno;DBMS_OUTPUT.PUT_LINE(v_sal);end;/if判断declarev_numint
;beginv_num:=1;ifv_num<10thenv_num:=v_num+1;DBMS_OUTPUT.PUT_LI
NE(v_num);endif;end;/while+loop循环declarev_numint;beginv_num:=
1;whilev_num<10loopv_num:=v_num+1;DBMS_OUTPUT.PUT_LINE(v_num);e
ndloop;end;/for循环declarev_numint;v_nameint;beginv_num:=10;v_n
ame:=1;foriin1..v_numloopDBMS_OUTPUT.PUT_LINE(v_name);v_name:
=v_name+1;endloop;end;/Oracle中三种循环(For、While、Loop)案例1.ORACLE中的FO
R循环用法(九九乘法表)复制代码1declare2iint:=0;3jint:=0;4begin5foriin
1..9loop6forjin1..iloop7Dbms_Output.put(i||''''||j||''=''||i
j);8dbms_output.put('''');9endloop;10dbms_output.new_line;11e
ndloop;12end;复制代码移动电玩城http://www.44226.net2.ORACLE中的While循环用法
(九九乘法表)复制代码1declare2iint:=1;3jint:=1;4begin5whilei<=9loo
p6j:=1;7whilej<=iloop8Dbms_Output.put(i||''''||j||''=''||ij);9
dbms_output.put('''');10j:=j+1;11endloop;12dbms_output.new_li
ne;13i:=i+1;14endloop;15end;复制代码3.ORACLE中的loop循环用法(九九乘法表)复制代码
1declare2iint:=1;3jint:=1;4begin5loop6loop7Dbms_Output.p
ut(i||''''||j||''=''||ij);8dbms_output.put('''');9j:=j+1;10exitw
henj>i;11endloop;12dbms_output.put_line('''');13i:=i+1;14j:=1
;15exitwheni>9;16endloop;17end;复制代码一、returning语句如果要查询当前DML
语句操作的记录信息,可以在DML语句末尾使用returning语句返回记录的信息。returning语句的基本语法和select.
.into相似。returningsalaryintovar1;declarevar_noemp.sal%type;beg
inupdateempsetsal=sal+10000whereempno=7000;returningsalint
ovar_no;dbms_output.put_line(var_no);end;/二、IF语句三、CASE语句四、简单循环LO
OP循环:declarev_countint:=1;beginloopdbms_output.put_line(v_count
);v_count:=v_count+1;exitwhenv_count>20;endloop;end;/while循环:w
hilev_cunt<20loopdbms_output.put_line(v_count);v_count:=v_count
+1;endloop;FOR循环:FORcounterin[REVERSE]low..highloop使用for循环需
要注意的事项:1、循环变量不需要显示的定义系统隐含的将它定义为binary_interger变量。2、系统默认循环变量时从小到大增
加1,如果加入[reverse]参数则会变成递减。3、循环变量只能在循环体中使用不能在循环体外使用。beginforv_cin
1..20loopdbms_output.put_line(v_c);endloop;end;/五、跳转结构gotocas
e语句casevar1when10thenvar:=100;when20thenvar:=200;endcase;
六、游标为了处理select语句只能怪返回多行数据的情况,在oracle11g中恶意使用游标处理多行数据。天地棋牌http://
www.dadiqipaigw.cn也可以使用select...bulkcollectinto语句处理多行数据。显式游标:由用户定义、操作,用户处理返回多行数据的select查询。隐式游标:由系统自动进行操作,用于DML语句和返回单行数据的select查询。定义游标>打开游标>检索游标>是否为空>关闭游标
献花(0)
+1
(本文系mjsws首藏)