pl/sql程序语法

1.程序语法:

           declare

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

            begin

                    语句序列   (DML语句)

             exception

                     例外处理语句

              End

2.常量和变量定义

        在程序的声明阶段可以来定义常量和变量

         变量的基本类型就是orcle中的建表时字段的变量如char,varchar2,date,number,boolean,long

栗子

--declare

begin

      dbms_output.put_line(‘hello world‘);

end;

输出结果

hello world

 

2.常量和变量定义

    在程序的声明阶段可以来定义常量和变量。

    变量的基本类型就是 oracle中的建表时字段的变量如 char, varchar2,date

     number, boolean, long),

     定义语法: varl char15;

                  Psal number(9, 2);

      说明变量名、数据类型和长度后用分号结束说明语句。

 

常量定义: married  boolean:=true

引用变量栗子

declare

      pname    varchar2(10)    #声明变量

       page    number(3)   := 20;    #声明常量

begin

      pname  :=  ‘zhangsan‘;     #给变量赋值

       dbms_output.put_line(pname);   #输出变量

       dbms_output.put_line(page);    #输出常量值

end;

 

 

引用变量

       Myname   emp.ename%type;

       引用型变量,即my  name 的类型与emp表中ename列的类型一样

        在sql中使用into来赋值

declare

        pname   myemp.ename%type

begin

        select  t.ename into pname from myemp t where t.empno = 7369;

         dbms_output.put_line(pname);

 

LOOP循环语句栗子

declare

       total   number(4)  :=  0;

begin

       while   total  <= 100   loop

       total  :=  total  + 1;

       dbms_output.put_line(total);

       end  loop;

end;

 

语法2:

       Loop

       EXIT(when   条件)       #跳出循环的条件

       ...

       End  loop

 

栗子:

declare

     total   number(4)  :=  0;

begin

      loop

            exit   when  total  =  100;

            total  :=  total  +  1;

            dbms_output.put_line(total);

       end  loop;

end;

 

5.游标 Cursor

在写java程序中有集合的概念,那么在pl/sql中也会用到多条记录,

这时候我们就要用到游标,游标可以存储查返回的多条数据。

语法:

CURSOR游标名(参数名    数据类型,参数名, 数据类型,)  IS  SELECT语句;

例如: cursor c1 is select ename from emp;

游标的使用步聚:

打开游标:open c1;(打开游标执行查询)

取一行游标的值: fetch c1 into piob(取一行到变量中)

关闭游标:close c1(关闭游标释放资源)

游标的结束方式    exit  when  c1%notfound

注意:上面的 pjob 必须与enp 表中的job列类型一致

 

游标

declare

      prec  emp%rowtype;     --定义记录型的变量

      cursor  c1   is          ---定义游标c1

             select   *   from   emp;   --定义游标

begin

      open   c1;        --打开游标

      loop              --开始循环

           fetch  c1

                  into   prec;    --从游标中取值,取值后游标自动向下移 

             exit   when  c1%notfound;      --退出游标的条件

             dbms_output.put_line(prec.empno  ||  ‘   ‘   || prec.ename);     --这里双||表示字符串的连接

        end   loop;

        close  c1;   --关闭游标

end;

 

 

       

 

pl/sql程序语法

上一篇:MySQL练手记录


下一篇:docker解决mysql索引过长异常