按某些字段排序数据
2015-07-20 16:39
253 查看
CREATE OR REPLACE PROCEDURE Campaignprize_hash( ServerNum number, RETVAL OUT VARCHAR2) IS RNum number(6); SIndex number(2); hashcodd VARCHAR2(8); flag number(2); begin SIndex:=0; DECLARE CURSOR c1 IS select campaignprizeid,CAMPAIGNID,PRIZETYPEID from mkt_campaignprize where issend=0 order by campaignprizeid asc; BEGIN FOR r1 IN c1 LOOP if SIndex=ServerNum then SIndex:=0; end if; select count(1) into flag from mkt_RangeNum t where t.serverindex=SIndex and t.campaignid=r1.CAMPAIGNID and t.prizetypeid=r1.PRIZETYPEID and rownum<=1; if flag>0 then select t.RangeNum into RNum from mkt_RangeNum t where t.serverindex=SIndex and t.campaignid=r1.CAMPAIGNID and t.prizetypeid=r1.PRIZETYPEID; RNum:=RNum+1; update mkt_RangeNum t set t.RangeNum=RNum where t.serverindex=SIndex and t.campaignid=r1.campaignid and t.prizetypeid=r1.prizetypeid; else RNum:=0; insert into mkt_RangeNum values(SIndex,r1.CAMPAIGNID,r1.PRIZETYPEID,RNum); end if; hashcodd:=lpad(SIndex,2,'0')||lpad(RNum,6,'0'); update mkt_campaignprize mc set mc.hashcode=hashcodd where mc.campaignprizeid=r1.campaignprizeid; SIndex:=SIndex+1; END LOOP; END; COMMIT; RETVAL := '1'; Exception When others then RETVAL :='E'||SUBSTR(SQLERRM, 1, 600); end Campaignprize_hash;
create global temporary table mkt_RangeNum (ServerIndex number(2), CampaignID number(19), PrizeTypeID number(19), RangeNum number(6)) on Commit delete Rows
相关文章推荐
- 小议 html 实体解析
- #leetcode#Intersection of Two LinkedList
- 软件评测师真题分析
- 公司网站
- oracle sql 内连接 左外连接 右外连接 全外连接
- ping(网络诊断工具)
- HDOJ 2053 Switch Game【规律题】
- Message、Handler、MessageQueue、Looper之间关系图文总结
- liunx安装nginx
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- CF 149D Coloring Brackets 区间dp ****
- iPhone中使用NSLocalizedString实现国际化
- 如何在IIS7或IIS7.5中导入导出站点及应用程序池.
- #笔记#圣思园 JavaWeb 第49讲——定时器、两种事件绑定
- 杀 mysql的进程
- Win7、8系统下VLD引起0xc0150002错误
- windows下安装mongodb
- O(nlogn)的最长上升子序列并且记录所选择的数 模板
- Java Scripting Programmer's Guide
- 新手可以学习cocos2dx 3.0 组态(两)