« March 2008 | Digest首页 | May 2008 »
April 11, 2008
招商银行北京地区营业网点一览表
出处:http://www.eygle.com/digest
| 网点名称 | 地址 | 储蓄电话 | 储蓄营业时间 |
| 亚运村支行 | 朝阳区北辰东路8号北京国际会议中心地下一层 | 84987476 | 9:00-18:00 |
| 静安里支行 | 朝阳区北三环东路8号静安中心首层 | 64666006 | 9:00-18:00 |
| 小关支行 | 朝阳区北四环东路115号三空间写字楼 | 64822450 | 9:00-18:00 |
| 北苑路支行 | 朝阳区北苑路168号中安盛业大厦 | 58246878 | 9:00-18:00 |
| 朝外大街支行 | 朝阳区朝外大街26号朝外们写字中心B座首层 | 85653362-218 | 9:00-18:00 |
| 万通中心支行 | 朝阳区朝外大街甲6号万通中心首层 | 59070215 | 9:00-18:00 |
| 望京西园支行 | 朝阳区东湖南里嘉利花园(炫彩嘉轩)一层 | 64789637 | 9:00-18:00 |
| 东三环支行 | 朝阳区东三环北路1号 | 84510583 | 9:00-18:00 |
| 建外大街支行 | 朝阳区东三环中路39号建外SOHO小区6号楼0668号 | 59000518 | 9:00-18:00 |
| 光华路支行 | 朝阳区光华路1号嘉里中心地下一层 | 85296379 | 9:00-18:00 |
| 慧忠北里支行 | 朝阳区慧忠北里305号楼 | 64887800 | 9:00-18:00 |
| 建国路支行 | 朝阳区建国路116号招商局大厦东侧一层 | 65660168 | 9:00-18:00 |
| 万达广场支行 | 朝阳区建国路93号院万达广场7号楼 | 58206783 | 9:00-18:00 |
| 望京支行 | 朝阳区南湖南路15号院甲1号 | 64799887 | 9:00-18:00 |
| 大望路支行 | 朝阳区西大望路15号3号楼 | 87723210 | 9:00-18:00 |
| 北三环支行 | 朝阳区樱花西街18号贵州大厦一层 | 64446258 | 9:00-18:00 |
| 崇文门支行 | 崇文区崇外大街5号北京新世界商场二期一层 | 67089468 | 9:00-18:00 |
| 安定门支行 | 东城区安定门外大街208号三利大厦一层 | 64217769 | 9:00-18:00 |
| 朝阳门支行 | 东城区朝阳门北大街6号首创大厦一层 | 85282348 | 9:00-18:00 |
| 王府井支行 | 东城区灯市口大街75号 | 65272073 | 9:00-18:00 |
| 东方广场支行 | 东城区东长安街1号东方广场E3座安永大楼2楼平台 | 85186723-8008 | 9:00-18:00 |
| 东直门支行 | 东城区东直门外大街46号天恒大厦一层 | 84608015 | 9:00-18:00 |
| 长安街支行 | 东城区建国门内大街11号 | 65292072 | 9:00-18:00 |
| 方庄支行 | 丰台区方庄芳古园一区29号楼通润商务会馆B区首层 | 87676770-8041 | 9:00-18:00 |
| 海淀支行 | 海淀区北四环西路56号辉煌时代大厦一层 | 62695363 | 9:00-18:00 |
| 北四环支行 | 海淀区北四环中路229号海泰大厦西门一层 | 82884290 | 9:00-18:00 |
| 西三环支行 | 海淀区阜成路67号银都大厦一层 | 68718135-8030 | 9:00-18:00 |
| 万寿路支行 | 海淀区复兴路乙20号 | 68286557 | 9:00-18:00 |
| 世纪城支行 | 海淀区蓝靛厂垂虹园甲1号 | 88876711 | 9:00-18:00 |
| 清华园支行 | 海淀区双清路清华紫光大厦一层 | 62793650 | 9:00-18:00 |
| 万泉河支行 | 海淀区万柳阳春光华家园甲5号 | 82571483 | 9:00-18:00 |
| 大运村支行 | 海淀区知春路27号量子芯座大厦一层 | 82357508 | 9:00-18:00 |
| 中关村支行 | 海淀区中关村大街42号 | 62544815 | 9:00-18:00 |
| 双榆树支行 | 海淀区中关村南大街9号理工科技大厦一层 | 68467183 | 9:00-18:00 |
| 分行营业部 | 西城区复兴门内大街156号A座首层 | 66426622 | 9:00-18:00 |
| 金融街支行 | 西城区金融街35号国际企业大厦C座首层 | 88091254 | 9:00-18:00 |
| 首体支行 | 西城区西直门外大街甲143号凯旋大厦A座首层 | 88016694 | 9:00-18:00 |
| 展览路支行 | 西城区展览馆路乙3号 | 68365433 | 9:00-18:00 |
| 宣武门支行 | 宣武区宣武门外大街30号富卓大厦首层 | 63164380-8035 | 9:00-18:00 |
Posted by eygle at 2:36 PM | Comments (2)
Oracle Internal Events Introduction
出处:http://www.eygle.com/digest
Introduction:(简介)
有四种类型的Events:
Immediate dumps
Conditional dumps
Trace dumps
Events that change database behaviour
每一个事件都有一个号跟Oracle的错误信息是一样的.如10046和ORA-10046
每一个事件都有一个Level,可以是以下:
范围1到10
位标 0x01 0x02 0x04 0x08 0x10
标识 0=off,1=on
ID号 对象ID(object id),内存地址(memory address)
要注意的是,Events在每一个版本之间都有所改变.有一些存在的事件可能存在争议性或者已经不可用了,往往这些事件号会由新的事件所替代掉.也要注意在当前的版本中message file不一定可以反映出Events.
很多Events都会影响数据库的行为,一些测试Events极有可能导致数据库DOWN掉.所以,在没有Oracle Support的前提下,最好不要在PRO系统上做Events操作.DEV系统上如果要做Events最好先做个数据库的全备份.
Enabling Events(Enable事件)
Events可以在Instance一级Enabled,主要是在INIT.ORA文件中做操作:
event='event trace name context forever, level level';
(红色部分:event指事件号.level指定事件的级别)
一次可以Enable多个事件,可以用以下两种方式:
1. 用一个冒号隔开
event = "10248 trace name context forever, level 10:10249 trace name context forever, level 10"
2. 两个Events分开写
event="10248 trace name context forever, level 10"
event="10249 trace name context forever, level 10"#一些版本的Oracle,event要一样的大小写
Events也可以在Instance一级用ALTER SYSTEM命令来Enable:
ALTER SYSTEM SET EVENTS 'event trace name context forever, level level';
在Instance一级用以下Disable
ALTER SYSTEM SET EVENTS 'event trace name context off';
Events也可以在Session一级用ALTER SESSION命令来Enable:
ALTER SESSION SET EVENTS 'event trace name context forever, level level';
在Session一级用以下命令Disable:
ALTER SESSION SET EVENTS 'event trace name context off';
Events在其他的Session用ORADEBUG来Enable:
在一个Process中实现Enable:
ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
在某个进程中Enable:
ORADEBUG SETORAPID 8(PID进程号)
ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
以下命令Disable:
ORADEBUG EVENT event TRACE NAME CONTEXT OFF
在Session中实现Enable:
ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
在Session中实现Disable:
ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF
Events也可以用DBMS_SYSTEM.SETEV包来实现Enable和Disable
(在做之前要先从V$session视图中获得SID和Serial#)
用以下方式:EXECUTE DBMS_SYSTEM.SET_EV(SID,Serial#,event,level, '')
如EXECUTE dbms_system.set_ev (9,29,10046,8,'');
要Disable则将level改为0,如: EXECUTE dbms_system.set_ev (9,29,10046,0,'');
Listing All Events:(列出所有可用的Events)
大部分的Events number的范围都在10000到10999.可以用以下命令Dump出所有的信息
SET SERVEROUTPUT ON
DECLARE
err_msg VARCHAR2(120);
BEGIN
dbms_output.enable (1000000);
FOR err_num IN 10000..10999
LOOP
err_msg := SQLERRM (-err_num);
IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN
dbms_output.put_line (err_msg);
END IF;
END LOOP;
END;
/
在UNIX系统下message文件在底下目录$ORACLE_HOME/rdbms/mesg/oraus.msg
在NT系统下message文件在底下目录$ORACLE_HOME/rdbms/mesg/oraus.msg
Listing Enabled Events(列出Enabled Events)
用以下命令列出在当前Session已经Enabled Events:
SET SERVEROUTPUT ON
DECLARE
l_level NUMBER;
BEGIN
FOR l_event IN 10000..10999
LOOP
dbms_system.read_ev (l_event,l_level);
IF l_level > 0 THEN
dbms_output.put_line ('Event '||TO_CHAR (l_event)||
' is set at level '||TO_CHAR (l_level));
END IF;
END LOOP;
END;
/
常用Events的参考:(红色的为最常用的而且对DBA比较有用的Events)
Event 10013 - Monitor Transaction Recovery------在Startup时跟踪事务恢复
ALTER SESSION SET EVENTS '10013 trace name context forever, level 1';
Event 10015 - Dump Undo Segment Headers----在事务恢复后做Dump回退段头信息
ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';
Event 10032 - Dump Sort Statistics----Dump排序的统计信息,level 10是最详细的
ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
Event 10033 - Dump Sort Intermediate Run Statistics--level 10
ALTER SESSION SET EVENTS '10033 trace name context forever, level 10';
Event 10045 - Trace Free List Management Operations--跟踪Freelist
ALTER SESSION SET EVENTS '10045 trace name context forever, level 1';
Event 10046 - Enable SQL Statement Trace---跟踪SQL,有执行计划,邦定变量和等待的统计信息,level 12最详细
ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
级别level参考如下图:
|
|
|
Event 10053 - Dump Optimizer Decisions---在分析SQL语句时,Dump出优化器所做的选择,级别level 1最详细
ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
参考level:
|
Level |
Action |
|
1 |
Print statistics and computations |
|
2 |
Print computations only |
Event 10060 - Dump Predicates---(参考http://www.juliandyke.com/)
Event 10065 - Restrict Library Cache Dump Output for State Object Dumps-(参考http://www.juliandyke.com/)
Event 10079 - Dump SQL*Net Statistics---Dump SQL*NeT的统计信息
ALTER SESSION SET EVENTS '10079 trace name context forever, level 2';
Event 10081 - Trace High Water Mark Changes--跟踪HWM的改变
ALTER SESSION SET EVENTS '10081 trace name context forever, level 1';
Event 10104 - Dump Hash Join Statistics--Dump HASH JOIN的统计信息,用level 10
ALTER SESSION SET EVENTS '10104 trace name context forever, level 10';
Event 10128 - Dump Partition Pruning Information--Dump分区表信息
ALTER SESSION SET EVENTS '10128 trace name context forever, level level';
Level参考
|
Level |
Action |
|
0x0001 |
Dump pruning descriptor for each partitioned object |
|
0x0002 |
Dump partition iterators |
|
0x0004 |
Dump optimizer decisions about partition-wise joins |
|
0x0008 |
Dump ROWID range scan pruning information |
在9.0.1或者后面的版本,在level 2后还需要建立如下的表:
CREATE TABLE kkpap_pruning
(
partition_count NUMBER,
iterator VARCHAR2(32),
partition_level VARCHAR2(32),
order_pt VARCHAR2(12),
call_time VARCHAR2(12),
part# NUMBER,
subp# NUMBER,
abs# NUMBER
);
Event 10200 - Dump Consistent Reads---Dump出一致读的信息
ALTER SESSION SET EVENTS '10200 trace name context forever, level 1';
Event 10201 - Dump Consistent Read Undo Application
ALTER SESSION SET EVENTS '10201 trace name context forever, level 1';
Event 10220 - Dump Changes to Undo Header--Dump出Undo头信息的改变
ALTER SESSION SET EVENTS '10220 trace name context forever, level 1';
Event 10221 - Dump Undo Changes--Dump Undo的改变
ALTER SESSION SET EVENTS '10221 trace name context forever, level 7';
Event 10224 - Dump Index Block Splits / Deletes--Dump索引块的Split和Delete信息
ALTER SESSION SET EVENTS '10224 trace name context forever, level 1';
Event 10225 - Dump Changes to Dictionary Managed Extents---Dump出在Row Cache中,字典管理的Extents的改变
ALTER SESSION SET EVENTS '10225 trace name context forever, level 1';
Event 10231--设置在做全表扫描时跳过损坏的数据块(在做EXP时,如果有坏块,设置这个可以使EXP导出时跳过坏块,使得部分数据能可以使用)
ALTER SYSTEM SET EVENTS '10231 trace name context forever,level 10';
Event 10241 - Dump Remote SQL Execution--Dump远程SQL语句的执行信息
ALTER SESSION SET EVENTS '10241 trace name context forever, level 1';
Event 10246 - Trace PMON Process---只能在init.ora中做,不能用ALTER SYSTEM做
event = "10246 trace name context forever, level 1"
Event 10248 - Trace Dispatcher Processes---在init.ora中做(9iDump到udump目录中)
event = "10248 trace name context forever, level 10"
Event 10249 - Trace Shared Server (MTS) Processes---在init.ora中做(9iDump到udump目录中)
event = "10249 trace name context forever, level 10"
Event 10270 - Debug Shared Cursors
event = "10270 trace name context forever, level 10"
Event 10299 - Debug Prefetching---(参考http://www.juliandyke.com/)
event = "10299 trace name context forever, level 1"
Event 10357 - Debug Direct Path---(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10357 trace name context forever, level 1';
Event 10390 - Dump Parallel Execution Slave Statistics--(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10390 trace name context forever, level level';
Event 10391-Dump Parallel Execution Granule Allocation---
(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10391 trace name context forever, level level';
Event 10393 - Dump Parallel Execution Statistics--(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10393 trace name context forever, level 1';
Event 10500 - Trace SMON Process--在init.ora中做
event = "10500 trace name context forever, level 1"
Event 10608 - Trace Bitmap Index Creation--跟踪二位图索引
ALTER SESSION SET EVENTS '10608 trace name context forever, level 10';
Event 10704 - Trace Enqueues--跟踪队列
ALTER SESSION SET EVENTS '10704 trace name context forever, level 1';
Event 10706 - Trace Global Enqueue Manipulation-(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10706 trace name context forever, level 1';
Event 10708 - Trace RAC Buffer Cache--跟踪RAC的Buffer Cache
ALTER SESSION SET EVENTS '10708 trace name context forever, level 10';
Event 10710 - Trace Bitmap Index Access--(参考http://www.juliandyke.com/)
ALTER SESSION SET EVENTS '10710 trace name context forever, level 1';
Event 10711 - Trace Bitmap Index Merge Operation--
ALTER SESSION SET EVENTS '10711 trace name context forever, level 1';
Event 10712 - Trace Bitmap Index OR Operation--
ALTER SESSION SET EVENTS '10712 trace name context forever, level 1';
Event 10713 - Trace Bitmap Index AND Operation--
ALTER SESSION SET EVENTS '10713 trace name context forever, level 1';
Event 10714 - Trace Bitmap Index MINUS Operation--
ALTER SESSION SET EVENTS '10714 trace name context forever, level 1';
Event 10715 - Trace Bitmap Index Conversion to ROWIDs Operation--
ALTER SESSION SET EVENTS '10715 trace name context forever, level 1';
Event 10716 - Trace Bitmap Index Compress/Decompress--
ALTER SESSION SET EVENTS '10716 trace name context forever, level 1';
Event 10717 - Trace Bitmap Index Compaction--
ALTER SESSION SET EVENTS '10717 trace name context forever, level 1';
Event 10719 - Trace Bitmap Index DML--
ALTER SESSION SET EVENTS '10719 trace name context forever, level 1';
Event 10730 - Trace Fine Grained Access Predicates--
ALTER SESSION SET EVENTS '10730 trace name context forever, level 1';
Event 10731 - Trace CURSOR Statements--
ALTER SESSION SET EVENTS '10731 trace name context forever, level level';
Levels are:
Level Action
1 Print parent query and subquery
2 Print subquery only
Event 10928 - Trace PL/SQL Execution--
ALTER SESSION SET EVENTS '10928 trace name context forever, level 1';
Event 10938 - Dump PL/SQL Execution Statistics--
ALTER SESSION SET EVENTS '10938 trace name context forever, level 1';
一些其他的Events:
ALTER SESSION SET EVENTS 'immediate trace name flush_cache';--Flush the Buffer cache
Posted by eygle at 10:05 AM | Comments (0)
Oracle常用dump命令介绍
出处:http://www.eygle.com/digest
一.Memory Dumps
1).Global Area
ALTER SESSION SET EVENTS 'immediate trace name global_area level n';
1 包含PGA
2 包含SGA
4 包含UGA
8 包含indrect memory
2).Library Cache
ALTER SESSION SET EVENTS 'immediate trace name library_cache level n';
1 library cache统计信息
2 包含hash table histogram
3 包含object handle
4 包含object结构(Heap 0)
3).Row Cache
ALTER SESSION SET EVENTS 'immediate trace name row_cache level n';
1 row cache统计信息
2 包含hash table histogram
8 包含object结构
4).Buffers
ALTER SESSION SET EVENTS 'immediate trace name buffers level n';
1 buffer header
2 level 1 + block header
3 level 2 + block contents
4 level 1 + hash chain
5 level 2 + hash chain
6 level 3 + hash chain
8 level 4 + users/waiters
9 level 5 + users/waiters
10 level 6 + users/waiters
5).Buffer
ALTER SESSION SET EVENTS 'immediate trace name buffer level n';
n为某个指定block的rdba,该命令可以转储某个block在buffer中的所有版本。
6).Heap
ALTER SESSION SET EVENTS 'immediate trace name heapdump level level';
1 PGA摘要
2 SGA摘要
4 UGA摘要
8 Current call(CGA)摘要
16 User call(CGA)摘要
32 Large call(LGA)摘要
1025 PGA内容
2050 SGA内容
4100 UGA内容
8200 Current call内容
16400 User call内容
32800 Large call内容
7).Sub Heap
Oracle 9.0.1版本之前
ALTER SESSION SET EVENTS 'immediate trace name heapdump_addr level n';
若n为subheap的地址,转储的是subheap的摘要信息
若n为subheap的地址+1,转储的则是subheap的内容
Oracle 9.2.0版本之后
ALTER SESSION SET EVENTS 'immediate trace name heapdump_addr level n, addr m';
其中m为subheap的地址
n为1转储subheap的摘要,n为2转储subheap的内容
8).Process State
ALTER SESSION SET EVENTS 'immediate trace name processstate level n';
9).System State
ALTER SESSION SET EVENTS 'immediate trace name systemstate level n';
10).Error State
ALTER SESSION SET EVENTS 'immediate trace name errorstack level n';
0 Error stack
1 level 0 + function call stack
2 level 1 + process state
3 level 2 + context area
11).Hang Analysis
ALTER SESSION SET EVENTS 'immediate trace name hanganalyze level n';
12).Work Area
ALTER SESSION SET EVENTS 'immediate trace name workareatab_dump level n';
1 SGA信息
2 Workarea Table摘要信息
3 Workarea Table详细信息
13).Latches
ALTER SESSION SET EVENTS 'immediate trace name latches level n';
1 latch信息
2 统计信息
14).Events
ALTER SESSION SET EVENTS 'immediate trace name events level n';
1 session
2 process
3 system
15).Locks
ALTER SESSION SET EVENTS 'immediate trace name locks level n';
16).Shared Server Process
ALTER SESSION SET EVENTS 'immediate trace name shared_server_state level n';
n取值为1~14
17).Background Messages
ALTER SESSION SET EVENTS 'immediate trace name bg_messages level n';
n为pid+1
二.File Dumps
1).Block
Oracle 7之前
ALTER SESSION SET EVENTS 'immediate trace name blockdump level n';
n为block的rdba
Oracle8以后
ALTER SYSTEM DUMP DATAFILE file# BLOCK block#;
ALTER SYSTEM DUMP DATAFILE file#
BLOCK MIN minimum_block#
BLOCK MAX maximum_block#;
2).Tree Dump
ALTER SESSION SET EVENTS 'immediate trace name treedump level n';
n为object_id
3).Undo Segment Header
ALTER SYSTEM DUMP UNDO_HEADER 'segment_name';
4).Undo for a Transaction
ALTER SYSTEM DUMP UNDO BLOCK 'segment_name' XID xidusn xidslot xidsqn;
5).File Header
ALTER SESSION SET EVENTS 'immediate trace name file_hdrs level n';
1 控制文件中的文件头信息
2 level 1 + 文件头信息
3 level 2 + 数据文件头信息
10 level 3
6).Control file
ALTER SESSION SET EVENTS 'immediate trace name controlf level n';
1 文件头信息
2 level 1 + 数据库信息 + 检查点信息
3 level 2 + 可重用节信息
10 level 3
7).Redo log Header
ALTER SESSION SET EVENTS 'immediate trace name redohdr level n';
1 控制文件中的redo log信息
2 level 1 + 文件头信息
3 level 2 + 日志文件头信息
10 level 3
8).Redo log
ALTER SYSTEM DUMP LOGFILE 'FileName';
ALTER SYSTEM DUMP LOGFILE 'FileName'
SCN MIN MinimumSCN
SCN MAX MaximumSCN
TIME MIN MinimumTime
TIME MAX MaximumTime
LAYER Layer
OPCODE Opcode
DBA MIN FileNumber . BlockNumber
DBA MAX FileNumber . BlockNumber
RBA MIN LogFileSequenceNumber . BlockNumber
RBA MAX LogFileSequenceNumber . BlockNumber;
其中time = (((((yyyy - 1988)) * 12 + mm - 1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;
9).Loghist
ALTER SESSION SET EVENTS 'immediate trace name loghist level n';
1 dump控制文件中最早和最迟的日志历史项
>1 dump 2^n个日志历史项
Posted by eygle at 9:48 AM | Comments (0)
April 7, 2008
驳张宏良教授的"精英卖国论"
出处:http://www.eygle.com/digest
作者:李剑芒
张宏良教授的很多文章我拜读过,总体感觉是逻辑性不强但蛊惑性很大,擅长使用非中性词汇。如果张宏良是一位政客,这也没什么不妥。但张宏良却是一个学者,这使得我对他作为学者的中立性,严谨性产生怀疑。当然当今中国学者出卖学术道德已经不是什么新鲜事。学者们都争着向政客出卖学术道德。有点本事的卖给精英赚大钱,没本事的卖给左翼赚小钱。有人等着眼珠子、脱了裤子卖,有人羞羞答答地立个牌坊卖。赚小钱的当然看赚大钱的不顺眼,希望他自己的主人得势使他能赚大钱。还是立牌坊的可笑,不管左右那一边,这个牌坊长得一模一样,上书五个大字《为人民服务》
我不是学者,没必要遵循学术的严谨性和中立性,但在张教授发表的一篇论文涉及的领域却是我的专业。你在我不懂的领域怎么说我不管,但跑到我的领域胡说八道,怪不得我不客气了。我在此想批驳的文章是《出卖国家利益的买办精英集团》。这篇文章的蛊惑力极大,这个巨大蛊惑力来自人民对银行业不熟悉。银行是一个社会经济的心脏,且他的企业结构与其它企业相差巨大。由于它的这个特殊地位及特点,银行业的道德标准要求极高。这就产生一些特殊的行为规则。不明白这些行为规则而拿日常生活中的简单"道理"来解释银行行为就有些别有用心的味道。
我对银行的兴趣来自我的教育背景及职业经验。在MBA读书时我是金融学,会计学,及银行管理学"数字"课的佼佼者。毕业后银行管理学教授利用他个人关系把我引荐给加拿大银行家协会和比利时银行家协会。这使我在银行管理理论领域忙活了8年。与教授合作,在我手下培训过的荷兰,比利时,加拿大银行管理人员不下百人。至今荷兰ING银行,ABM AMRO银行,加拿大银行家协会,比利时银行家协会,Nyenrode大学使用的银行风险管理培训软件还是我在1999年前后编写的。我可以非常自信地说;我对银行业的专业知识和张教授不在一个台阶上。
张教授精英卖国论的基点是外资在国有银行的投入得到超乎寻常的巨大利润。比方说张教授众多例子中的第一个例子;"2006年,美国高盛集团、德国安联集团及美国运通公司出资37.8亿美元(折合人民币约295亿)入股工商银行,收购工行约10%的股份,收购价格 1.16元。上市后,按照2007年1月4日盘中价格6.77元计算,市值最高达到2755亿元,三家外资公司净赚2460亿元人民币,不到一年时间投资收益9.3倍"。所以精英们在卖国!
让我先不用我的专业知识,只是运用一点逻辑常识看看张教授的逻辑问题:第一,"收购价格 1.16元","盘中价格6.77元",谁有能耐把它给我算出利润"9.3倍"来?第二,10%的外国银行赚了2755亿元,90%的中方赚了多少?第三,如果卖国的精英们事先知道有此等巨额利润,他们为什么自己不赚,却如此客气地让给外国人,他们各个大公无私?第四,你见过卖国不利己的卖国贼吗?我不知道张教授是否想过这些问题。
现在让我们看看银行业。几乎没有一个公司没有债务,但除银行业外,如果公司的债务超过公司股东资产(原始投资+利润截流),这个公司就相当的危险。但银行是一个怪物;它的债务可以达到股东资产的10倍到20倍。所以银行基本上是拿别人的钱赚钱的公司。如果银行允许向其它公司那样冒险,那么如果银行赌赢了它将"海赚",如果赌输了存户倒霉。这是极其不道德的行为,这种不道德行为会引发社会骚乱,政府是不允许这种行为的。所以在任何国家,银行是不允许不道德的人(如有犯罪历史的人)经营的。不光如此,西方发达国家为了保证银行安全建立了银行风险管理标准。这个标准原来称BASEL标准,现在标准的第二版已经出台称BASEL II(我曾在2005年培训47名ING银行全球年轻信贷管理者,目的就是熟悉BASEL II及一些新的风险衡量方法)。BASEL II说白了就是一句话:银行自己必须有"足够"的股金使得银行在遇到意外恶性坏账时不至于倒闭。有人说中国银行没问题,因为如果银行坏账太多,多印点钱不就齐了。如果国家经济真的那么简单,我们就不用干活了,光印钱不就什么都解决了!
中国银行在引进外资之前是什么样子呢?中国银行的坏账能把任何外国银行的资深银行家吓死。如果中国银行市场开放,所有中国银行将在短期内被外国银行竞争倒闭。但中国已经加入WTO,加入WTO的条件就是开放中国市场,其中包括银行市场。你想赚别人的钱,不让别人赚你的钱,天下没有这种道理。但外国人理解中国银行的危险状况,所以把银行市场开放推迟到2008年(就是今年,还记得老胡一再强调金融安全吗?)。可中国各银行的坏账无法在短期内被利润冲掉!怎么办呢?只有一个办法;大量注入新股金。
这个新股金从那里来呢?两条路;中国股民,或外国人。第一条路的好处是肥水不外流,但坏处是鸡蛋装在一个筐里,一旦筐掉地上,整筐鸡蛋全完,这在风险管理上是最愚蠢的做法。加上当年银行那个摇摇欲坠的样子,哪个不要命的敢把这明显害人的股票卖给中国股民,连深知内情的"精英"们自己都不卖,这说明没人看好中国银行。所以这批臭鸡蛋只能借着外国人正削尖脑袋往中国钻的机会塞给外国人。当然外国人也不是一帮傻子:"你塞给我可以,但得便宜点"。就这样我们自以为把一大批臭鸡蛋塞给了傻逼老外(注意美国的次级债也是这样塞给外国人的)。没想到,短短一年,那批臭鸡蛋居然孵出金鸡来了。张教授指着老外筐里的一批金鸡叫骂卖臭鸡蛋的伙计卖国贼。卖臭鸡蛋的伙计自己还在那里后悔他自己没买呢。张教授的指责是不是太可笑!卖臭鸡蛋的时候,张教授躲到哪里去了?
如果我们非要骂某些人,让某些人为此负责,那我们来看看到底谁对此负责。是什么造成当年银行那个摇摇欲坠的样子?是坏账!是谁借了银行钱不还而造成这些坏账?国有企业!是谁大笔大笔往国有企业注资不考虑企业的还债能力?左翼政府!哈,这是左派惹得臊事儿,强迫后面人帮他们擦屁股。擦干净了他们反过来咬一口。这有点太不够意思了吧。精英们着急把金鸡蛋当臭鸡蛋塞进老外筐里,现在看来愚蠢的可笑(实际上是马后炮),但那些惹祸的人难道没有责任?
我不想为那些野蛮抢夺国家财产的"精英"们辩护,但我对说歪理的人更不放心。我不怕坏人,我怕那些把自己打扮的过于漂亮的人。因为人不可能那么漂亮,打扮的过于漂亮的目的只有一个:骗。
原文链接:http://www.bokerb.com/user/jianmang/archives/2008/20081231718.html
Posted by eygle at 9:43 PM | Comments (2)
中国银行已成为外资超级提款机
出处:http://www.eygle.com/digest
作者:中国社科院经济所 左大培
按照西欧大多数国家的定义,将国有企业转变为股份公司并且向私人出售其股票,就是将该企业私有化;而一个原国有企业变成股份公司后如果已经将50%以上的股票出售给了私人,该企业就算是"完成了私有化"。根据这样的标准,最近几年中国各大国有银行的"股份制改造"就是不折不扣的私有化,因为它将国有银行变成了股份公司并向私人出售其股权。
表面上看,这个"股份制改造"进行得很"规范",十分合乎股份企业股票上市的程序:各大国有银行首先招股以形成大股东,在这个过程中"引进战略投资者";然后再将其股票在股票市场中上市。而有关部门为原各大国有银行招股所规定的充当"战略投资者"的条件,也似乎相当"规范"和"合乎国际惯例",为有权"购买"中国的银行股权的"战略投资者"所规定的资金和经营资格标准,似乎是"完全与国际接轨"的。
但就是这样"规范"的招股和"引进战略投资者",却将中国几乎所有的重要银行的大量股权以低得惊人的"价格""卖"给了外国的私营大企业,实际上是将中国人民的上万亿元财产白白送给了外国的资本家。中央民族大学证券研究所主任张宏良教授2007年8月19日的文章"中国的证券监管与经济安全"一文,对中国各大银行出售股权给外资企业所造成的中国人民的财产损失作了一个初步的统计。这个统计所列举的数据,最清楚地说明了私有化给中国人民造成了什么样的损失。我们有必要将张宏良教授所汇总的数据全部摘引在下边:
"银行资产流失统计
1.中国工商银行:2006年,美国高盛集团、德国安联集团及美国运通公司出资37.8亿美元(折合人民币约295亿)入股工商银行,收购工行10%的股份,收购价格1.16元。上市后,按照2007年1月4日盘中价格6.77元计算,市值最高达到2755亿元,三家外资公司净赚2460亿元人民币,不到一年时间投资收益9.3倍,世界罕见。
2.中国银行:苏格兰皇家银行、新加坡淡马锡控股、瑞银集团和亚洲开发银行投资中国银行共51.75亿美元(合人民币约403亿),收购价格1.22元。上市后,按照2007年5月10日盘中价格6.26元计算,市值最高达到2822亿元,四家外资公司净赚2419亿元人民币,不到一年时间投资收益6.6倍。
3.兴业银行:2006年,香港恒生银行、新加坡新政泰达和国际金融公司共出资27亿,以每股2.7元的价格购入兴业银行10亿股,上市后,股价达到37元多,三家外资公司净赚370亿。根据2007年2月12日《参考消息》报道,以后每年都有300%以上回报。该银行上市募集资金共159.95亿,等于全部送给了三家外资公司。该银行国内发行价格每股15.98(元),吸引的网上网下申购资金高达11610亿。
4.深圳发展银行:美国新桥投资集团以每股3.5元购买深圳发展银行3.48亿股,目前股价已达35.8元,投资增殖10倍,按照深发展20亿多股计算,新桥用12.18亿获得了700多亿。根据新桥目前的做法,很快将达到1000亿元。而新桥集团本身就是庄家,根本不是银行,如何能改善我国银行治理结构?况且整个银行都被美国人拿走了,即便改善对我国又有什么意义?
5.华夏银行:德意志银行和萨尔•奥彭海姆银行联合组成的财团将出资26亿元人民币,购入华夏银行约5.872亿股份,占华夏银行总股数的14%。每股价格4.5元,现在近14元,净赚56亿多人民币。目前已被德国银行控股,500亿落入对方手中。目前德国人对华夏已形成了联合控股,该银行名义上还是中国(的)银行,实际已成为外资控股银行。
6.中国交通银行:汇丰银行(汇丰)持股交行19.9%的股权,出资144.61亿元购买91.15亿股,每股为1.86元。交行2006年5月在香港上市,现在市价超过10港元,净赚近800多亿,07年国内A股发行上市又赚取500多亿,合计将近1400亿,10倍回报。
7.中国建设银行:上市前,美国银行和淡马锡公司分别斥资25亿美元和14.6亿美元购买建行9%和5.1%的股权,每股定价0.94元港币。发行价格2.35元港币,最高市价5.35元港币。按照目前建行共有2247亿股计算,2家净赚1300多亿港币。
8.浦东发展银行:花旗集团出资6700万美元收购浦发行4.62%的股份,超过1.8亿股,每股约2.96元,并且协议规定日后花旗集团有权收购19.9%的股份,目前浦发行股价超过38元,花旗净赚62亿元。目前花旗尚未行权,一旦行权将赚取62亿的数倍。
9.民生银行:2004年,淡马锡控股旗下的亚洲金融公司以1.1(约8亿人民币)亿美元的价格收购民生银行2.36亿股股份,占民生银行总股份的4.55%,约3.72元,目前该股已达12元多,加上两年送配,市值已达50亿元,净赚约40亿。
(上述交易低价转让外资净赚约9200多亿,加上广发行,损失超过1万亿人民币,其中绝大部分是2006年一年转让的损失,再加上已经全部完成合资的等待上市的几十家地方银行,未来损失将越来越惊人)
10.广东发展银行:2006年美国花旗银行以联合收购的名义,自己出资不过60亿,就控制了拥有3558亿元总资产、27家分行、502家网点,与世界83个国家和地区917家银行具有代理行关系,连续多年位列全球银行500强的广东发展银行。并且中国移动、国家电网和中国信托还各搭进去60亿,共180亿。把银行白白送人还要再搭进去180亿,已经完全超越了市场交换的范畴。
11.渤海银行及地方银行:另外,2005年挂牌成立的我国第一家股份制银行----渤海银行宣布,渣打银行以1.23亿美元购入即将成立的渤海银行19.9%的股份,成为其第二大股东。除了参股渤海银行之外,渣打银行参股光大银行有望在今年年底前完成。目前,外资银行在华进入了加速发展期,中国全部银行无一例外地已被18家外资银行参股或控制。
12.中国平安保险股份有限公司:平安是中国第一家股份制保险公司,也是第一家引进外资的保险公司,汇丰集团是平安最大外资股东,汇丰是2002年投资6亿美元,50亿人民币投资平安;平安集团04年6月24日在香港成功上市,发行价11.88港元,目前已上升到40元港币。今年2月又募集A股资金388亿。截至2006年6月30日,集团总资产为人民币3,587.18亿元,权益总额为人民币381.04亿元。目前,公司市值近2000亿港币,A股5500亿人民币。
13.新华人寿:新华人寿即将上市,现在苏黎世保险持有新华人寿22800万股,每股5.25元,持股比例为19%,已成为新华人寿的最大单一股东。但实际上,目前新华人寿的实际控制者是东方集团,由于东方实业和东方集团分别持有新华人寿5%和8.02%的股权,再加上东方集团持有新华人寿其他股东的股权,东方集团直接或间接持有新华人寿的股权肯定超过20%。(据说,苏黎世通过中国公司暗中控股已超过56%,投资34亿,一旦上市,市值至少600亿)
这是我为写《中国银行已成为外资超级提款机》专门调查统计的资料,当时在统计过程中忍不住直流泪,我们并没有发生战争,更没有战败要进行赔款,可是上述损失如同战败赔款那样让国人痛心。上述廉价卖给外资的银行股,无一不是远远低于市场价格,最低的如兴业银行甚至不到市场价格的十分之一。仅中国工商银行、中国银行、中国建设银行和中国交通银行四家损失就超过7500亿元,仅2006年一年银行股贱卖损失就超过6千亿元,整个银行金融领域能统计到的损失就超过万亿。可能大家感觉这些数字很枯燥,我们对比一下大家就会感觉到这些数字的含义了,根据国务院医改调查小组组长葛延风讲,解决全国的医疗问题每年6800个亿就够了,可是仅仅几家银行就把全国的医疗费用送给了外资"。
我只想给张宏良教授的数字补充一点;送给外资的银行财产至少为一万亿元人民币,占2006年中国GDP的将近5%(2006年中国的GDP将近22万亿元人民币),而中国的全部医疗保健开支也不过占中国GDP的6%。这也就是说,按张宏良计算的数字,中国光2006年一年由于"银行产权改革"而损失给外国人的财产,就差不多够让全体中国人民免费享受一年的医疗保健了。
最近正在讨论中国政府今后的医疗保健政策。主张"中国医疗保健事业完全市场化"的人反对实行全民医疗保健制度,他们所提的理由中最能打动中国政府的就是,实行全民医疗保健制度会导致政府的支出太高。可就是这些一提到居民福利就怕政府开支太高的"改革派",在向外国资本家奉送中国的国有财产时却从来就不怕中国政府有什么损失。他们怎么就不能算算中国的"银行改革"和"国有企业改革"造成了多少国有资产损失,这些损失的资金又可以为多少中国居民提供免费的医疗保健服务?
为这样的"银行改革"辩护的人会说,张宏良那样的算法根据的仅仅是银行股票一时的市场价格,而股票的市场价格是每天都在变化的,因此根据一时的股票市场价格计算的出售股权损失是不可靠的。对这种辩护的最好反驳,是对比被出售的股权的售价与它代表的对利润的要求权。经济学和金融学的常识是,决定股票价格的基本因素是股票对应的未来利润分红的资本化,其计算方法是:这种由基本因素决定的股票价格,大体等于该股票的利润分红除以无风险资产的利息率。而就是按照这样的基本因素计算,张宏良所提到的那些向外资"出售"国有股权的行为也已经将大量中国人民的财富白白奉送给了外国资本。
根据上边援引的张宏良所搜集到的数据和1美元兑换8元人民币的汇率可以计算出,在张宏良所列出的对那13个中国国有金融机构的"出售"中,总共有11个银行的10-20%的股权被以约1300亿元人民币的价格"出售"给了外资大企业,其中个别银行被"出售"给外资企业的股权份额还可能超过了20%。
根据前些日子报道的前三季度经营情况推算,2007年中国14家上市银行的利润应当接近3千亿元人民币。张宏良所谈到的那11家银行,肯定占中国这14家上市银行利润的绝大部分。根据这些数据推算,如果按外资占股10%的比例算,外资从中国各上市银行每年的3千亿元利润中可分得利润3百亿元,与外资购买这些股权的售价1300亿元相比,利润率约为23%,按照5%的正常利息率计算,这300亿元红利所对应的按基本因素计算的股价应为6千亿元;而如果按外资占股20%的比例算,外资从中国各上市银行每年的3千亿元利润中可分得利润6百亿元,与外资购买这些股权的售价1300亿元相比,利润率约为46%,按照5%的正常利息率计算,这6百亿元红利所对应的按基本因素计算的股价应为1万2千亿元人民币!
这样简单的计算就能够说明,向外资出售中国原国有银行股权的售价肯定过低,由此将中国的各大银行的一大部分利润无偿地奉送给了外资,造成了中国人民的财产和收入的实实在在的损失。
问题还在于,按照中国现行的公司法,外资"购买"中国的银行股权的资金只能算作被它们"收购"的银行的财产。如果真是那样运作,中国政府和中国人民由向外资"出售"银行中就得不到任何财务上的好处,向外资"出售"银行连中国政府的财政收入都没有增加!
如果中国的这些银行真在资金的运营上面临着什么国内无法解决的困难,那么向外资出售一部分股权可能也是一种无可奈何之举。可是中国经济和中国金融的实际情况却恰恰与此相反。
就国内目前的情况来说,中国的银行现在流动性过剩、资产过剩,银行的资产和负债相对于名义GDP都过高,造成了直接的通货膨胀压力,并且使股票市场和房地产市场等金融市场高度不稳定,需要减少整个银行系统的资产和负债。在这种情况下通过"吸引外资"来增加银行系统的负债和资产,是一种典型的倒行逆施的行为,只会增加流动性的过剩,加剧通货膨胀和金融资产价格不稳定的压力。
就中国目前的对外经济关系来说,中国的外汇储备已经过多,造成了使中国的整个银行系统流动性过剩的巨大压力。在这种情况下将国有银行股权转让给外资大金融机构,就进一步增加了外汇储备,加剧了流动性过剩、通货膨胀压力增大的宏观经济困难,从这方面看也是一种典型的倒行逆施。
还有一个为向外资企业"出售"国有银行股权辩护的理由:中国的各大国有银行"资本金不足,需要补充资本金"。其实在中国目前的金融格局下,向原国有银行补充资本金的办法很简单:要各银行购买财政部发行的公债,再由政府将财政部发行公债所获资金作为国有资本金注入各大银行作为政府控制的股本。这样就可以在不增加中国银行系统的流动性的前提下使中国的所有银行都具有足够的资本金。
总之一句话,在21初的经济环境下,对中国的银行业和整个经济来说,我们根本就不需要外资"购买"中国的银行股权的那些资金;不仅如此,将国有银行股权转让给外资大金融机构,还会进一步增加中国本来已经过多的外汇储备,加剧流动性过剩、通货膨胀压力增大的宏观经济困难,是一种典型的倒行逆施的行为。
操控了这场"银行改革"的人其实也清楚这些宏观经济和金融方面的情况,他们在金融系统内部散布的为这场"改革"辩护的最主要理由是,这样"引进外国战略投资者""就是为了换得一个好机制"。
这种"引进外资持股可以换得好机制"的说法,更是地地道道的欺骗。这些搞"银行改革"的人所说的所谓"好机制",是一种保证银行贷款质量、将坏账压到最低的机制,这样的机制不可能靠让外资持股来获得,已经被事实所证明。最近美国次级贷款危机爆发,导致美国银行业和金融业的许多黑幕曝光。权威方面的检控揭示,美国的银行和金融机构都发放了许多必然造成坏账的"异常贷款",并且将这些"异常贷款"通过许多金融衍生产品的销售转嫁给了银行外的投资者;美国花旗银行更已经由于次级贷款所造成的亏损而更换了其CEO。这样的美国银行连自己的坏账都控制不住,自己都制造了那么多的坏账,它们持股中国的银行又怎么可能使中国的银行不发生坏账?让自己的机制都不好的美国银行通过持有中国的银行股权来给中国的银行造成一个好机制,岂不是天大的笑话?
既然没有任何站得住的理由,为什么某些人还这样执着地要将中国的银行股权奉送给外资?越是理性的人越不可能有别的解释,而只能求助于爱国者们气愤之余所喜欢使用的词语----"卖国":将中国的银行股权奉送给外资,就是为了要卖国!其实,更理智的说法应当是:这样将中国的银行股权奉送给外资,连"卖国"的资格都够不上了,只能叫"叛国"。"卖国"者是在作买卖,作买卖就要讲价钱。卖国也得讲个价钱,象这样连个价钱都不讲,10元钱的东西以1元钱"卖"出去,那就连卖国的资格都不够,只能叫做叛国。
对那些在网络上声讨"爱国贼"的汉奸们来说,"卖国"、"叛国"都是一份光荣,当然不会是什么可怕的罪名。不过,对于能够参与上述银行改革政策的制定和执行的绝大多数人来说,"卖国"和"叛国"大概都还是一个主观上不能接受的罪名。我在这里当然需要交代政策:在中国政府这样的等级式组织中,任何执行政策的人都是无罪的,他们执行的是别人下令要他们实行的"银行改革"政策,当然不需要承担"卖国"和"叛国"这样的罪名。就是那些提出和下令别人执行这样的政策的人,有一些也是由于认识上有错误,从而至少没有主观上故意要"卖国"和"叛国"。由于没有主观故意,这后一种人也不能算是有叛国罪,而只能说,他们非主观故意的行为,起了一种叛国的作用。
在这个问题上最重要的是要查清,是什么人出于什么动机而要实行这样一种叛国的政策,非要进行这样的"外资导向式的银行改革"。不管始作俑者为谁,看来他们的动机都可以用高尚全身边的高参杨启先的一句话来概括。有人私下告诉我,那位以"坚持改革不动摇"的旗手自居的前高官高尚全身边有一位同样作过官的高参杨启先,此公曾经为这些"改革家"们谋划了极其高明的"战略部署":要想"改革"国有企业,先要"改革"国有银行;将国有银行都"改革"掉之后,国有企业就失去了生存下去的依靠,就没法再不被"改革"掉。
据我所知,高尚全和他的同道杨启先口中的"国有企业改革",就是通过私有化来消灭国有企业。杨启先的这一番出谋划策,再清楚不过地说明,"改革家"们要将中国的银行股权奉送给外资,实行那种"外资导向式的银行改革",就是为了实现杨启先所指明的那种"战略部署":要"改革"即通过私有化来消灭国有企业,先要"改革"即通过私有化来消灭国有银行。
根据我的记忆,高尚全的这位高参杨启先曾经在某个公开场合表态,坚决支持由国有企业领导或所谓的"民营企业家"这极少数人将国有企业资产据为己有的私有化改革。他为这样的少数人掠夺国有财产辩护的理由是,这些财产"反正没有给外国人"。从他当时的这种说法看,似乎杨启先这样的人起码还有一点爱国主义,还不想将中国人的财产送给外国人。可是今天,在杨启先的"高招"指使下进行的银行改革却表明,为了打赢"国有企业改革的攻坚战",将他们的国有企业私有化改革进行到底,他们已经不惜将中国人民的财产、中国的银行股权送给外资和外国人,不惜走上叛国的道路。
总结这场将中国的银行股权"卖"给外资的"外资导向式的银行改革",我们只需要用、也只能用一句话:这是那些铁了心坚持实行彻底的私有化的人为达到这一目的而作出的叛国行为。坚持并推动这样的"银行改革"的那少数几个人,顽固并执着地坚持他们的私有化理念,为此不惜将中国的银行股权奉送给外资,走上叛国的道路。
看来在今日之中国,是否反对私有化的理念已经不仅关系到是否维护社会的公平和正义,而且关系到是否爱国、是否容忍叛国行为。那些坚持私有化理念不回头的人,最后可能会不惜叛国。其实指导他们的行为的准则已经很简单,那就是:"坚持私有化,直到叛国"。
转引自: http://shihb.blog.sohu.com/83730945.html
Posted by eygle at 9:29 PM | Comments (2)
