`

存储过程使用小结

 
阅读更多
写道
create or replace procedure maomao_1217
as

for_date date;
for_btntid number;
test int;

CURSOR cur_date IS
select distinct t.thedate from domain_score t;
CURSOR cur_btntid IS
select distinct t.btntid from domain_score t;
begin
for for_date in cur_date loop

for for_btntid in cur_btntid loop

insert into domain_score_tmp
(select a.* from (select * from domain_score t where t.btntid=for_btntid and t.thedate=for_date order by t.score desc) a
where rownum < 100);

end loop;

---dbms_output.put_line('This NUMBER is '||for_btntid);
end loop;
end maomao_1217;

 这是我同学写的一个存储过程,她问我为什么编译不过去,我开始也觉得奇怪,和网上写的都差不多,但为什么编译不过去后来仔细看了下是标红的地方有问题,实际上第一是这种利用for in loop 打开游标的方式是不需要提前定义每项的,第二,也是最重要的是,并不是说for_btntid 就是一个number型的编号,而for_btntid.btntid才是一个number型的变量,所以修改就很简单了

写道
create or replace procedure maomao_1217
as

for_date2 date;
for_btntid2 number;
test int;

CURSOR cur_date IS
select distinct t.thedate from domain_score t;
CURSOR cur_btntid IS
select distinct t.btntid from domain_score t;
begin
for for_date in cur_date loop

for for_btntid in cur_btntid loop

insert into domain_score_tmp
(select a.* from (select * from domain_score t where t.btntid=for_btntid.btntid and t.thedate=for_date.thedate order by t.score desc) a
where rownum < 100);

end loop;

---dbms_output.put_line('This NUMBER is '||for_btntid.btntid);
end loop;
end maomao_1217;

 

分享到:
评论

相关推荐

    Oracle存储过程中使用临时表

    总结来说,Oracle存储过程中使用临时表是优化数据处理和提高性能的有效手段,正确理解和运用会话级和事务级临时表,能更好地满足复杂的业务需求。在设计和实现存储过程时,应根据具体的应用场景选择合适的临时表类型...

    存储过程总结很全很详细

    4. **代码复用性高**:存储过程可多次重复使用,减少了代码冗余,提高了开发效率。 #### 二、语法结构 存储过程的创建语法一般如下: ```sql CREATE PROCEDURE procedure_name [parameter_definition,...] AS ...

    Oracle存储过程总结

    Oracle存储过程总结,Oracle存储过程总结,Oracle存储过程总结。

    数据库实验报告-存储过程、触发器

    【存储过程】 存储过程是数据库中一组预编译的SQL语句,它可以接收参数,执行特定任务,并返回结果。其优点包括: 1. 提高性能:存储过程在首次编译后,会缓存执行计划,多次调用时无需再次解析,从而提高执行速度。...

    oracle存储过程解锁

    ### 描述:“如果存储过程被锁住,可以使用这个存储过程解锁方法” #### 解析: 当遇到存储过程被锁定的情况时,通常可以通过查询`dba_ddl_locks`视图来查找锁定的详细信息。例如,要检查名为`prc_exec_day`的存储...

    PLSQL中存储过程的建立,导出,导入,使用

    ### PL/SQL中存储过程的建立、导出、导入与使用 #### 一、存储过程的概念及优势 存储过程是一种数据库对象,它是由一系列SQL语句组成的预编译的程序块,存储在数据库中,可以通过调用的方式执行。在Oracle数据库中...

    mysql存储过程教程

    总结,MySQL的存储过程是提升数据库管理效率的重要工具,掌握其使用方法和最佳实践对于数据库设计和开发人员至关重要。通过学习和实践,你可以更好地利用存储过程来优化数据处理流程,提高系统性能。

    oracle 存储过程使用 sequence

    总结来说,Oracle存储过程结合Sequence的使用,能够有效地处理数据的插入和更新操作,特别是在需要唯一标识的情况下。在设计和实现时,我们需要考虑并发控制、性能优化以及业务需求的灵活性,以确保Sequence的正确性...

    实 验 五 存储过程的建立与使用

    数据库存储过程和触发器的建立与使用 在数据库管理系统中,存储过程和触发器是两个重要的概念,它们可以帮助我们更好地管理和维护数据库。在本节中,我们将详细介绍存储过程和触发器的概念、作用、创建和使用方法。...

    oracle 存储过程 函数 dblink

    在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...

    java调用存储过程小结.pdf

    Java 调用存储过程小结 Java 调用存储过程是指在 Java 程序中调用数据库中的存储过程,以便实现复杂的业务逻辑和数据处理。存储过程是指保存在数据库并在数据库端执行的程序,可以使用特殊的语法在 Java 类中调用...

    oracle 存储过程学习总结

    Oracle存储过程学习总结涵盖了Oracle中存储过程的编写与应用,涉及到字符串处理、游标使用、PL/SQL编程等方面的知识点。 首先,字符串处理是存储过程中常见的操作。文章中提到了多个内置函数,如CONCAT用于连接字符...

    存储过程写法,存储过程

    根据提供的文档标题、描述、标签以及部分内容,我们可以总结出以下关于存储过程的创建与使用的相关知识点。 ### 一、存储过程的基本概念 存储过程是一种在数据库中存储并编译好的SQL程序,它能够接受输入参数,...

    PostgreSQL 存储过程调试

    总结来说,调试PostgreSQL存储过程涉及多个层面,从简单的日志记录到复杂的源码调试,都需要对PostgreSQL有深入的理解。熟练掌握这些技巧,将有助于提升数据库应用的稳定性和性能。通过不断实践和学习,你可以成为一...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    定义完存储过程后,使用“delimiter”关键字更改语句结束符,以便能够正确地定义存储过程或函数中的多条语句。 2. 创建函数 函数与存储过程类似,也是一种子程序。不同之处在于函数必须返回一个值。报告中并没有...

    DB2数据库存储过程小结

    以下是对DB2存储过程及其在使用游标方面的详细解释。 1. **存储过程的基本概念** - 存储过程是一组预先编译好的SQL语句,存储在数据库服务器上,可以被多次调用,减少了网络通信和解析时间。 - 它们可以接受输入...

    sql存储过程学习,详细的解说存储过程的语法,结构和用法。

    总结,SQL存储过程是数据库开发的关键组件,它们提高了数据库操作的效率和灵活性,同时降低了网络通信量和提升了安全性。学习和掌握存储过程的创建、调用以及优化技巧对于任何数据库开发者都至关重要。通过实践和...

    SQL Server存储过程

    总结来说,SQL Server的存储过程是数据库管理的重要工具,它们可以提高数据库应用的效率,简化复杂的查询逻辑,同时提供了代码复用的可能性。通过本实验,我们不仅了解了存储过程的基本概念,还学会了如何根据实际...

    添加用户使用存储过程例子

    在本例中,“添加用户使用存储过程”是一个教学示例,旨在教授如何通过存储过程来创建新的用户记录。下面将详细解释存储过程的基本概念、优点,以及如何编写一个用于添加用户的存储过程。 **存储过程的基础知识:**...

Global site tag (gtag.js) - Google Analytics