`
gallop_liu
  • 浏览: 109351 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

oracle 存储过程入门

阅读更多

 

1、创建存储过程

create or replace procedure test(var_name_1 in type,var_name_2 out type) as

--声明变量(变量名 变量类型)

begin

--存储过程的执行体

end test;

2、变量赋值

变量名 := 值;

E.g:

create or replace procedure test(workDate in Date) is

x number(4,2);

 begin

 x := 1;

end test;

3、判断语句:

if 比较式 then begin end; end if;

E.g

create or replace procedure test(x in number) is

begin

        if x >0 then

         begin

        x := 0 - x;

        end;

    end if;

    if x = 0 then

       begin

        x: = 1;

    end;

    end if;

end test;

 

4、For 循环

For ... in ... LOOP

--执行语句

end LOOP;

(1)循环遍历游标

create or replace procedure test() as

Cursor cursor is select name from student; name varchar(20);

begin

for name in cursor LOOP

begin

 dbms_output.putline(name); 

end;

end LOOP;

end test;

 

第一次写oracle存储过程,在此记录,以当查看,代码如下:

------------------------------------------------------

create or replace procedure p_data_send is
       Cursor sendList is
       SELECT e.state, s.privilege, s.timeOut,e.equipId ,s.sendInterval  FROM t_equip e, t_data_send s
              WHERE e.equipId=s.equipId AND s.prevId=0 AND s.state=1 AND s.timeOut< sysdate;
       v_equipState t_equip.state%type;
       v_privilege  t_data_send.privilege%type;
       v_timeOut    t_data_send.timeout%type;
       v_equipId    t_equip.equipid%type;
       v_sendInterval t_data_send.sendinterval%type;
       i           number;
begin
  open sendList;
  for i in (select count(1) from t_equip e, t_data_send s WHERE e.equipId=s.equipId AND s.prevId=0 AND s.state=1 AND s.timeOut< sysdate) loop
    begin
      fetch sendList into v_equipState,
                        v_privilege,
                        v_timeOut,
                        v_equipId,
                        v_sendInterval;
      if v_equipState = 0 then
         UPDATE t_data_send s SET s.state=0,s.privilege=(v_privilege+20),
            s.timeout=sysdate+ v_sendInterval/24/60/60 WHERE s.equipid=v_equipId;
      else
         DELETE   FROM t_data_send s   WHERE s.equipid=v_equipId;
      end if;
      Dbms_Output.put_line(v_equipId);
      commit;    
      exit when sendList%notfound;
 
   
      if sendList%isopen then
         close sendList;
      end if;
    end;
  end loop;
end p_data_send;

--------------------------------------------------------

create or replace procedure p_online is
  v_intervalVale number;
  v_equipmentIDValue varchar2(16);
  i           number;
  totalNum    number;
 
  Cursor onlineList is
   select (ROUND(TO_NUMBER(sysdate - e.updateTime) * 24 * 60 * 60)-1800),e.equipId from t_equip e;
begin
  select count(1) into totalNum from t_equip;
  open onlineList;
  for i in 1..totalNum loop
    begin
       fetch onlineList into v_intervalVale,v_equipmentIDValue;
       if v_intervalVale<0 then
           update t_equip e SET e.st_online = '1' where e.equipId = v_equipmentIDValue;
       else
           update t_equip e SET e.st_online = '0' where e.equipId = v_equipmentIDValue;
       end if;   
       commit;    
       exit when onlineList%notfound;
 
    end;
  end loop;
  close onlineList;
end p_online;

-------------------------------------------------------------

 

分享到:
评论

相关推荐

    ORACLE 存储过程入门范例

    Oracle存储过程是数据库管理系统中的一种重要编程元素,它允许用户在数据库中定义一系列复杂的SQL和PL/SQL语句,以实现特定的业务逻辑或数据处理功能。以下是对标题和描述中涉及的知识点的详细说明: 1. **创建存储...

    oracle存储过程学习经典入门

    Oracle 存储过程学习经典入门 Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识...

    java调用oracle存储过程入门实例 增删改查

    总结来说,这个入门实例涵盖了使用Java通过JDBC调用Oracle存储过程进行CRUD操作的基本流程,以及利用DOM4J解析XML配置文件和`ThreadLocal`管理数据库连接的方法。这样的设计使得程序更加模块化,易于维护,同时也...

    oracle存储过程入门必备

    以下是对给定文件中关于Oracle存储过程的详细介绍,包括存储过程的基本创建、参数传递、条件判断、循环处理以及数据库查询等内容。 ### 创建最简单的存储过程 存储过程的创建首先需要使用`CREATE OR REPLACE ...

    oracle存储过程入门实例,绝对推荐!

    Oracle存储过程是数据库管理系统中的一种重要程序设计组件,主要用于实现复杂的业务逻辑和数据处理。本文将深入探讨Oracle存储过程的基础知识,以及如何通过实例来掌握它。 首先,我们需要理解存储过程的基本概念。...

    Oracle存储过程从入门到精通

    Oracle存储过程从入门到精通

    118个真实应用场景的Oracle存储过程案例及开发指南(从入门到熟练使用)

    4、开发指南:《Oracle存储过程入门指南&100+种真实业务场景存储过程实例.pdf》,可以帮助初学者系统学习。 5、资源包括“通用存储过程整理” 和 “真实业务存储过程整理” 两部分,通用适合各种系统,可以无缝隙...

    Oracle存储过程入门学习基本语法

    Oracle存储过程入门学习基本语法 Oracle存储过程是指在Oracle数据库中预编译的SQL语句的集合,它可以完成一系列的数据库操作。存储过程可以提高数据库的安全性、提高数据库的性能和减少网络传输的数据量。 基本...

    oracle 存储过程 案例

    这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握存储过程和游标的使用。下面我们将深入探讨这两个核心概念。 一、Oracle存储过程 存储过程是预编译的SQL语句集合,可以包含数据查询、...

    oracle存储过程学习经典[语法+实例+调用].pdf

    ### Oracle存储过程学习经典知识点详解 #### 一、创建存储过程 存储过程是数据库中预编译的一段SQL代码,可以提高程序的可维护性和执行效率。在Oracle中,可以通过`CREATE OR REPLACE PROCEDURE`语句来创建存储过程...

    oracle存储过程学习经典入门.rar_oracle

    这个压缩包文件"oracle存储过程学习经典入门.rar_oracle"显然包含了帮助初学者理解并掌握Oracle存储过程的基础教程。下面将详细讲解Oracle存储过程的相关知识点。 首先,存储过程是预编译的SQL语句集合,它在数据库...

    oracle存储过程学习经典入门.doc

    以下是对Oracle存储过程的详细说明: **Oracle存储过程基础知识** Oracle存储过程是由一系列的SQL和PL/SQL语句组成的,它们被存储在数据库中并可以按需调用。PL/SQL是Oracle专有的编程语言,它扩展了SQL的功能,...

    oracle存储过程从入门到精通

    该文档详细的介绍了oracle的存储过程的开发,对于想从事oracle数据库存储过程开发的人来说是一个不错的选择。

    oracle存储过程资料

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的程序单元。这些程序单元可以在需要时被调用,执行特定的数据处理任务,如数据计算、业务逻辑...

    Oracle存储过程和触发器(PL/SQL入门教程)

    Oracle存储过程和触发器(PL/SQL入门教程) Oracle存储过程和触发器(PL/SQL入门教程)

Global site tag (gtag.js) - Google Analytics