PL/SQL(三)

来源:互联网 发布:js删除tbody中的tr 编辑:程序博客网 时间:2024/05/30 02:24
定义数组(装的是一行类型)declaretype ma is table of varchar2(20) index by binary_integer;may ma;beginmay(1):='嘿嘿';may(2):='哈哈';dbms_output.put_line(may(1)||chr(9)||may(2));end;/

 

For循环 直接执行 open  fetch close  直接输出declarecursor rs is select * from emp;beginfor r in rs loopdbms_output.put_line(r.ename);end loop;end;

 

把emp表放入数组中...declaretype list is table of emp%rowtype index by binary_integer;l list;cursor rs is select * from emp;v_count int:=0;beginfor i in rs loopv_count:=v_count+1;l(v_count):=i;end loop;for i in 1..v_count loopdbms_output.put_line(l(i).empno||chr(9)||l(i).ename);end loop;end;

 

输入部分编号显示部门名称 所在地 部员名declarecursor rs(v_empno emp.empno%type) is select dname,loc,ename,empno from emp,dept where emp.deptno=dept.deptno and empno=v_empno;v_empno emp.empno%type;v_dname dept.dname%type;v_loc dept.loc%type;v_empn emp.empno%type;v_emp emp%rowtype;beginfor i in rs(&empno) loopdbms_output.put_line(i.ename||chr(9)||i.loc||chr(9)||i.dname);end loop;end;

 

输入部门编号 查询 所在地 和 员工名declarecursor rs(v_deptno emp.deptno%type) is select dname,loc,ename from emp natural join dept where deptno=v_deptnobeginfor r in rs(&deptno) loopdbms_output.put_line(r.dname||chr(9)||r.loc||chr(9)||r.ename);end loop;end;/

 

锁定当前行 current of cur_score;没家where 条件的话修改所有 值declare cursor cur_score is select rowid,grade from score for update;begin for r in cur_score loop if r.grade=72 then  update score set grade=83 where current of cur_score; elsif r.grade=83 thenupdate score set grade=95;elsif r.grade=95 thenupdate score set grade=100 where current of cur_score;end if;end loop;end;结果:95  95 100这里 先执行 缓存中的内容.. current of 就是和 缓存中的行 像对应  然后从上到下执行sql语句执行完缓存里所有 数据之后 才保存到 数据库中..
游标变量1、声明游标名 sys_refcursor;2、打开 open 游标名 for 查询语句;3、提取fetch 游标名 into 变量;4、关闭 close 游标名;查询dept表内容查询 dname ename loc 内容declarers sys_refcursor;v_dept dept%rowtype;v_ename emp.ename%type;v_dname dept.dname%type;v_loc dept.loc%type;beginopen rs for select * from dept;loopfetch rs into v_dept;exit when rs%notfound;dbms_output.put_line(v_dept.deptno||chr(9)||v_dept.dname||chr(9)||v_dept.loc);end loop;close rs;dbms_output.put_line('-----------------------------------------------');open rs for select ename,dname,loc from emp,dept where emp.deptno=dept.deptno;loopfetch rs into v_ename,v_dname,v_loc;exit when rs%notfound;dbms_output.put_line(v_ename||chr(9)||v_dname||chr(9)||v_loc);end loop;close rs;end;
 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信支付密码忘了怎么办没银行卡 中行5月扣很多钱是怎么办 中银淘宝校园卡影响征信问题怎么办 中银E盾快到期了怎么办 京东e卡电子卡卡密泄漏怎么办 买错了京东e卡怎么办 京东购买手机激活后有问题怎么办 优购m9锁屏密码忘记了怎么办视频 中百仓储的购物卡过期了怎么办 武汉中百超市购物卡过期怎么办 已认证抵扣的发票发生退货怎么办 京东白条分期买手机额度不够怎么办 京东白条闪付手机不支持开通怎么办 拼多多不小心下两次单付款了怎么办 不小心给了京东快递差评怎么办 京东金融不小心卸载了怎么办 如果京东快递不小心完成订单怎么办 订机票时没有用常旅客卡怎么办 京东退货退款卖家已签收了怎么办 京东账号手机号换了密码忘了怎么办 qq飞车手游录像下载失败怎么办 手机知道qq号怎么破解密码怎么办 网上购物已付钱迟迟不发货怎么办 有人冒充微信头像和熟人借钱怎么办 微信红包输了50多万怎么办 脖子里的绳结接口磨脖子怎么办 母比格犬生了小狗毛色变了怎么办 母比格犬生了小狗毛色很差怎么办 貂皮大衣上的暗扣掉了怎么办 呢子夹克袖子长但又不想改短怎么办 黑色的衣服熨的有点发亮怎么办 宿管阿姨工作中与学生起冲突怎么办 中通快递发的衣服不合适怎么办 加盟母婴店如果不干了货怎么办 双十一搞活动买的东西退货怎么办 天猫预售30天不发货怎么办 天猫搞活动的商品总不发货怎么办 淘宝买的东西物流把货物损坏怎么办 苹果手机5s每部存满怎么办 天猫退货分开发货退的话怎么办 淘宝优惠券电脑端显示不出来怎么办