zoukankan      html  css  js  c++  java
  • Oracle之PLSQL

        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面向过程但比过程语言简单、高效、灵活有用。


  • 相关阅读:
    Java经典编程题50道之四十一
    Java经典编程题50道之四十
    Java经典编程题50道之三十九
    Java经典编程题50道之三十八
    Java经典编程题50道之三十七
    Java经典编程题50道之三十六
    Java经典编程题50道之三十五
    前端学习之路之CSS (一)
    Numpy 01
    Python3 urllib 与 Python2 urllib的变化
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7093503.html
Copyright © 2011-2022 走看看