Oracle之PLSQL

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010858791/article/details/46933357

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)它是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算,使SQL语言具有过程处理能力。PL/SQL 只有 Oracle 数据库有。

   一个PL/SQL程序结构

       declare

            说明部分   (变量说明,光标申明,例外说明)

       begin

            语句序列    (DML语句)……

       exception

            例外处理语句

       end;

  这里说一下变量的问题:

       var1        char(15);--说明变量名、数据类型和长度后用分号结束说明语句。

       married     boolean:=true;--用“:=”表示等号“=”,用“=”表示“==”。

       my_name     emp.ename%type;--引用型变量,即my_name的类型与emp表中ename列的类型一样

       emp_rec     emp%rowtype;--记录型变量

   记录型变量分量的引用:emp_rec.ename:='adams';

   一个例子演示下PLSQL:按员工的工种涨工资,总裁1000元,经理800元,其他人涨400元。

   

declare
  cursor cemp is select empno,empjob from emp;
  pempno emp.empno%type;
  pjob   emp.empjob%type;
begin
  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 = 'MANAGER' 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;  
  
  commit;
  
  dbms_output.put_line('完成');
end;
/
  没涨之前:

  涨之后:


    把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单、高效、灵活实用。


没有更多推荐了,返回首页