为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle数据库开发必备利器之PL/SQL基础

难度初级
时长 3小时22分
学习人数
综合评分9.57
114人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.5 逻辑清晰
  • 更新数据后需要commit;
    查看全部
  • "/"退出编辑环境
    查看全部
  • for loop
    查看全部
  • loop
    查看全部
  • while
    查看全部
  • 光標的例子2, 給員工漲工資: -------------------------------------------------- --給員工漲工資,總裁1000,經理800,其他400 set serveroutput on declare --定義光標代表給哪些員工漲工資 --alter table "SCOTT"."EMP" rename column "JOB" to empjob cursor cemp is select empno,empjob from emp; pempno emp.empno%type; pjob emp.empjob%type; begin --回退剛才漲的工資(之前沒加commit運行了腳本,避免影響) rollback; --打開光標 open cemp; loop fetch cemp into pempno,pjob; exit when cemp%notfound; --判斷員工的職位 if pjob='PRESIDENT' then update emp set sal=sal+1000 where empno=pempno; elsif pjob='MANAFER' then update emp set sal=sal+800 where empno=pempno; else update emp set sal=sal+400 where empno=pempno; end if; end loop; --關閉光標 close cemp; --對於oracle,默認的事物隔離級別是read committed --事物的ACID(原子性、一致性、隔離性、持久性) commit; dbms_output.put_line('漲工資完成'); end; / -----------------------------------------------
    查看全部
  • Cursor的第一個實例/例子 --查詢並打印員工的姓名和薪水 /* 光標的屬性: (共有四種, 這裡介紹兩種) 1.%found 2.%notfound */ set serveroutput on declare --定義一個光標 cursor cemp is select ename,sal from emp; --為光標定義對應的變量(引用變量) pename emp.ename%type; psal emp.sal%type; begin --打開光標 open cemp; loop --抓取一條記錄 fetch cemp into pename,psal; exit when cemp%notfound; dbms_output.putline(pename||'的薪水是'||pssal); end loop; --關閉光標 close cemp; end; /
    查看全部
  • Cursor 裡的 Fetch 的作用
    查看全部
  • 1.光標(游標):就是一個結果集(Result Set) 2.如果你要在PL/SQL中使用集合(一般的變量定義, 是定義不出集合的喔) ---->>> 就要使用光標
    查看全部
  • Too_many_rows (select....into语句匹配多个行) declare pename emp.ename%type; begin select ename into pename from emp where deptno = 10; exception when too_many_rows then dbms_output.put_line('select into 匹配了多个行'); when others then dbms_output.put_lines('其他异常');
    查看全部
  • 捕获例外 set serveroutput on declare pename emp.ename%type; begin select ename into pename from emp where empno=1234; exception when no_data_found then dbms_output.put_line('没有找到该员工'); when othes then dbms_output.put_line('其他例外'); end; /
    查看全部
  • 带参数的光标 cursor cemp (dno number) is select ename from emp where deptno =dno beigin open cemp(10); loop fetch cemp into pename; exit when cemp%notfound; dbms_output.put_line(); end loop close cemp end
    查看全部
  • cursor 属性: %found %notfound %isopen %rowcount cursor 使用: corsor demo is select empno,empjob from emp; pempno emp.empno%type; pjob emp.empjob%type; begin --打开光标 open demo; loop fetch demo into pempno,pjob; exit when demo%notfound;-- 比对判断 dbms_output.put_line(''||pjob); end loop; close demo; end; /
    查看全部
  • --自定义例外:查询50号部门的员工姓名 set serveroutput on declare --定义光标,代表50号部门的员工姓名 cursor cemp is select ename from emp where deptno = 50; pename emp.ename%type; --自定义意外 no_emp_found exception; begin open cemp; fetch cemp into pename; if cemp%notfound then --抛出意外 raise no_emp_found; end if; close cemp; exception when no_emp_found then dbms_output.put_line('XXXX'); when others then dbms_output.put_line('YYYY'); end; /
    查看全部
    0 采集 收起 来源:自定义例外

    2016-02-13

  • 自定义例外可以当作变量来处理 注意!关闭光标时,应该在抛出异常前,没有正确关闭(因为抛出异常时直接跳转到when语句),但是oracle有一种机制,启动一个进程pmon(process monitor)关闭光标,收拾内存垃圾
    查看全部
    0 采集 收起 来源:自定义例外

    2016-02-13

举报

0/150
提交
取消
课程须知
亲,要学习本门课程只需要熟练使用Oracle的SQL语句就可以了,可以参考慕课网的课程《Oracle数据库开发必备利器之SQL基础》呦!
老师告诉你能学到什么?
1、能够熟练掌握PL/SQL的基本语法 2、能够熟练使用光标和例外 3、能够熟练使用PL/SQL进行开发

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!