pl/sql程序语法,存储过程, orcle服务

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;

存储过程

           procedure_name:存储过程的名字,在前面加#为局部临时存储过程,加##为全局存储过程

          number:是可选的整数,用来对同名的过程分组,以便用一条drop procedure

         语句即可将同组的过程一起除去,例如,名为orders的应用程序的过程可以命名为orderpro;1`orderpro;2等

          orcle很占内存,所以在开关机时服务也会关闭,重新启动要手动的开启两个服务

          oracleServiceORCL和Oracle-OraDb10g_home1TNSListencer

       

原文地址:https://www.cnblogs.com/simpledu/p/14399109.html