-
oracle 存储过程 插入个数达到某个值时方可插入0
create or replace procedure proc_test is
V_TOTAL NUMBER(10);
begin
insert into test (remark, time, in, out)
select zci.remark,
zc.time+1/24/6,
in,
out
from test_bak zc
left join test_info zci on zc.id = zci.id
where zci.remark is not null
and zc.time > (select nvl(max(time)-1/24/6, sysdate-8)
from test);
commit;
select count(*) into V_TOTAL from test where time =
(select max(time) from test);
if V_TOTAL <> 100 then
delete from test where time = (select max(time) from test);
commit;
end if;
end proc_test;
以上是我写的存储过程,每次插入到test表中会有100条记录,是按时间来插入的,但会出现每次还没全部把100条记录插入到test表中,就已经无法插入(是按大于test表中最大时间方可插入) 所以我做了个判断,当不到100条记录时,就把刚插入的那个时间点的记录都删除了 可以不行啊 要怎么弄
2012年11月28日 09:02
1个答案 按时间排序 按投票排序
-
既然你的insert的原数据是来源那个子查询,那你就在那个子查询结果有100个的时候再去insert行不行呀?
create or replace procedure proc_test is V_TOTAL NUMBER(10); begin select count(*) into V_TOTAL from (select zci.remark, zc.time + 1 / 24 / 6,in, out from test_bak zc left join test_info zci on zc.id = zci.id where zci.remark is not null and zc.time > (select nvl(max(time) - 1 / 24 / 6, sysdate - 8) from test)); if V_TOTAL = 100 then insert into test (remark, time, in, out) select zci.remark, zc.time + 1 / 24 / 6,in, out from test_bak zc left join test_info zci on zc.id = zci.id where zci.remark is not null and zc.time > (select nvl(max(time) - 1 / 24 / 6, sysdate - 8) from test); commit; end if; end proc_test;
2012年11月28日 09:46
相关推荐
oracle 批量插入存储过程,性能非常高!
oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用
总之,向Oracle数据库插入或更新Clob大段文本是一个涉及SQL语句构建、参数类型设置及值赋值等多个方面的过程。正确理解和掌握这些细节,能够帮助开发者更高效、安全地管理数据库中的大量文本数据。
本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...
Oracle存储过程是预编译的SQL语句集合,它可以提高执行效率,减少网络通信,并且能够封装复杂的业务逻辑。 首先,我们需要理解C++与Oracle数据库交互的基本原理。通常,这会通过一个名为ODBC(Open Database ...
ORACLE存储过程中定义数组并且判断某值是否在数组中。有例子可執行、 、有例子可執行、
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
在Java示例中,我们还看到了如何为大数据量插入创建Oracle对象类型和数组类型,以及相应的存储过程。这种方式允许我们在单次调用中插入大量记录,显著提高了效率。在处理大量数据时,批量操作比逐条操作更高效,因为...
在数据库管理领域,存储过程是预编译的SQL语句集合,它们被封装在一个单一的逻辑单元中,便于管理和重复使用。在Oracle数据库系统中,存储过程是强大的工具,能够执行复杂的业务逻辑和数据处理任务。本文将深入探讨...
在将C#的List传递给Oracle存储过程时,我们需要创建一个PL/SQL类型的数组,以便存储过程能够理解和处理C#列表中的元素。 1. **创建Oracle存储过程**: 在Oracle数据库中,创建一个接受数组作为参数的存储过程。...
在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程提高了代码的重用性和执行效率,同时也便于实现复杂的业务逻辑。 #### 二...
oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel
Oracle存储过程是数据库管理系统Oracle中的一个关键特性,它允许开发者编写一组预编译的SQL和PL/SQL语句,以实现特定的业务逻辑或数据库操作。这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面...
Oracle存储过程常用技巧 Oracle存储过程是一种强大的数据库对象,它可以帮助开发者简化复杂的业务逻辑,并提高数据库的安全性和性能。在 Oracle 中,存储过程是一种特殊的 PL/SQL 程序,它可以接受输入参数,执行...
### Oracle存储过程 存储过程是在数据库中预编译的一组SQL语句,用于执行复杂的业务逻辑或数据操作。它们可以接受输入参数,执行一系列数据库操作,并返回结果。在Oracle中,存储过程使用PL/SQL编写,可以在数据库...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...
以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....
这篇博客分享的是一个自定义的存储过程,用于批量修改Oracle序列的当前值(CURRENT VALUE)。 首先,我们需要理解Oracle序列的基本结构和操作。序列由CREATE SEQUENCE语句创建,如: ```sql CREATE SEQUENCE seq_...
oracle存储过程加密破解 0
可以将SQL Server存储过程转为oracle存储过程的工具