记录一段存储过程

create or replace procedure getPartTimeDatas(investor in varchar2,v_cursor out CLOB) as
v_billcount number;
v_wincount number;
v_winrate number;
v_avgwin number;
v_avgloss number;
v_maxcloseprofit number;
v_mincloseprofit number;
v_sumcloseprofit number;

v_daycloseprofit number;
v_pdate CLOB;

v_str CLOB;
begin
DECLARE CURSOR myCusor is
select sum(t.billcount) billcount,sum(t.wincount) wincount,sum(t.winrate) winrate,sum(t.sumwin/t.billcount) avgwin,sum(t.sumloss/t.billcount) avgloss,max(t.closeprofit) maxcloseprofit,min(t.closeprofit) mincloseprofit,sum(t.closeprofit) sumcloseprofit from T_AccountDayProfit t where t.investorid=investor and t.month=to_number(to_char(sysdate,‘mm‘)) and t.year=to_number(to_char(sysdate,‘yyyy‘));
begin
OPEN myCusor;
LOOP
fetch myCusor into v_billcount,v_wincount,v_winrate,v_avgwin,v_avgloss,v_maxcloseprofit,v_mincloseprofit,v_sumcloseprofit;
EXIT WHEN myCusor%NOTFOUND;
v_str:= v_billcount||‘,‘||v_wincount||‘,‘||v_winrate||‘,‘||v_avgwin||‘,‘||v_avgloss||‘,‘||v_maxcloseprofit||‘,‘||v_mincloseprofit||‘,‘||v_sumcloseprofit||‘,‘;
v_cursor:=v_cursor||v_str;
END LOOP;
CLOSE myCusor;
end;

DECLARE CURSOR myCusor is
select sum(t.billcount) billcount,sum(t.wincount) wincount,sum(t.winrate) winrate,sum(t.sumwin/t.billcount) avgwin,sum(t.sumloss/t.billcount) avgloss,max(t.closeprofit) maxcloseprofit,min(t.closeprofit) mincloseprofit,sum(t.closeprofit) sumcloseprofit from T_AccountDayProfit t where t.investorid=investor and t.pdate>=trunc(ADD_MONTHS(SYSDATE,-2),‘mm‘);
begin
OPEN myCusor;
LOOP
fetch myCusor into v_billcount,v_wincount,v_winrate,v_avgwin,v_avgloss,v_maxcloseprofit,v_mincloseprofit,v_sumcloseprofit;
EXIT WHEN myCusor%NOTFOUND;
v_str:= v_billcount||‘,‘||v_wincount||‘,‘||v_winrate||‘,‘||v_avgwin||‘,‘||v_avgloss||‘,‘||v_maxcloseprofit||‘,‘||v_mincloseprofit||‘,‘||v_sumcloseprofit||‘,‘;
v_cursor:=v_cursor||v_str;
END LOOP;
CLOSE myCusor;
end;

DECLARE CURSOR myCusor is
select sum(t.billcount) billcount,sum(t.wincount) wincount,sum(t.winrate) winrate,sum(t.sumwin/t.billcount) avgwin,sum(t.sumloss/t.billcount) avgloss,max(t.closeprofit) maxcloseprofit,min(t.closeprofit) mincloseprofit,sum(t.closeprofit) sumcloseprofit from T_AccountDayProfit t where t.investorid=investor and t.pdate>=trunc(ADD_MONTHS(SYSDATE,-5),‘mm‘);
begin
OPEN myCusor;
LOOP
fetch myCusor into v_billcount,v_wincount,v_winrate,v_avgwin,v_avgloss,v_maxcloseprofit,v_mincloseprofit,v_sumcloseprofit;
EXIT WHEN myCusor%NOTFOUND;
v_str:= v_billcount||‘,‘||v_wincount||‘,‘||v_winrate||‘,‘||v_avgwin||‘,‘||v_avgloss||‘,‘||v_maxcloseprofit||‘,‘||v_mincloseprofit||‘,‘||v_sumcloseprofit||‘,‘;
v_cursor:=v_cursor||v_str;
END LOOP;
CLOSE myCusor;
end;

DECLARE CURSOR myCusor is
select sum(t.billcount) billcount,sum(t.wincount) wincount,sum(t.winrate) winrate,sum(t.sumwin/t.billcount) avgwin,sum(t.sumloss/t.billcount) avgloss,max(t.closeprofit) maxcloseprofit,min(t.closeprofit) mincloseprofit,sum(t.closeprofit) sumcloseprofit from T_AccountDayProfit t where t.investorid=investor and t.pdate>=trunc(ADD_MONTHS(SYSDATE,-11),‘mm‘);
begin
OPEN myCusor;
LOOP
fetch myCusor into v_billcount,v_wincount,v_winrate,v_avgwin,v_avgloss,v_maxcloseprofit,v_mincloseprofit,v_sumcloseprofit;
EXIT WHEN myCusor%NOTFOUND;
v_str:= v_billcount||‘,‘||v_wincount||‘,‘||v_winrate||‘,‘||v_avgwin||‘,‘||v_avgloss||‘,‘||v_maxcloseprofit||‘,‘||v_mincloseprofit||‘,‘||v_sumcloseprofit||‘,‘;
v_cursor:=v_cursor||v_str;
END LOOP;
CLOSE myCusor;
end;

DECLARE CURSOR myCusor is
select to_char(t.pdate,‘yyyymmdd‘) pdate,t.closeprofit from T_AccountDayProfit t where t.investorid=investor and t.pdate>=trunc(ADD_MONTHS(SYSDATE,-11),‘mm‘) order by t.pdate asc;
begin
OPEN myCusor;
LOOP
fetch myCusor into v_pdate,v_daycloseprofit;
EXIT WHEN myCusor%NOTFOUND;
v_str:= v_pdate||‘,‘||v_daycloseprofit||‘,‘;
v_cursor:=v_cursor||v_str;
END LOOP;
CLOSE myCusor;
end;

select substr(v_cursor,1,length(v_cursor)-1) into v_cursor from dual;

end getPartTimeDatas;

/

调用:

set serverout on;
declare
v_ret CLOB;
begin
getPartTimeDatas(‘1‘,v_ret);
dbms_output.put_line(v_ret);
end;
/

时间: 2024-10-26 03:06:03

记录一段存储过程的相关文章

为QNetworkAccessManager添加超时提醒(自己记录一段时间里的下载字节数,用定时器去定期检测,从而判断是否超时)

在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获.但是如果是第三方软件限制程序联网,问题来了. 程序会一直在那里等待,没有异常,也不发送QNetworkAccessManager::finsh和QNetworkReply::error和QNetworkReply::finsh信号. 所以动念头为下载加个超时,但是QNetworkAccessManager,QNetworkReply和QNetworkRequest都没有相关的设置函数.其实仔细想一下,也没有

使用gawk记录一段时间内,某个进程占用内存和CPU的情况

很多时候,我们在后台测试程序的时候,都需要隔一段时间监控程序的内存和CPU占用情况,但是又不能经常盯着top命令的输出. 这时候就需要使用脚本来帮我们记录这些信息,方便我们监控了. 废话不多说,直接上代码: ```shell #!/bin/bash FileName="res.txt" echo "%CPU\t%MEM" > $FileName for (( i = 0; i < 10; i++ )) do output=`top -n 1 -p 1 &

学习记录001-007-阶段习题小结

一.第1段 1.显示目录下第一级目录 ls -l |grep ^d 或者颜色区分[^ ee] //非ee的字符ls -F //在目录下显示目录后加上/ ls -F |grep / 或者/$ 以什么什么结尾 p 也有这个功能find . -type d //可以查看子目录,有二级目录tree -Ld 1 也可以find -maxdepth level ls -ld */ls -l |awk '/^d/'ls -l|sed -n '/^d/p' 2.假如当前目录是/data 你用命令 cd /tmp

记录一段python代码 (修改数据库字符串)

场景:由于开发恶心的账号登录设置,鉴于日本玩家用户习惯,刚开始以游客的身份登录游戏,若发生换包或者换设备,都需要从数据库重新更换账号ID,刚开始纯手工,其后py实现,封装为exe直接在dos里面执行,最好的方式改进当然是在web见面一键完成,现将代码跑路,作为记录. # coding=utf-8 import pymysql import traceback import simplejson import sys # 交换 def exchange(connect_index, file_na

一句话记录一段时间...

有些东西,其实并没有什么大不了,只不过,现在的有些群,的确真心污染严重 ! 如果是自己真心想看的话,其实看也无所谓! 但是麻蛋,不是! 恨死了初中的那个破水群!喵了个咪的!!!! 其实自己并不是介意这些莫名其妙的东西,也并不想演盖 自己有多么纯洁,只是,玛德,你就是有这种 不想承认自己多么纯洁,但也不想莫名其妙的误解的尬尴!!!! 其实对于男生而言,真心玩得好的,其实都会知道! 那点事,真心没什么! 搞得好像封建思想这么严重,我去. 又不是女生! 只是成为程序猿好久了,忙得没时间,来说这些恶搞罢

记录某段程序的运行时间

1 float start =clock(); 2 //TODO:再次插入需要测试的程序段 3 4 float end=clock(); 5 float time = (end-start)/CLOCKS_PER_SEC; 6 cout<<time;

存储过程不返回记录集导致ADO程序出错

HRESULT _hr = get_adoEOF(&_result); IsEOF()函数如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL IsEOF()       {return m_pRecordset->adoEOF == VARIANT_TRUE;}; m_pRecordset->adoEOF 将执行下面的函数(见msado15.tli) 1    inline VARIANT_BOOL Recordset15::GetadoEOF (

存储过程之多表添加记录

     在接触MIS类型的项目,无可避免的要和数据库打交道,相信大家对于单个表的操作已经不陌生了(掌握好基本的SQL语句就行).但是随着项目的优化和规范,原本的表中的字段可能要随着范式的进行而分割实体的属性,这样原本一张表就可以满足的功能,现在可能需要多张表同时操作才能进行.今天和大家分享下如何使用数据库自带的存储过程实现同时对多张表的添加记录功能.     存储过程:一组为了完成特定功能的SQL 语句集.创建名为Pro_studentQuery语句集(具体的优缺点和其他功能可以上网百度).

九、MySQL存储过程和函数

存储过程就是一条或者多条SQL语句的集合,可视为批文件,但是其作用不仅限于批处理. 9.1.创建存储过程和函数 存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是CREATE PROCEDURE和CREATE FUNCTION.使用CALL语句来调用存储过程,只能用输出变量返回值.函数可以从语句外调用( 即通过引用函数名),也能返回标量值.存储过程也能调用其他存储过程. 创建存储过程 创建存储过程,需要使用CREATE PROCEDURE语句,基本语法为: CREAT