|
存储过程基础语法解析 |
|
|
存储过程基础语法解析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查询。定义游标>打开游标>检索游标>是否为空>关闭游标 |
|
|
|
|
|
|
|
|
|
|