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存储过程是数据库管理系统中的一种重要编程元素,它允许用户在数据库中定义一系列复杂的SQL和PL/SQL语句,以实现特定的业务逻辑或数据处理功能。以下是对标题和描述中涉及的知识点的详细说明: 1. **创建存储...
Oracle 存储过程学习经典入门 Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识...
总结来说,这个入门实例涵盖了使用Java通过JDBC调用Oracle存储过程进行CRUD操作的基本流程,以及利用DOM4J解析XML配置文件和`ThreadLocal`管理数据库连接的方法。这样的设计使得程序更加模块化,易于维护,同时也...
以下是对给定文件中关于Oracle存储过程的详细介绍,包括存储过程的基本创建、参数传递、条件判断、循环处理以及数据库查询等内容。 ### 创建最简单的存储过程 存储过程的创建首先需要使用`CREATE OR REPLACE ...
Oracle存储过程是数据库管理系统中的一种重要程序设计组件,主要用于实现复杂的业务逻辑和数据处理。本文将深入探讨Oracle存储过程的基础知识,以及如何通过实例来掌握它。 首先,我们需要理解存储过程的基本概念。...
Oracle存储过程从入门到精通
4、开发指南:《Oracle存储过程入门指南&100+种真实业务场景存储过程实例.pdf》,可以帮助初学者系统学习。 5、资源包括“通用存储过程整理” 和 “真实业务存储过程整理” 两部分,通用适合各种系统,可以无缝隙...
Oracle存储过程入门学习基本语法 Oracle存储过程是指在Oracle数据库中预编译的SQL语句的集合,它可以完成一系列的数据库操作。存储过程可以提高数据库的安全性、提高数据库的性能和减少网络传输的数据量。 基本...
这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握存储过程和游标的使用。下面我们将深入探讨这两个核心概念。 一、Oracle存储过程 存储过程是预编译的SQL语句集合,可以包含数据查询、...
### Oracle存储过程学习经典知识点详解 #### 一、创建存储过程 存储过程是数据库中预编译的一段SQL代码,可以提高程序的可维护性和执行效率。在Oracle中,可以通过`CREATE OR REPLACE PROCEDURE`语句来创建存储过程...
这个压缩包文件"oracle存储过程学习经典入门.rar_oracle"显然包含了帮助初学者理解并掌握Oracle存储过程的基础教程。下面将详细讲解Oracle存储过程的相关知识点。 首先,存储过程是预编译的SQL语句集合,它在数据库...
以下是对Oracle存储过程的详细说明: **Oracle存储过程基础知识** Oracle存储过程是由一系列的SQL和PL/SQL语句组成的,它们被存储在数据库中并可以按需调用。PL/SQL是Oracle专有的编程语言,它扩展了SQL的功能,...
该文档详细的介绍了oracle的存储过程的开发,对于想从事oracle数据库存储过程开发的人来说是一个不错的选择。
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的程序单元。这些程序单元可以在需要时被调用,执行特定的数据处理任务,如数据计算、业务逻辑...
Oracle存储过程和触发器(PL/SQL入门教程) Oracle存储过程和触发器(PL/SQL入门教程)