| « | 一月 2012 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||
公布计算过程,大家都可以做,并及时将结果发布
公布计算过程,大家都可以做并及时将结果发布
--计算过程
--创建几个表
--存最终结果
create table zsbc2008_3 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
净值 number,
收入率 number,
获胜次数 number,
胜率 number,
净值除下注总金额 number,
获胜次数除总开盘数 number,
参与次数除总开盘数 number,
总开盘数 number
);
--存临时结果
create table zsbc_temp1 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
获胜次数 number
);
--存临时结果
create table zsbc_temp2 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
获胜次数 number
);
--存临时结果
create table szzsbc_temp
(日期 varchar2(8),
用户 varchar2(30),
下注 number,
结果 varchar2(10),
收入 number,
纯收入 number,
原始结果 varchar2(200)
);
1.把上次的统计结果copy到excel文件里,再通过plsql developer,copy到表zsbc2008_3里.
2.将新的nba结果一起copy到一个文件,利用UEDIT的替换功能将所有的原始记录转换成insert语句,格式如下:
insert into szzsbc_temp(原始结果) values ('shiguibao 下注 100PUB币--失败 ');
--替换用的
insert into szzsbc_temp(原始结果) values ('
3.将2的全部insert语句copy到sqlplus里,insert到szzsbc_temp.
4.执行以下语句,对szzsbc_temp做简单的解析
update szzsbc_temp set 原始结果=rtrim(原始结果);
commit;
update szzsbc_temp
set 日期= '200912',
用户=substr(原始结果,1,instr(原始结果,' ',1) - 1),
下注=substr(原始结果,instr(原始结果,'下注',1) + 3,instr(原始结果,'PUB币',1,1) - instr(原始结果,'下注',1,1) - 3 ),
结果=decode(sign(instr(原始结果,'胜出')),1,'成功','失败');
commit;
update szzsbc_temp
set 收入=substr(原始结果,instr(原始结果,'收入',1) + 3,instr(原始结果,'PUB币',1,2) - instr(原始结果,'收入',1,1) - 3 )
where instr(原始结果,'收入') > 0;
commit;
update szzsbc_temp set 收入=0
where instr(原始结果,'收入') = 0;
commit;
update szzsbc_temp set 纯收入= 收入 - 下注;
commit;
5.对szzsbc_temp做简单计算,结果存到zsbc_temp1
truncate table zsbc_temp1;
insert into zsbc_temp1
select 用户,count(*),sum(下注) ,sum(收入),sum(decode(结果,'成功',1,0)) from szzsbc_temp
group by 用户;
commit;
6.处理以前没有下注记录的用户
insert into zsbc2008_3(用户名,参与次数,下注总金额,收入金额,获胜次数)
select 用户名,参与次数,下注总金额,收入金额,获胜次数 from zsbc_temp1 t
where t.用户名 not in (select 用户名 from zsbc2008_3 );
commit;
7,处理有下注记录的用户
truncate table zsbc_temp2;
insert into zsbc_temp2
select t.用户名,t.参与次数 + n.参与次数,t.下注总金额 +n.下注总金额 ,t.收入金额 + n.收入金额,t.获胜次数+n.获胜次数
from zsbc_temp1 t,zsbc2008_3 n where t.用户名 = n.用户名;
commit;
delete from zsbc2008_3 where 用户名 in (select 用户名 from zsbc_temp2 );
commit;
insert into zsbc2008_3(用户名,参与次数,下注总金额,收入金额,获胜次数)
select * from zsbc_temp2 ;
commit;
8.设置总开盘数
update zsbc2008_3 set 总开盘数 = 184;
commit;
9.计算余下的字段
update zsbc2008_3
set 净值=收入金额 - 下注总金额,
收入率 = round((收入金额 - 下注总金额) / 参与次数,4),
胜率 = round(获胜次数 / 参与次数,4),
净值除下注总金额 = round((收入金额 - 下注总金额) / 下注总金额,4),
获胜次数除总开盘数 = round(获胜次数 / 总开盘数,4),
参与次数除总开盘数 = round(参与次数 / 总开盘数,4);
commit;
10. 在toad里执行以下语句,并将结果存成html文件.
select rownum, a.* from
(
select * from zsbc2008_3 where 参与次数除总开盘数 >= 0.5 order by 8 desc
) a;
--使用excel本身的功能,生成insert语句 , 比较简单.
http://space.itpub.net/32/viewspace-184153
保存以备用.
遇到一个link出错,参考以下博客后解决:
在安装过程中,报错误: Error in invoking target install of makefile /opt/oracle/product/9.2/rdbms/lib/ins_rdbms.mk ,这里也点击 ignore 忽略错误。
查看全文
同事用dbca创建数据库的时候,运行到了输入 Global database name和sid的时候,
已经输入了,但是next的时候提示
the database name must be between 1 and 8 characters
the sid name must be between 1 and 8 alphanumic characters in length.
原因是:跟建库的终端程序有关。
解决方法:在本地即可.
贵州歌后阿幼朵---现在到处都在放她的歌曲 查看全文
解决ORA-01410:Invalid ROWID的一般步骤
===========================================================
1.使用ANALYZE TABLE <table> VALIDATE STRUCTURE CASCADE验证表和索引中的rowid是否有效.
2.设置event = "1410 trace name errorstack level 3" 跟踪,分析跟踪文件.
"
My suggestion:
1)do the above steps,
1)possibly the index of this table needs rebuild
2)data file corruption: use dbverify
Example
To verify the integrity of the data01.dbf data file, starting with block 1 and
ending with block 500, you execute the following command:
UNIX
$ dbv /users/DB00/u03/data01.dbf start=1 end=500
This should be similar to "analyze table"
Hope this is helpful.
ftp -i -n -s:ftpcommget.txt > ftp_r.txt
ftpcommget.txt:
open 192.168.2.191
user root passwd
get smit.log
close
bye
1) alter session set "_smu_debug_mode" = 4;
2) execute DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('XX.XX.XXXXXX');
p570 oracle9204 rbo
SQL> set autotrace traceonly;
select a.czrkrybh,a.czrkxm,b.czrkpcs from t_person a ,t_huji b
where a.czrkryid=b.czrkryid and a.czrkgmsfhm='510214197501131748';
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=48337 Card=274445 By
tes=20583375)
1 0 HASH JOIN (Cost=48337 Card=274445 Bytes=20583375)
2 1 TABLE ACCESS (BY INDEX ROWID) OF 'T_PERSON' (Cost=2 Card
=272416 Bytes=17707040)
3 2 INDEX (RANGE SCAN) OF 'IND_T_PERSON_CZRKGMSFHM' (NON-U
NIQUE) (Cost=1 Card=108966)
4 1 VIEW OF 'index$_join$_002' (Cost=34791 Card=39567074 Byt
es=395670740)
5 4 HASH JOIN (Cost=48337 Card=274445 Bytes=20583375)
6 5 INDEX (FAST FULL SCAN) OF 'IND_T_HUJI_CZRKRYID' (NON
-UNIQUE) (Cost=33 Card=39567074 Bytes=395670740)
7 5 INDEX (FAST FULL SCAN) OF 'IND_T_HUJI_PCS' (NON-UNIQ
UE) (Cost=33 Card=39567074 Bytes=395670740)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
177037 consistent gets
491176 physical reads
0 redo size
645 bytes sent via SQL*Net to client
655 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
查看全文
魏文王问名医扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位医术最好呢?” 扁鹊回答说:“大哥最好,二哥次之,我最差。” 文王再问:“那么为什么你最出名呢?” 扁鹊答说:“我大哥治病,是治病于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去,只有我们家里的人才知道。我二哥治病,是治病于病情刚刚发作之时。一般人以为他只能治轻微的小病,所以他只在我们的村子里才小有名气。而我扁鹊治病,是治病于病情严重之时。一般人看见的都是我在经脉上穿针管来放血、在皮肤上敷药等大手术,所以他们以为我的医术最高明,因此名气响遍全国。” 文王连连点头称道:“你说得好极了。” 事后控制不如事中控制,事中控制不如事前控制,可惜大多数人都很难做到这一点,等到事情发生了才寻求解决方法,等到损失造成了才寻求弥补。能快速妥善地应对出现的问题当然很好,但很多的时候是亡羊补牢,为时已晚。 因此对于职业人来说,需要我们在工作中时时保持一双发现的眼睛,积极主动地寻找可能发生的问题,防患于未然,这才是对我们的职业素质提出的更高的要求。 试问:我们做dba,有多少人做到扁鹊大哥的水平了? |
1.在oracle建好表
2.用excel打开xml文档,进行格式的修改
3.用toad导入表中
4.写过程将数据更新到相应的表中
www.sans.org/score/checklists/Oracle_Database_
一个不错的文档,保留一下地址:)
when I tried to create a view in a non-existant schema
(oracle 9.2.0.4 for )
CREATE OR REPLACE VIEW non_existant.New_view_name as....
System name: HP-UX rac 9.2.0.4
在执行DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY时报的错:
ORA-30019: 自动撤消模式中的回退段操作非法
ORA-06512: 在"SYS.DBMS_TRANSACTION", line 65
ORA-06512: 在"SYS.DBMS_TRANSACTION", line 85
ORA-06512: 在line 1
pending进程的状态的collecting,解决办法如下:
1.) alter session set "_smu_debug_mode" = 4;
2.) execute DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('......');
注意:如果有多条pending事务,每次要退出sqlplus,并重复以上操作.