jlandzpa's Blog

欢迎来到 jlandzpa's Blog>>   | 首页 资源中心 | unix | others | 数学 | oracle | Disaster Recover | ITPUB论坛

公布计算过程,大家都可以做,并及时将结果发布--nba

发表人:jlandzpa | 发表时间: 2008年十二月12日, 09:14

公布计算过程,大家都可以做,并及时将结果发布

--计算过程

--创建几个表

--存最终结果
create table nba0809 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
净值 number,
收入率 number,
获胜次数 number,
胜率 number,
净值除下注总金额 number,
获胜次数除总开盘数 number,
参与次数除总开盘数 number,
总开盘数 number
);

--存临时结果
create table nba0809_temp1 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
获胜次数 number
);

--存临时结果
create table nba0809_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到表nba0809里.
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做简单计算,结果存到nba0809_temp1

truncate table nba0809_temp1;
insert into nba0809_temp1
select 用户,count(*),sum(下注) ,sum(收入),sum(decode(结果,'成功',1,0)) from szzsbc_temp
group by 用户;
commit;

6.处理以前没有下注记录的用户

insert into nba0809(用户名,参与次数,下注总金额,收入金额,获胜次数)
select 用户名,参与次数,下注总金额,收入金额,获胜次数 from nba0809_temp1 t
where t.用户名 not in (select 用户名 from nba0809);
commit;

7,处理有下注记录的用户

truncate table nba0809_temp2;

insert into nba0809_temp2
select t.用户名,t.参与次数 + n.参与次数,t.下注总金额 +n.下注总金额 ,t.收入金额 + n.收入金额,t.获胜次数+n.获胜次数
from nba0809_temp1 t,nba0809 n where t.用户名 = n.用户名;
commit;

delete from nba0809 where 用户名 in (select 用户名 from nba0809_temp2 );
commit;
insert into nba0809(用户名,参与次数,下注总金额,收入金额,获胜次数)
select * from nba0809_temp2 ;
commit;

8.设置总开盘数
update nba0809 set 总开盘数 = 184;
commit;

9.计算余下的字段
update nba0809
set 净值=收入金额 - 下注总金额,
收入率 = round((收入金额 - 下注总金额) / 参与次数,4),
胜率 = round(获胜次数 / 参与次数,4),
净值除下注总金额 = round((收入金额 - 下注总金额) / 下注总金额,4),
获胜次数除总开盘数 = round(获胜次数 / 总开盘数,4),
参与次数除总开盘数 = round(参与次数 / 总开盘数,4);

commit;

10. 在toad里执行以下语句,并将结果存成html文件.

select rownum, a.* from
(
select * from nba0809 where 参与次数除总开盘数 >= 0.5 order by 8 desc
) a;

公布计算过程,大家都可以做并及时将结果发布--zsbc

发表人:jlandzpa | 发表时间: 2008年十二月12日, 09:12

公布计算过程,大家都可以做并及时将结果发布


--计算过程

--创建几个表

--存最终结果
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文件导入oracle的方法(来自oldwain)

发表人:jlandzpa | 发表时间: 2008年八月27日, 10:49

--使用excel本身的功能,生成insert语句 , 比较简单.

http://space.itpub.net/32/viewspace-184153

保存以备用.


64位曙光x86_64 linux 安装64位的oracle9204

发表人:jlandzpa | 发表时间: 2007年八月17日, 20:24

遇到一个link出错,参考以下博客后解决:

http://yangtingkun.itpub.net/

在安装过程中,报错误: Error in invoking target install of makefile /opt/oracle/product/9.2/rdbms/lib/ins_rdbms.mk ,这里也点击 ignore 忽略错误。

 查看全文

dbca error: the database name must be between 1 and 8 characters

发表人:jlandzpa | 发表时间: 2007年八月16日, 11:47

同事用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.

原因是:跟建库的终端程序有关。

解决方法:在本地即可.


贵州歌后阿幼朵---现在到处都在放她的歌曲

发表人:jlandzpa | 发表时间: 2007年八月16日, 10:44

贵州歌后阿幼朵---现在到处都在放她的歌曲 查看全文

ORA-01410:Invalid ROWID

发表人:jlandzpa | 发表时间: 2007年八月04日, 08:21

解决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.

windows下自动ftp

发表人:jlandzpa | 发表时间: 2007年七月30日, 10:23

ftp -i -n -s:ftpcommget.txt > ftp_r.txt

ftpcommget.txt:

open 192.168.2.191
user root passwd
get smit.log
close
bye


ora-01591

发表人:jlandzpa | 发表时间: 2007年七月30日, 10:21

错误处理: 锁定已被有问题的分配事务处理XX.XX.XXXXXX挂起

1) alter session set "_smu_debug_mode" = 4;
2) execute DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('XX.XX.XXXXXX');


VIEW OF 'index$_join$_002'

发表人:jlandzpa | 发表时间: 2007年四月16日, 14:40

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

 查看全文

扁鹊三兄弟的故事

发表人:jlandzpa | 发表时间: 2007年四月12日, 17:27

魏文王问名医扁鹊说:你们家兄弟三人,都精于医术,到底哪一位医术最好呢? 扁鹊回答说:大哥最好,二哥次之,我最差。 文王再问:那么为什么你最出名呢? 扁鹊答说:我大哥治病,是治病于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去,只有我们家里的人才知道。我二哥治病,是治病于病情刚刚发作之时。一般人以为他只能治轻微的小病,所以他只在我们的村子里才小有名气。而我扁鹊治病,是治病于病情严重之时。一般人看见的都是我在经脉上穿针管来放血、在皮肤上敷药等大手术,所以他们以为我的医术最高明,因此名气响遍全国。 文王连连点头称道:你说得好极了。 事后控制不如事中控制,事中控制不如事前控制,可惜大多数人都很难做到这一点,等到事情发生了才寻求解决方法,等到损失造成了才寻求弥补。能快速妥善地应对出现的问题当然很好,但很多的时候是亡羊补牢,为时已晚。

因此对于职业人来说,需要我们在工作中时时保持一双发现的眼睛,积极主动地寻找可能发生的问题,防患于未然,这才是对我们的职业素质提出的更高的要求。

试问:我们做dba,有多少人做到扁鹊大哥的水平了?


如何将xml格式的数据导入oracle里

发表人:jlandzpa | 发表时间: 2007年四月10日, 09:16

1.在oracle建好表

2.用excel打开xml文档,进行格式的修改

3.用toad导入表中

4.写过程将数据更新到相应的表中


Oracle_Database_Checklist

发表人:jlandzpa | 发表时间: 2007年四月05日, 15:20

www.sans.org/score/checklists/Oracle_Database_Checklist.pdf

一个不错的文档,保留一下地址:)


ORA-00600: internal error code, arguments: [rpidrv-3], [], [], [], [], [], [], []

发表人:jlandzpa | 发表时间: 2007年三月30日, 10:19

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


ora-30019

发表人:jlandzpa | 发表时间: 2007年三月26日, 09:02

在执行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,并重复以上操作.


Valid XHTML 1.0 Strict and CSS. Powered by pLog
Design by Blog.lvwo.com