我是靠谱客的博主 疯狂曲奇,最近开发中收集的这篇文章主要介绍oracle 存储过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

oracle是基于c来做的。

游标   自身特性,有点类似于集合的变量

存储过程,类似于java的方法。在sql中加入过程处理语句。

 

结构

-- Created on 2020/11/04 by IAMEY
declare
--使用的变量在这个地方定义,如果没有变量,这个部分可以省略
-- Local variables here
i integer;
V_Name emp.ename%type;-------推荐使用这样的声明方式
v_emp emp%rowtype;------------全部检索表,抽出全项目的话,可以使用,否则占用空间
因为检索的时候用select * from emp;
begin
-- Test statements here
--业务的处理部分
end;

变量

1,普通变量

2,特殊变量(引用型变量,记录型变量)

     引用型变量  变量类型取决于表的字段的类型

    记录型变量   接受的是一整条记录的值,类似于java中的一个对象。

 

3,声明方式

    变量名   类型 长度

   变量必须赋值之后才可以使用。

  3.1 赋值方式

        3.1.1  直接赋值

        3.1.2    将结果直接赋值

 

4,字符的拼接 用 ||

 

流程控制

if  then 

  elsif   then

 else

end if;

 

循环

begin

      loop

              exit when  条件;

             循环处理;

            循环变量的自增;v_num := v_num + 1;

 

      end loop;

 

游标

    用于存储一个查询的多行数据,循环游标就可以逐行的处理相关数据

 

1,使用方法

    声明    ---》   打开  -----》 读取  ----》 关闭

2, cursor   游标名  is 查询语句;

       open  游标名

 

 

 

3, declare

             ------声明游标

          -------声明接受游标中的数据的变量

   begin

          ---打开游标;---有参数的时候,参数在这个地方传入.

        --遍历游标

        loop

              -- 获取游标的数据

                 fetch  emp into v_name,v_sal;

              --推出游标

               exit when c_emp%notfound;

            --逻辑处理

    end loop;

    

存储过程

前边的处理无法重复的调用.

存储过程就是plsql的业务处理存储起来.称为存储过程.

 

1,创建方法

         create or replace procedure  过程名(参数列表

                                                                   in_empno IN emp.empno%type

                                                                   o_sal OUT emp.empsal%type)  is

       --直接声明遍历不需要declear

v_name emp.ename%type;

 

       begin

 

      end 过程名;

・可以带或不带输入参数或者输出参数.

点击执行的话,将begin和end之间的业务存储起来.

 

2,使用方法

declare

   ---有输出参数的时候定义

v_sal emp.sal%type;

begin

过程名

end ;

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是疯狂曲奇为你收集整理的oracle 存储过程的全部内容,希望文章能够帮你解决oracle 存储过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部