`
buaixianchen
  • 浏览: 24115 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PL/SQL使用记录

阅读更多
CREATE OR REPLACE FUNCTION USER_EXP_TIME_FUN(iExpTime IN NUMBER)
RETURN NUMBER
IS
iExpMin number:=trunc(iExpTime/60);
iLevel number:=0;
iNowUpExp number:=0;
iLastUpExp number:=2*60;
iCheckLevelExp number:=0;
iNextLevelExp number:=0;
BEGIN
    IF iExpMin < 120 THEN 
       iLevel:=1;
    ELSE
      FOR i IN 1..100 LOOP
          iNowUpExp:=iLastUpExp+(i-1)*120;
          iCheckLevelExp:=iCheckLevelExp+iNowUpExp;
          IF iExpMin >= iCheckLevelExp THEN
              iNextLevelExp:=iCheckLevelExp+iNowUpExp+i*120;
              IF iExpMin < iNextLevelExp THEN
                iLevel:=i+1;
              END IF;
          END IF;
          iLastUpExp:=iNowUpExp;
      END LOOP;
    END IF;
    return iLevel;
END;
/

CREATE OR REPLACE PROCEDURE daily_rank_pro IS
 type rc is ref cursor;
 money_rank_cur rc;
 integral_rank_cur rc;
 exp_time_rank_cur rc;
 competition_rank_cur rc;
 competition_expect_num number;
 competition_level_id number;
 rank_user_name varchar2(20);
 rank_result number;
 rank_count number:=1;
BEGIN
 delete from user_rank;
 open money_rank_cur for select aa.user_name user_name , (aa.money + aa.bank_money) money from ((select user_name , money , bank_money from users t where t.vip_type = 96 and t.money + t.bank_money >= 2000000 order by money + bank_money desc) aa) where rownum <= 10;
 loop
      fetch money_rank_cur into rank_user_name, rank_result;
      exit when money_rank_cur%notfound;
      insert into user_rank values(user_rank_seq.nextval, rank_user_name, rank_count, 0, rank_result);
      rank_count:=rank_count+1;
 end loop;
 close money_rank_cur;
 rank_count:=1;

 open integral_rank_cur for select aa.user_name user_name , (aa.integral + aa.bank_integral) integral from ((select user_name , integral , bank_integral from users t where t.vip_type = 96 and t.integral + t.bank_integral >= 50000 order by integral + bank_integral desc) aa) where rownum <= 10;
 loop
      fetch integral_rank_cur into rank_user_name, rank_result;
      exit when integral_rank_cur%notfound;
      insert into user_rank values(user_rank_seq.nextval, rank_user_name, rank_count, 1, rank_result);
      rank_count:=rank_count+1;
 end loop;
 close integral_rank_cur;
 rank_count:=1;

 open exp_time_rank_cur for select aa.user_name user_name , aa.exp_time exp_time from ((select user_name , exp_time  from users t where t.vip_type = 96 order by exp_time desc) aa) where rownum <= 10;
 loop
      fetch exp_time_rank_cur into rank_user_name, rank_result;
      exit when exp_time_rank_cur%notfound;
      insert into user_rank values(user_rank_seq.nextval, rank_user_name, rank_count, 2, USER_EXP_TIME_FUN(rank_result));
      rank_count:=rank_count+1;
 end loop;
 close exp_time_rank_cur;
 rank_count:=1;

 select EXPECT_NUM, COMPETE_LEVEL_ID into competition_expect_num, competition_level_id from competition_game_log c where c.EXPECT_NUM = (select max(EXPECT_NUM) from competition_game_log where game_id = 121);
 open competition_rank_cur for select pc.user_name,pc.duel_integral from previous_competition pc where pc.expect_num = competition_expect_num and  pc.compete_level_id = competition_level_id and pc.game_id = 121 and pc.emiction <= 10  order by pc.emiction;
 loop
   fetch competition_rank_cur into rank_user_name, rank_result;
   exit when competition_rank_cur%notfound;
   insert into user_rank values(user_rank_seq.nextval, rank_user_name, rank_count, 3, rank_result);
   rank_count:=rank_count+1;
 end loop;
 close competition_rank_cur;
END;
/

 

分享到:
评论

相关推荐

    pl/sql最新中文手册

    1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本结构,包括声明变量、常量、游标、记录类型等。还会讲解如何编写存储过程、函数和触发器。 2. **控制流程语句**:这包括条件判断(IF-THEN-ELSIF-ELSE)...

    oracle10g_pl/sql

    Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...

    Oracle PL/SQL实战(待续)

    同时,PL/SQL支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 此外,PL/SQL的包(PACKAGE)概念是将相关的过程和...

    PL/SQL VCS插件安装包+PL/SQL

    在实际应用中,PL/SQL VCS插件的使用能够帮助团队更好地协同工作,避免因为代码覆盖或版本冲突导致的问题。它提供了版本历史记录,使得开发者可以追溯脚本的修改历程,了解每个更改的详情。同时,它也有助于回滚到...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **集合与记录**:学习如何使用PL/SQL中的集合和记录类型,这些结构可以帮助更高效地处理数据集。 - **游标**:介绍游标的使用方法,包括隐式游标和显式游标,以及如何利用游标遍历查询结果。 #### 四、PL/SQL中的...

    pl/sql使用软件

    PL/SQL的使用需要对Oracle数据库有深入的理解,它不仅提供了强大的数据库编程能力,还简化了数据库应用程序的开发。对于那些在Oracle环境中工作的开发者和DBA而言,掌握PL/SQL是必不可少的技能。这款名为“plsql”的...

    PL/SQL编程基础知识

    需要注意的是,在PL/SQL中只能使用SQL的DML(Data Manipulation Language)部分,而不能直接使用DDL(Data Definition Language)部分,如创建表(CREATE TABLE)等操作。如果需要在PL/SQL中执行DDL操作,则需要通过...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...

    PL/SQL安装包

    7. **记录类型和变量**:PL/SQL支持自定义记录类型和变量,使得可以创建更贴近业务需求的数据结构。 这个"PL/SQL安装包"可能包含了以下组件: - **PL/SQL Developer**:一个强大的Oracle数据库开发工具,支持PL/...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...

    Oracle Database 12c PL/SQL开发指南 实例源代码

    在"Oracle Database 12c PL/SQL开发指南(第7版)"这本书中,作者深入浅出地介绍了如何使用PL/SQL进行数据库开发。这本书涵盖了许多关键知识点,包括但不限于: 1. **PL/SQL基础**:PL/SQL的基础语法,如变量声明、...

    PL/SQL入门到精通书的源代码

    理解如何声明和使用这些数据类型是编写有效PL/SQL程序的基础。 3. **控制结构**:学习如何使用流程控制语句,如IF、CASE、WHILE和FOR循环,能帮助你在处理数据时做出决策或重复执行特定任务。 4. **游标**:游标是...

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

    PL/SQL使用说明书(完整版)

    - **PL/SQL记录和表类型**:支持自定义复杂数据结构,模拟类似面向对象的概念。 这份“PL/SQL使用说明书(完整版)”会详细讲解这些概念,并通过实例解析其用法,帮助读者理解和掌握PL/SQL编程,无论是初学者还是...

    Oracle PL/SQL学习官方教材

    5. **记录和表操作**:PL/SQL提供了内置的DML(数据操纵语言)语句,如INSERT、UPDATE、DELETE,可以直接在PL/SQL块中操作数据库表。教材还会讲解如何使用BULK COLLECT和FORALL语句进行批量操作,提高效率。 6. **...

    Oracle PL/SQL实例精解 数据库建立代码

    在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨如何在Oracle数据库中使用PL/SQL来构建一个名为"student"的模式,这包括创建数据库对象如表、索引,以及填充样本数据。 首先,"student"模式可能包含一...

    pl/sql学习笔记

    Transact-SQL(T-SQL)是Microsoft SQL Server使用的编程语言,与PL/SQL类似,但存在一些关键差异。T-SQL在语法上更接近标准SQL,而PL/SQL则提供了更丰富的过程编程特性。例如,PL/SQL有声明变量、异常处理和包...

    pl/sql 学习资料

    - DML操作:INSERT、UPDATE、DELETE语句在PL/SQL中的使用。 - SELECT INTO语句:从查询结果中提取数据到PL/SQL变量。 -游标:使用游标处理多行结果集,进行逐行操作。 3. **异常处理**: - 异常类型:理解预...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    1. **基础语法**:PL/SQL的基础包括声明变量、常量、游标、记录类型以及控制流程语句(如IF-THEN-ELSIF,WHILE,FOR循环)。书中会详细介绍如何编写简单的PL/SQL块,包括声明部分、执行部分和异常处理部分。 2. **...

    DBAtools for PL/SQL表空间管理器

    PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...

Global site tag (gtag.js) - Google Analytics