您的位置:首页 > 数据库 > Oracle

Oracle笔记 八、PL/SQL跳转/判断/循环语句块

2011-05-03 15:37 316 查看
[code]--goto跳转语句
--在goto后,跳转到相应的语句,然后执行该语句和后面所有语句
begin
dbms_output.put_line('goto开始了');
gotoc;
--不被执行
dbms_output.put_line('goto');
dbms_output.put_line('goto');
dbms_output.put_line('goto');
dbms_output.put_line('goto');
<<a>>
dbms_output.put_line('gotoaaa');
<<b>>
dbms_output.put_line('gotobbb');
<<c>>
dbms_output.put_line('gotoccc');
end;
--PL/SQL中的sql和rowcount属性:sql代表最近执行的sql语句,rowcount代表最近执行的sql语句影响的行数
declare
vCountnumber;
vDeptnodept2.deptno%type:=10;
begin
--selectcount(*)intovCountfromdept2;
--updatedept2setdname=dname||'~.~'wheredeptno=vDeptno;
--deletefromdept2wheredeptno=40;
insertintodept2select*fromdept;
dbms_output.put_line('count:'||vCount);
dbms_output.put_line(sql%rowcount||'行受影响');
end;
--PL/SQL执行sql语句
begin
executeimmediate'createtabletempasselect*fromdept';
end;
--动态sql,把sql语句放到变量中并传递参数
declare
sqlstrvarchar2(100);
begin
sqlstr:='insertintoscott.deptvalues(12,:1,:abc)';
--变量是按照占位符顺序插入的
executeimmediatesqlstrusing'教务部','武汉';
end;
select*fromscott.dept;
--动态sql,把查询结果赋值给变量
declare
dept_row_datascott.dept%rowtype;
sqlstrvarchar2(100);
begin
sqlstr:='select*fromscott.deptwheredeptno=11';
executeimmediatesqlstrintodept_row_data;
dbms_output.put_line(dept_row_data.deptno);
end;
--if语句
--select*fromemp;
declare
vSalemp.sal%type;
begin
selectsalintovSalfromempwhereempno=7566;
if(vSal<1200)then
dbms_output.put_line('小于1200');
elsif(vSal<2000)then
dbms_output.put_line('小于2000');
else
dbms_output.put_line('大于2000');
endif;
end;
--loop循环
declare
ibinary_integer:=10;
begin
loop
dbms_output.put_line(i);
i:=i-1;
exitwhen(i<1);
endloop;
end;
--while循环
declare
ibinary_integer:=1;
begin
whilei<11loop
dbms_output.put_line(i);
i:=i+1;
endloop;
end;
--for循环
begin
foriin1..10loop
dbms_output.put_line(i);
endloop;
foriinreverse1..10loop
dbms_output.put_line(i);
endloop;
end;
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: