<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HITANGJUN BLOG &#187; 转载</title>
	<atom:link href="http://blog.hitangjun.com/category/reprint/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hitangjun.com</link>
	<description>专注于 JAVA  WEB开发</description>
	<lastBuildDate>Fri, 16 Dec 2011 03:05:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>可以鞭策你一辈子的好文章，不看绝对是你的损失！</title>
		<link>http://blog.hitangjun.com/2011/02/28/can-spur-you-for-a-lifetime-of-good-articles-you-definitely-do-not-see-the-loss/</link>
		<comments>http://blog.hitangjun.com/2011/02/28/can-spur-you-for-a-lifetime-of-good-articles-you-definitely-do-not-see-the-loss/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 02:36:45 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>

		<guid isPermaLink="false">http://blog.hitangjun.com/?p=2088</guid>
		<description><![CDATA[HP大中华区总裁孙振耀退休感言 ： 如果这篇文章没有分享给你，那是我的错。 如果这篇文章分享给你了，你却没有读，继续走弯路的你不要怪我。 如果你看了这篇文章，只读了一半你就说没时间了，说明你已经是个“茫”人了。 如果你看完了，你觉得这篇文章只是讲讲大道理，说明你的人生阅历还不够，需要你把这篇文章珍藏，走出去碰几年壁，头破血流后再回来，再读，你就会感叹自己的年少无知。 如果你看完了，觉得很有道理，然后束之高阁，继续走进拥挤的地铁，依然用着自己昨日的观念来思考自己的未来，你的人生也将继续重复着昨日的状况。 如果你看完了，觉得那是一个过来人，对你的人生忠告，并你也愿意用他告诉你的思想去指导自己今后的生活，对你来讲成功不是很难，难的是你是否可以用这篇文章里的思想一直鞭策自己。 如果你看完了，觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章，说明你已经有了和他相似的人生阅历，只要你继续努力，成就伟业并不难，难的是你是否可以把自己的人生经验和他人分享呢？ 体验决定深度，知识决定广度。你的人生是什么呢？ 一、关于工作与生活 我有个有趣的观察，外企公司多的是25-35岁的白领，40岁以上的员工很少，二三十岁的外企员工是意气风发的，但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽，最后大多跳到民企，比方说，唐骏。外企员工的成功很大程度上是公司的成功，并非个人的成功，西门子的确比国美大，但并不代表西门子中国经理比国美的老板强，甚至可以说差得很远。而进外企的人往往并不能很早理解这一点，把自己的成功90％归功于自己的能力，实际上，外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了，当这些经理人40多岁了，他们的薪资要求变得很高，而他们的才能其实又不是那么出众，作为外企公司的老板，你会怎么选择？有的是只要不高薪水的，要出位的精明强干精力充沛的年轻人，有的是，为什么还要用你？ 从上面这个例子，其实可以看到我们的工作轨迹，二三十岁的时候，生活的压力还比较小，身体还比较好，上面的父母身体还好，下面又没有孩子，不用还房贷，也没有孩子要上大学，当个外企小白领还是很光鲜的，挣得不多也够花了。但是人终归要结婚生子，终归会老，到了40岁，父母老了，要看病要吃药，要有人看护，自己要还房贷，要过基本体面的生活，要养小孩……那个时候需要挣多少钱才够花才重要。所以，看待工作，眼光要放远一点，一时的谁高谁低并不能说明什么。 从这个角度上来说，我不太赞成过于关注第一份工作的薪水，更没有必要攀比第一份工作的薪水，这在刚刚出校园的学生中间是很常见的。正常人大概要工作 35年，这好比是一场马拉松比赛，和真正的马拉松比赛不同的是，这次比赛没有职业选手，每个人都只有一次机会。要知到，有很多人甚至坚持不到终点，大多数人最后是走到终点的，只有少数人是跑过终点的，因此在刚开始的时候，去抢领先的位置并没有太大的意义。刚进社会的时候如果进500强公司，大概能拿到3k -6k/月的工资，有些特别技术的人才可能可以到8k/月，可问题是，5年以后拿多少？估计5k-10k了不起了。起点虽然高，但增幅有限，而且，后面的年轻人追赶的压力越来越大。 我前两天问我的一个销售，你会的这些东西一个新人2年就都学会了，但新人所要求的薪水却只是你的一半，到时候，你怎么办？ 职业生涯就像一场体育比赛，有初赛、复赛、决赛。初赛的时候大家都刚刚进社会，大多数都是实力一般的人，这时候努力一点认真一点很快就能让人脱颖而出，于是有的人二十多岁做了经理，有的人迟些也终于赢得了初赛，三十多岁成了经理。然后是复赛，能参加复赛的都是赢得初赛的，每个人都有些能耐，在聪明才智上都不成问题，这个时候再想要胜出就不那么容易了，单靠一点点努力和认真还不够，要有很强的坚忍精神，要懂得靠团队的力量，要懂得收服人心，要有长远的眼光…… 看上去赢得复赛并不容易，但，还不是那么难。因为这个世界的规律就是给人一点成功的同时让人骄傲自满，刚刚赢得初赛的人往往不知道自己赢得的仅仅是初赛，有了一点小小的成绩大多数人都会骄傲自满起来，认为自己已经懂得了全部，不需要再努力再学习了，他们会认为之所以不能再进一步已经不是自己的原因了。虽然他们仍然不好对付，但是他们没有耐性，没有容人的度量，更没有清晰长远的目光。就像一只愤怒的斗牛，虽然猛烈，最终是会败的，而赢得复赛的人则象斗牛士一样，不急不躁，跟随着自己的节拍，慢慢耗尽对手的耐心和体力。赢得了复赛以后，大约已经是一位很了不起的职业经理人了，当上了中小公司的总经理，大公司的副总经理，主管着每年几千万乃至几亿的生意。 最终的决赛来了，说实话我自己都还没有赢得决赛，因此对于决赛的决胜因素也只能凭自己的猜测而已，这个时候的输赢或许就像武侠小说里写得那样，大家都是高手，只能等待对方犯错了，要想轻易击败对手是不可能的，除了使上浑身解数，还需要一点运气和时间。世界的规律依然发挥着作用，赢得复赛的人已经不只是骄傲自满了，他们往往刚愎自用，听不进去别人的话，有些人的脾气变得暴躁，心情变得浮躁，身体变得糟糕，他们最大的敌人就是他们自己，在决赛中要做的只是不被自己击败，等着别人被自己击败。这和体育比赛是一样的，最后高手之间的比赛，就看谁失误少谁就赢得了决赛。 二、根源 你工作快乐么？你的工作好么？ 有没有觉得干了一段时间以后工作很不开心？有没有觉得自己入错了行？有没有觉得自己没有得到应有的待遇？有没有觉得工作像一团乱麻每天上班都是一种痛苦？有没有很想换个工作？有没有觉得其实现在的公司并没有当初想象得那么好？有没有觉得这份工作是当初因为生存压力而找的，实在不适合自己？你从工作中得到你想要得到的了么？你每天开心么？ 天涯上愤怒的人很多，你有没有想过，你为什么不快乐？你为什么愤怒？ 其实，你不快乐的根源，是因为你不知道要什么！你不知道要什么，所以你不知道去追求什么，你不知道追求什么，所以你什么也得不到。 我总觉得，职业生涯首先要关注的是自己，自己想要什么？大多数人大概没想过这个问题，唯一的想法只是——我想要一份工作，我想要一份不错的薪水，我知道所有人对于薪水的渴望，可是，你想每隔几年重来一次找工作的过程么？你想每年都在这种对于工作和薪水的焦急不安中度过么？不想的话，就好好想清楚。饮鸩止渴，不能因为口渴就拼命喝毒药。越是焦急，越是觉得自己需要一份工作，越饥不择食，越想不清楚，越容易失败，你的经历越来越差，下一份工作的人看着你的简历就皱眉头。于是你越喝越渴，越渴越喝，陷入恶性循环。最终只能哀叹世事不公或者生不逢时，只能到天涯上来发泄一把，在失败者的共鸣当中寻求一点心理平衡罢了。大多数人都有生存压力，我也是，有生存压力就会有很多焦虑，积极的人会从焦虑中得到动力，而消极的人则会因为焦虑而迷失方向。所有人都必须在压力下做出选择，这就是世道，你喜欢也罢不喜欢也罢。 一般我们处理的事情分为重要的事情和紧急的事情，如果不做重要的事情就会常常去做紧急的事情。比如锻炼身体保持健康是重要的事情，而看病则是紧急的事情。如果不锻炼身体保持健康，就会常常为了病痛烦恼。又比如防火是重要的事情，而救火是紧急的事情，如果不注意防火，就要常常救火。找工作也是如此，想好自己究竟要什么是重要的事情，找工作是紧急的事情，如果不想好，就会常常要找工作。往往紧急的事情给人的压力比较大，迫使人们去赶紧做，相对来说重要的事情反而没有那么大的压力，大多数人做事情都是以压力为导向的，压力之下，总觉得非要先做紧急的事情，结果就是永远到处救火，永远没有停歇的时候。（很多人的工作也像是救火队一样忙碌痛苦，也是因为工作中没有做好重要的事情。）那些说自己活在水深火热为了生存顾不上那么多的朋友，今天找工作困难是当初你们没有做重要的事情，是结果不是原因。如果今天你们还是因为急于要找一份工作而不去思考，那么或许将来要继续承受痛苦找工作的结果。 我始终觉得我要说的话题，沉重了点，需要很多思考，远比唐笑打武警的话题来的枯燥乏味，但是，天下没有轻松的成功，成功，要付代价。请先忘记一切的生存压力，想想这辈子你最想要的是什么？所以，最要紧的事情，先想好自己想要什么。 三、什么是好工作 当初微软有个唐骏，很多大学里的年轻人觉得这才是他们向往的职业生涯，我在清华bbs里发的帖子被这些学子们所不屑，那个时候学生们只想出国或者去外企，不过如今看来，我还是对的，唐骏去了盛大，陈天桥创立的盛大，一家民营公司。一个高学历的海归在500强的公司里拿高薪水，这大约是很多年轻人的梦想，问题是，每年毕业的大学生都在做这个梦，好的职位却只有500个。 人都是要面子的，也是喜欢攀比的，即使在工作上也喜欢攀比，不管那是不是自己想要的。大家认为外企公司很好，可是好在哪里呢？好吧，他们在比较好的写字楼，这是你想要的么？他们出差住比较好的酒店，这是你想要的么？别人会羡慕一份外企公司的工作，这是你想要的么？那一切都是给别人看的，你干吗要活得那么辛苦给别人看？另一方面，他们薪水福利一般，并没有特别了不起，他们的晋升机会比较少，很难做到很高阶的主管，他们虽然厌恶常常加班，却不敢不加班，因为“你不干有得是人干”，大部分情况下会找个台湾人香港人新加坡人来管你，而这些人又往往有些莫名其妙的优越感。你想清楚了么？500强一定好么？找工作究竟是考虑你想要什么，还是考虑别人想看什么？ 我的大学同学们大多数都到美国了，甚至毕业这么多年了，还有人最近到国外去了。出国真的有那么好么？我的大学同学们，大多数还是在博士、博士后、访问学者地挣扎着，至今只有一个正经在一个美国大学里拿到个正式的教职。国内的教授很难当么？我有几个表亲也去了国外了，他们的父母独自在国内，没有人照顾，有好几次人在家里昏倒都没人知道，出国，真的这么光彩么？就像有人说的“很多事情就像看A片，看的人觉得很爽，做的人未必。” 人总想找到那个最好的，可是，什么是最好的？你觉得是最好的那个，是因为你的确了解，还是因为别人说他是最好的？即使他对于别人是最好的，对于你也一定是最好的么？ 对于自己想要什么，自己要最清楚，别人的意见并不是那么重要。很多人总是常常被别人的意见所影响，亲戚的意见，朋友的意见，同事的意见……问题是，你究竟是要过谁的一生？人的一生不是父母一生的续集，也不是儿女一生的前传，更不是朋友一生的外篇，只有你自己对自己的一生负责，别人无法也负不起这个责任。自己做的决定，至少到最后，自己没什么可后悔。对于大多数正常智力的人来说，所做的决定没有大的对错，无论怎么样的选择，都是可以尝试的。比如你没有考自己上的那个学校，没有入现在这个行业，这辈子就过不下去了？就会很失败？不见得。 我想，好工作，应该是适合你的工作，具体点说，应该是能给你带来你想要的东西的工作，你或许应该以此来衡量你的工作究竟好不好，而不是拿公司的大小，规模，外企还是国企，是不是有名，是不是上市公司来衡量。小公司，未必不是好公司，赚钱多的工作，也未必是好工作。你还是要先弄清楚你想要什么，如果你不清楚你想要什么，你就永远也不会找到好工作，因为你永远只看到你得不到的东西，你得到的，都是你不想要的。 可能，最好的，已经在你的身边，只是，你还没有学会珍惜。人们总是盯着得不到的东西，而忽视了那些已经得到的东西。 四、普通人 我发现中国人的励志和国外的励志存在非常大的不同，中国的励志比较鼓励人立下大志愿，卧薪尝胆，有朝一日成富成贵。而国外的励志比较鼓励人勇敢面对现实生活，面对普通人的困境，虽然结果也是成富成贵，但起点不一样，相对来说，我觉得后者在操作上更现实，而前者则需要用999个失败者来堆砌一个成功者的故事。 我们都是普通人，普通人的意思就是，概率这件事是很准的。因此，我们不会买彩票中500万，我们不会成为比尔盖茨或者李嘉诚，我们不会坐飞机掉下来，我们当中很少的人会创业成功，我们之中有30％的人会离婚，我们之中大部分人会活过65岁…… 所以请你在想自己要什么的时候，要得“现实”一点，你说我想要做李嘉诚，抱歉，我帮不上你。成为比尔盖茨或者李嘉诚这种人，是靠命的，看我写的这篇文章绝对不会让你成为他们，即使你成为了他们，也绝对不是我这篇文章的功劳。“王侯将相宁有种乎”但真正当皇帝的只有一个人，王侯将相，人也不多。目标定得高些对于喜欢挑战的人来说有好处，但对于大多数普通人来说，反而比较容易灰心沮丧，很容易就放弃了。 回过头来说，李嘉诚比你有钱大致50万倍，他比你更快乐么？或许。有没有比你快乐50万倍，一定没有。他比你最多也就快乐一两倍，甚至有可能还不如你快乐。寻找自己想要的东西不是和别人比赛，比谁要得更多更高，比谁的目标更远大。虽然成为李嘉诚这个目标很宏大，但你并不见得会从这个目标以及追求目标的过程当中获得快乐，而且基本上你也做不到。你必须听听你内心的声音，寻找真正能够使你获得快乐的东西，那才是你想要的东西。 你想要的东西，或者我们把它称之为目标，目标其实并没有高低之分，你不需要因为自己的目标没有别人远大而不好意思，达到自己的目标其实就是成功，成功有大有小，快乐却是一样的。我们追逐成功，其实追逐的是成功带来的快乐，而非成功本身。职业生涯的道路上，我们常常会被攀比的心态蒙住眼睛，忘记了追求的究竟是什么，忘记了是什么能使我们更快乐。 社会上一夜暴富的新闻很多，这些消息，总会在我们的心里面掀起很多涟漪，涟漪多了就变成惊涛骇浪，心里的惊涛骇浪除了打翻承载你目标的小船，并不会使得你也一夜暴富。“只见贼吃肉，不见贼挨揍。”我们这些普通人既没有当贼的勇气，又缺乏当贼的狠辣绝决，虽然羡慕吃肉，却更害怕挨揍，偶尔看到几个没挨揍的贼就按奈不住，或者心思活动，或者大感不公，真要叫去做贼，却也不敢。 我还是过普通人的日子，要普通人的快乐，至少，晚上睡得着觉。 五、跳槽与积累 首先要说明，工作是一件需要理智的事情，所以不要在工作上耍个性，天涯上或许会有人觉得你很有个性而叫好，煤气公司电话公司不会因为觉得你很有个性而免了你的帐单。当你很帅地炒掉了你的老板，当你很酷地挖苦了一番招聘的HR，账单还是要照付，只是你赚钱的时间更少了，除了你自己，没人受损失。 我并不反对跳槽，但跳槽决不是解决问题的办法，而且频繁跳槽的后果是让人觉得没有忠诚度可言，而且不能安心工作。现在很多人从网上找工作，很多找工作的网站常常给人出些馊主意，要知道他们是盈利性企业，当然要从自身盈利的角度来考虑，大家越是频繁跳槽频繁找工作他们越是生意兴隆，所以鼓动人们跳槽是他们的工作。所以他们会常常告诉你，你拿的薪水少了，你享受的福利待遇差了，又是“薪情快报”又是“赞叹自由奔放的灵魂”。至于是否会因此让你不能安心，你跳了槽是否解决问题，是否更加开心，那个，他们管不着。 要跳槽肯定是有问题，一般来说问题发生了，躲是躲不开的，很多人跳槽是因为这样或者那样的不开心，如果这种不开心，在现在这个公司不能解决，那么在下一个公司多半也解决不掉。你必须相信，90%的情况下，你所在的公司并没有那么烂，你认为不错的公司也没有那么好。就像围城里说的，“城里的人拼命想冲出来，而城外的人拼命想冲进去。”每个公司都有每个公司的问题，没有问题的公司是不存在的。换个环境你都不知道会碰到什么问题，与其如此，不如就在当下把问题解决掉。很多问题当你真的想要去解决的时候，或许并没有那么难。有的时候你觉得问题无法解决，事实上，那只是“你觉得”。 人生的曲线应该是曲折向上的，偶尔会遇到低谷但大趋势总归是曲折向上的，而不是象脉冲波一样每每回到起点，我见过不少面试者，30多岁了，四五份工作经历，每次多则3年，少则1年，30多岁的时候回到起点从一个初级职位开始干起，拿基本初级的薪水，和20多岁的年轻人一起竞争，不觉得有点辛苦么？这种日子好过么？ 资本靠的就是积累，这种积累包括人际关系，经验，人脉，口碑……如果常常更换行业，代表几年的积累付之东流，一切从头开始，如果换了两次行业，35岁的时候大概只有5年以下的积累，而一个没有换过行业的人至少有了10年的积累，谁会占优势？工作到2-3年的时候，很多人觉得工作不顺利，好像到了一个瓶颈，心情烦闷，就想辞职，乃至换一个行业，觉得这样所有一切烦恼都可以抛开，会好很多。其实这样做只是让你从头开始，到了时候还是会发生和原来行业一样的困难，熬过去就向上跨了一大步，要知道每个人都会经历这个过程，每个人的职业生涯中都会碰到几个瓶颈，你熬过去了而别人没有熬过去你就领先了。跑长跑的人会知道，开始的时候很轻松，但是很快会有第一次的难受，但过了这一段又能跑很长一段，接下来会碰到第二次的难受，坚持过了以后又能跑一段，如此往复，难受一次比一次厉害，直到坚持不下去了。大多数人第一次就坚持不了了，一些人能坚持到第二次，第三次虽然大家都坚持不住了，可是跑到这里的人也没几个了，这点资本足够你安稳活这一辈子了。 一份工作到两三年的时候，大部分人都会变成熟手，这个时候往往会陷入不断的重复，有很多人会觉得厌倦，有些人会觉得自己已经搞懂了一切，从而懒得去寻求进步了。很多时候的跳槽是因为觉得失去兴趣了，觉得自己已经完成比赛了。其实这个时候比赛才刚刚开始，工作两三年的人，无论是客户关系，人脉，手下，和领导的关系，在业内的名气……还都是远远不够的，但稍有成绩的人总是会自我感觉良好的，每个人都觉得自己跟客户关系铁得要命，觉得自己在业界的口碑好得很。其实可以肯定地说，一定不是，这个时候，还是要拿出前两年的干劲来，稳扎稳打，积累才刚刚开始。 你足够了解你的客户吗？你知道他最大的烦恼是什么吗？你足够了解你的老板么？你知道他最大的烦恼是什么吗？你足够了解你的手下么？你知道他最大的烦恼是什么吗？如果你不知道，你凭什么觉得自己已经积累够了？如果你都不了解，你怎么能让他们帮你的忙，做你想让他们做的事情？如果他们不做你想让他们做的事情，你又何来的成功？ 六、等待 这是个浮躁的人们最不喜欢的话题，本来不想说这个话题，因为会引起太多的争论，而我又无意和人争论这些，但是考虑到对于职业生涯的长久规划，这是一个躲避不了的话题，还是决定写一写，不爱看的请离开吧。 并不是每次穿红灯都会被汽车撞，并不是每个罪犯都会被抓到，并不是每个错误都会被惩罚，并不是每个贪官都会被枪毙，并不是你的每一份努力都会得到回报，并不是你的每一次坚持都会有人看到，并不是你每一点付出都能得到公正的回报，并不是你的每一个善意都能被理解……这个，就是世道。好吧，世道不够好，可是，你有推翻世道的勇气么？如果没有，你有更好的解决办法么？有很多时候，人需要一点耐心，一点信心。每个人总会轮到几次不公平的事情，而通常，安心等待是最好的办法。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>HP大中华区总裁孙振耀退休感言 ：</strong></p>
<p>如果这篇<strong>文章</strong>没有分享给你，那是我的错。</p>
<p>如果这篇文章分享给你了，你却没有读，继续走弯路的你不要怪我。</p>
<p>如果你看了这篇文章，只读了一半你就说没时间了，说明你已经是个“茫”人了。</p>
<p>如果你看完了，你觉得这篇文章只是讲讲大道理，说明你的人生阅历还不够，需要你把这篇文章珍藏，走出去碰几年壁，头破血流后再回来，再读，你就会感叹自己的年少无知。</p>
<p>如果你看完了，觉得很有道理，然后束之高阁，继续走进拥挤的地铁，依然用着自己昨日的观念来思考自己的未来，你的人生也将继续重复着昨日的状况。</p>
<p>如果你看完了，觉得那是一个过来人，对你的人生忠告，并你也愿意用他告诉你的思想去指导自己今后的生活，对你来讲成功不是很难，难的是你是否可以用这篇文章里的思想一直鞭策自己。</p>
<p>如果你看完了，觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章，说明你已经有了和他相似的人生阅历，只要你继续努力，成就伟业并不难，难的是你是否可以把自己的人生经验和他人分享呢？</p>
<p><strong>体验决定深度，知识决定广度。</strong>你的人生是什么呢？<span id="more-2088"></span></p>
<p>一、关于工作与生活<br />
我有个有趣的观察，外企公司多的是25-35岁的白领，40岁以上的员工很少，二三十岁的外企员工是意气风发的，但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽，最后大多跳到民企，比方说，唐骏。外企员工的成功很大程度上是公司的成功，并非个人的成功，西门子的确比国美大，但并不代表西门子中国经理比国美的老板强，甚至可以说差得很远。而进外企的人往往并不能很早理解这一点，把自己的成功90％归功于自己的能力，实际上，外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了，当这些经理人40多岁了，他们的薪资要求变得很高，而他们的才能其实又不是那么出众，作为外企公司的老板，你会怎么选择？有的是只要不高薪水的，要出位的精明强干精力充沛的年轻人，有的是，为什么还要用你？</p>
<p>从上面这个例子，其实可以看到我们的工作轨迹，二三十岁的时候，生活的压力还比较小，身体还比较好，上面的父母身体还好，下面又没有孩子，不用还房贷，也没有孩子要上大学，当个外企小白领还是很光鲜的，挣得不多也够花了。但是人终归要结婚生子，终归会老，到了40岁，父母老了，要看病要吃药，要有人看护，自己要还房贷，要过基本体面的生活，要养小孩……那个时候需要挣多少钱才够花才重要。所以，<strong>看待工作，眼光要放远一点，一时的谁高谁低并不能说明什么</strong>。</p>
<p>从这个角度上来说，我不太赞成过于关注第一份工作的薪水，更没有必要攀比第一份工作的薪水，这在刚刚出校园的学生中间是很常见的。正常人大概要工作 35年，这好比是一场马拉松比赛，和真正的马拉松比赛不同的是，这次比赛没有职业选手，每个人都只有一次机会。要知到，有很多人甚至坚持不到终点，大多数人最后是走到终点的，只有少数人是跑过终点的，因此在刚开始的时候，去抢领先的位置并没有太大的意义。刚进社会的时候如果进500强公司，大概能拿到3k -6k/月的工资，有些特别技术的人才可能可以到8k/月，可问题是，5年以后拿多少？估计5k-10k了不起了。起点虽然高，但增幅有限，而且，后面的年轻人追赶的压力越来越大。</p>
<p>我前两天问我的一个销售，你会的这些东西一个新人2年就都学会了，但新人所要求的薪水却只是你的一半，到时候，你怎么办？</p>
<p>职业生涯就像一场体育比赛，有初赛、复赛、决赛。初赛的时候大家都刚刚进社会，大多数都是实力一般的人，这时候努力一点认真一点很快就能让人脱颖而出，于是有的人二十多岁做了经理，有的人迟些也终于赢得了初赛，三十多岁成了经理。然后是复赛，能参加复赛的都是赢得初赛的，每个人都有些能耐，在聪明才智上都不成问题，这个时候再想要胜出就不那么容易了，<strong>单靠一点点努力和认真还不够，要有很强的坚忍精神，要懂得靠团队的力量，要懂得收服人心，要有长远的眼光……</strong><strong></strong></p>
<p>看上去赢得复赛并不容易，但，还不是那么难。因为这个世界的规律就是给人一点成功的同时让人骄傲自满，刚刚赢得初赛的人往往不知道自己赢得的仅仅是初赛，有了一点小小的成绩大多数人都会骄傲自满起来，认为自己已经懂得了全部，不需要再努力再学习了，他们会认为之所以不能再进一步已经不是自己的原因了。虽然他们仍然不好对付，但是他们没有耐性，没有容人的度量，更没有清晰长远的目光。就像一只愤怒的斗牛，虽然猛烈，最终是会败的，而赢得复赛的人则象斗牛士一样，不急不躁，跟随着自己的节拍，慢慢耗尽对手的耐心和体力。赢得了复赛以后，大约已经是一位很了不起的职业经理人了，当上了中小公司的总经理，大公司的副总经理，主管着每年几千万乃至几亿的生意。</p>
<p>最终的决赛来了，说实话我自己都还没有赢得决赛，因此对于决赛的决胜因素也只能凭自己的猜测而已，这个时候的输赢或许就像武侠小说里写得那样，大家都是高手，只能等待对方犯错了，要想轻易击败对手是不可能的，除了使上浑身解数，还需要一点运气和时间。世界的规律依然发挥着作用，赢得复赛的人已经不只是骄傲自满了，他们往往刚愎自用，听不进去别人的话，有些人的脾气变得暴躁，心情变得浮躁，身体变得糟糕，他们最大的敌人就是他们自己，在决赛中要做的只是不被自己击败，等着别人被自己击败。这和体育比赛是一样的，最后高手之间的比赛，就看谁失误少谁就赢得了决赛。</p>
<p>二、<strong>根源</strong></p>
<p>你工作快乐么？你的工作好么？</p>
<p>有没有觉得干了一段时间以后工作很不开心？有没有觉得自己入错了行？有没有觉得自己没有得到应有的待遇？有没有觉得工作像一团乱麻每天上班都是一种痛苦？有没有很想换个工作？有没有觉得其实现在的公司并没有当初想象得那么好？有没有觉得这份工作是当初因为生存压力而找的，实在不适合自己？你从工作中得到你想要得到的了么？你每天开心么？<br />
天涯上愤怒的人很多，你有没有想过，你为什么不快乐？你为什么愤怒？</p>
<p>其实，你不快乐的根源，是因为你不知道要什么！你不知道要什么，所以你不知道去追求什么，你不知道追求什么，所以你什么也得不到。</p>
<p>我总觉得，职业生涯首先要关注的是自己，自己想要什么？大多数人大概没想过这个问题，唯一的想法只是——我想要一份工作，我想要一份不错的薪水，我知道所有人对于薪水的渴望，可是，你想每隔几年重来一次找工作的过程么？你想每年都在这种对于工作和薪水的焦急不安中度过么？不想的话，就好好想清楚。饮鸩止渴，不能因为口渴就拼命喝毒药。越是焦急，越是觉得自己需要一份工作，越饥不择食，越想不清楚，越容易失败，你的经历越来越差，下一份工作的人看着你的简历就皱眉头。于是你越喝越渴，越渴越喝，陷入恶性循环。最终只能哀叹世事不公或者生不逢时，只能到天涯上来发泄一把，在失败者的共鸣当中寻求一点心理平衡罢了。大多数人都有生存压力，我也是，有生存压力就会有很多焦虑，积极的人会从焦虑中得到动力，而消极的人则会因为焦虑而迷失方向。所有人都必须在压力下做出选择，这就是世道，你喜欢也罢不喜欢也罢。</p>
<p>一般我们处理的事情分为重要的事情和紧急的事情，如果不做重要的事情就会常常去做紧急的事情。比如锻炼身体保持健康是重要的事情，而看病则是紧急的事情。如果不锻炼身体保持健康，就会常常为了病痛烦恼。又比如防火是重要的事情，而救火是紧急的事情，如果不注意防火，就要常常救火。找工作也是如此，想好自己究竟要什么是重要的事情，找工作是紧急的事情，如果不想好，就会常常要找工作。往往紧急的事情给人的压力比较大，迫使人们去赶紧做，相对来说重要的事情反而没有那么大的压力，大多数人做事情都是以压力为导向的，压力之下，总觉得非要先做紧急的事情，结果就是永远到处救火，永远没有停歇的时候。（很多人的工作也像是救火队一样忙碌痛苦，也是因为工作中没有做好重要的事情。）那些说自己活在水深火热为了生存顾不上那么多的朋友，今天找工作困难是当初你们没有做重要的事情，是结果不是原因。如果今天你们还是因为急于要找一份工作而不去思考，那么或许将来要继续承受痛苦找工作的结果。</p>
<p>我始终觉得我要说的话题，沉重了点，需要很多思考，远比唐笑打武警的话题来的枯燥乏味，但是，天下没有轻松的成功，成功，要付代价。<strong>请先忘记一切的生存压力，想想这辈子你最想要的是什么？所以，最要紧的事情，先想好自己想要什么。</strong></p>
<p>三、什么是好工作</p>
<p>当初微软有个唐骏，很多大学里的年轻人觉得这才是他们向往的职业生涯，我在清华bbs里发的帖子被这些学子们所不屑，那个时候学生们只想出国或者去外企，不过如今看来，我还是对的，唐骏去了盛大，陈天桥创立的盛大，一家民营公司。一个高学历的海归在500强的公司里拿高薪水，这大约是很多年轻人的梦想，问题是，每年毕业的大学生都在做这个梦，好的职位却只有500个。</p>
<p>人都是要面子的，也是喜欢攀比的，即使在工作上也喜欢攀比，不管那是不是自己想要的。大家认为外企公司很好，可是好在哪里呢？好吧，他们在比较好的写字楼，这是你想要的么？他们出差住比较好的酒店，这是你想要的么？别人会羡慕一份外企公司的工作，这是你想要的么？那一切都是给别人看的，你干吗要活得那么辛苦给别人看？另一方面，他们薪水福利一般，并没有特别了不起，他们的晋升机会比较少，很难做到很高阶的主管，他们虽然厌恶常常加班，却不敢不加班，因为“你不干有得是人干”，大部分情况下会找个台湾人香港人新加坡人来管你，而这些人又往往有些莫名其妙的优越感。你想清楚了么？500强一定好么？找工作究竟是考虑你想要什么，还是考虑别人想看什么？</p>
<p>我的大学同学们大多数都到美国了，甚至毕业这么多年了，还有人最近到国外去了。出国真的有那么好么？我的大学同学们，大多数还是在博士、博士后、访问学者地挣扎着，至今只有一个正经在一个美国大学里拿到个正式的教职。国内的教授很难当么？我有几个表亲也去了国外了，他们的父母独自在国内，没有人照顾，有好几次人在家里昏倒都没人知道，出国，真的这么光彩么？就像有人说的“很多事情就像看A片，看的人觉得很爽，做的人未必。”</p>
<p>人总想找到那个最好的，可是，什么是最好的？你觉得是最好的那个，是因为你的确了解，还是因为别人说他是最好的？即使他对于别人是最好的，对于你也一定是最好的么？</p>
<p>对于自己想要什么，自己要最清楚，别人的意见并不是那么重要。很多人总是常常被别人的意见所影响，亲戚的意见，朋友的意见，同事的意见……问题是，你究竟是要过谁的一生？<strong>人的一生不是父母一生的续集，也不是儿女一生的前传，更不是朋友一生的外篇，只有你自己对自己的一生负责，别人无法也负不起这个责任。自己做的决定，至少到最后，自己没什么可后悔。对于大多数正常智力的人来说，所做的决定没有大的对错，无论怎么样的选择，都是可以尝试的。</strong>比如你没有考自己上的那个学校，没有入现在这个行业，这辈子就过不下去了？就会很失败？不见得。</p>
<p>我想，好工作，应该是适合你的工作，具体点说，应该是能给你带来你想要的东西的工作，你或许应该以此来衡量你的工作究竟好不好，而不是拿公司的大小，规模，外企还是国企，是不是有名，是不是上市公司来衡量。小公司，未必不是好公司，赚钱多的工作，也未必是好工作。你还是要先弄清楚你想要什么，如果你不清楚你想要什么，你就永远也不会找到好工作，因为你永远只看到你得不到的东西，你得到的，都是你不想要的。</p>
<p>可能，最好的，已经在你的身边，只是，你还没有学会珍惜。<strong>人们总是盯着得不到的东西，而忽视了那些已经得到的东西。</strong><strong></strong></p>
<p>四、普通人</p>
<p>我发现中国人的励志和国外的励志存在非常大的不同，中国的励志比较鼓励人立下大志愿，卧薪尝胆，有朝一日成富成贵。而国外的励志比较鼓励人勇敢面对现实生活，面对普通人的困境，虽然结果也是成富成贵，但起点不一样，相对来说，我觉得后者在操作上更现实，而前者则需要用999个失败者来堆砌一个成功者的故事。</p>
<p>我们都是普通人，普通人的意思就是，概率这件事是很准的。因此，我们不会买彩票中500万，我们不会成为比尔盖茨或者李嘉诚，我们不会坐飞机掉下来，我们当中很少的人会创业成功，我们之中有30％的人会离婚，我们之中大部分人会活过65岁……</p>
<p>所以请你在想自己要什么的时候，要得“现实”一点，你说我想要做李嘉诚，抱歉，我帮不上你。成为比尔盖茨或者李嘉诚这种人，是靠命的，看我写的这篇文章绝对不会让你成为他们，即使你成为了他们，也绝对不是我这篇文章的功劳。“王侯将相宁有种乎”但真正当皇帝的只有一个人，王侯将相，人也不多。目标定得高些对于喜欢挑战的人来说有好处，但对于大多数普通人来说，反而比较容易灰心沮丧，很容易就放弃了。</p>
<p>回过头来说，李嘉诚比你有钱大致50万倍，他比你更快乐么？或许。有没有比你快乐50万倍，一定没有。他比你最多也就快乐一两倍，甚至有可能还不如你快乐。寻找自己想要的东西不是和别人比赛，比谁要得更多更高，比谁的目标更远大。虽然成为李嘉诚这个目标很宏大，但你并不见得会从这个目标以及追求目标的过程当中获得快乐，而且基本上你也做不到。你必须听听你内心的声音，寻找真正能够使你获得快乐的东西，那才是你想要的东西。</p>
<p>你想要的东西，或者我们把它称之为目标，目标其实并没有高低之分，你不需要因为自己的目标没有别人远大而不好意思，达到自己的目标其实就是成功，成功有大有小，快乐却是一样的。我们追逐成功，其实追逐的是成功带来的快乐，而非成功本身。职业生涯的道路上，我们常常会被攀比的心态蒙住眼睛，忘记了追求的究竟是什么，忘记了是什么能使我们更快乐。</p>
<p>社会上一夜暴富的新闻很多，这些消息，总会在我们的心里面掀起很多涟漪，涟漪多了就变成惊涛骇浪，心里的惊涛骇浪除了打翻承载你目标的小船，并不会使得你也一夜暴富。“只见贼吃肉，不见贼挨揍。”我们这些普通人既没有当贼的勇气，又缺乏当贼的狠辣绝决，虽然羡慕吃肉，却更害怕挨揍，偶尔看到几个没挨揍的贼就按奈不住，或者心思活动，或者大感不公，真要叫去做贼，却也不敢。</p>
<p>我还是过普通人的日子，要普通人的快乐，至少，晚上睡得着觉。</p>
<p>五、跳槽与积累</p>
<p>首先要说明，工作是一件需要理智的事情，所以不要在工作上耍个性，天涯上或许会有人觉得你很有个性而叫好，煤气公司电话公司不会因为觉得你很有个性而免了你的帐单。当你很帅地炒掉了你的老板，当你很酷地挖苦了一番招聘的HR，账单还是要照付，只是你赚钱的时间更少了，除了你自己，没人受损失。</p>
<p>我并不反对跳槽，但跳槽决不是解决问题的办法，而且频繁跳槽的后果是让人觉得没有忠诚度可言，而且不能安心工作。现在很多人从网上找工作，很多找工作的网站常常给人出些馊主意，要知道他们是盈利性企业，当然要从自身盈利的角度来考虑，大家越是频繁跳槽频繁找工作他们越是生意兴隆，所以鼓动人们跳槽是他们的工作。所以他们会常常告诉你，你拿的薪水少了，你享受的福利待遇差了，又是“薪情快报”又是“赞叹自由奔放的灵魂”。至于是否会因此让你不能安心，你跳了槽是否解决问题，是否更加开心，那个，他们管不着。</p>
<p>要跳槽肯定是有问题，一般来说问题发生了，躲是躲不开的，很多人跳槽是因为这样或者那样的不开心，如果这种不开心，在现在这个公司不能解决，那么在下一个公司多半也解决不掉。你必须相信，90%的情况下，你所在的公司并没有那么烂，你认为不错的公司也没有那么好。就像围城里说的，“城里的人拼命想冲出来，而城外的人拼命想冲进去。”每个公司都有每个公司的问题，没有问题的公司是不存在的。换个环境你都不知道会碰到什么问题，与其如此，不如就在当下把问题解决掉。很多问题当你真的想要去解决的时候，或许并没有那么难。有的时候你觉得问题无法解决，事实上，那只是“你觉得”。<br />
人生的曲线应该是曲折向上的，偶尔会遇到低谷但大趋势总归是曲折向上的，而不是象脉冲波一样每每回到起点，我见过不少面试者，30多岁了，四五份工作经历，每次多则3年，少则1年，30多岁的时候回到起点从一个初级职位开始干起，拿基本初级的薪水，和20多岁的年轻人一起竞争，不觉得有点辛苦么？这种日子好过么？</p>
<p>资本靠的就是积累，这种积累包括人际关系，经验，人脉，口碑……如果常常更换行业，代表几年的积累付之东流，一切从头开始，如果换了两次行业，35岁的时候大概只有5年以下的积累，而一个没有换过行业的人至少有了10年的积累，谁会占优势？工作到2-3年的时候，很多人觉得工作不顺利，好像到了一个瓶颈，心情烦闷，就想辞职，乃至换一个行业，觉得这样所有一切烦恼都可以抛开，会好很多。其实这样做只是让你从头开始，到了时候还是会发生和原来行业一样的困难，熬过去就向上跨了一大步，要知道每个人都会经历这个过程，<strong>每个人的职业生涯中都会碰到几个瓶颈，你熬过去了而别人没有熬过去你就领先了</strong>。跑长跑的人会知道，开始的时候很轻松，但是很快会有第一次的难受，但过了这一段又能跑很长一段，接下来会碰到第二次的难受，坚持过了以后又能跑一段，如此往复，难受一次比一次厉害，直到坚持不下去了。大多数人第一次就坚持不了了，一些人能坚持到第二次，第三次虽然大家都坚持不住了，可是跑到这里的人也没几个了，这点资本足够你安稳活这一辈子了。</p>
<p>一份工作到两三年的时候，大部分人都会变成熟手，这个时候往往会陷入不断的重复，有很多人会觉得厌倦，有些人会觉得自己已经搞懂了一切，从而懒得去寻求进步了。很多时候的跳槽是因为觉得失去兴趣了，觉得自己已经完成比赛了。其实这个时候比赛才刚刚开始，工作两三年的人，无论是客户关系，人脉，手下，和领导的关系，在业内的名气……还都是远远不够的，但稍有成绩的人总是会自我感觉良好的，每个人都觉得自己跟客户关系铁得要命，觉得自己在业界的口碑好得很。其实可以肯定地说，一定不是，这个时候，还是要拿出前两年的干劲来，稳扎稳打，积累才刚刚开始。</p>
<p>你足够了解你的客户吗？你知道他最大的烦恼是什么吗？你足够了解你的老板么？你知道他最大的烦恼是什么吗？你足够了解你的手下么？你知道他最大的烦恼是什么吗？如果你不知道，你凭什么觉得自己已经积累够了？如果你都不了解，你怎么能让他们帮你的忙，做你想让他们做的事情？如果他们不做你想让他们做的事情，你又何来的成功？</p>
<p>六、等待</p>
<p>这是个浮躁的人们最不喜欢的话题，本来不想说这个话题，因为会引起太多的争论，而我又无意和人争论这些，但是考虑到对于职业生涯的长久规划，这是一个躲避不了的话题，还是决定写一写，不爱看的请离开吧。</p>
<p>并不是每次穿红灯都会被汽车撞，并不是每个罪犯都会被抓到，并不是每个错误都会被惩罚，并不是每个贪官都会被枪毙，并不是你的每一份努力都会得到回报，并不是你的每一次坚持都会有人看到，并不是你每一点付出都能得到公正的回报，并不是你的每一个善意都能被理解……这个，就是世道。好吧，世道不够好，可是，你有推翻世道的勇气么？如果没有，你有更好的解决办法么？有很多时候，人需要一点耐心，一点信心。每个人总会轮到几次不公平的事情，而通常，安心等待是最好的办法。</p>
<p><strong>有很多时候我们需要等待，需要耐得住寂寞，等待属于你的那一刻</strong>。周润发等待过，刘德华等待过，周星驰等待过，王菲等待过，张艺谋也等待过……看到了他们如今的功成名就的人，你可曾看到当初他们的等待和耐心？你可曾看到金马奖影帝在街边摆地摊？你可曾看到德云社一群人在剧场里给一位观众说相声？你可曾看到周星驰的角色甚至连一句台词都没有？每一个成功者都有一段低沉苦闷的日子，我几乎能想象得出来他们借酒浇愁的样子，我也能想象得出他们为了生存而挣扎的窘迫。在他们一生最中灿烂美好的日子里，他们渴望成功，但却两手空空，一如现在的你。没有人保证他们将来一定会成功，而他们的选择是耐住寂寞。如果当时的他们总念叨着“成功只是属于特权阶级的”，你觉得他们今天会怎样？</p>
<p>曾经我也不明白有些人为什么并不比我有能力却要坐在我的头上，年纪比我大就一定要当我的领导么？为什么有些烂人不需要努力就能赚钱？为什么刚刚改革开放的时候的人能那么容易赚钱，而轮到我们的时候，什么事情都要正规化了？有一天我突然想，我还在上学的时候他们就在社会里挣扎奋斗了，他们在社会上奋斗积累了十几二十年，我们新人来了，他们有的我都想要，我这不是在要公平，我这是在要抢劫。因为我要得太急，因为我忍不住寂寞。二十多岁的男人，没有钱，没有事业，却有蓬勃的欲望。</p>
<p>人总是会遇到挫折的，人总是会有低潮的，人总是会有不被人理解的时候的，人总是有要低声下气的时候，这些时候恰恰是人生最关键的时候，因为大家都会碰到挫折，而大多数人过不了这个门槛，你能过，你就成功了。在这样的时刻，我们需要耐心等待，满怀信心地去等待，相信，生活不会放弃你，机会总会来的。至少，你还年轻，你没有坐牢，没有生治不了的病，没有欠还不起的债。比你不幸的人远远多过比你幸运的人，你还怕什么？路要一步步走，虽然到达终点的那一步很激动人心，但大部分的脚步是平凡甚至枯燥的，但没有这些脚步，或者耐不住这些平凡枯燥，你终归是无法迎来最后的那些激动人心。</p>
<p><strong>逆境，是上帝帮你淘汰竞争者的地方</strong>。要知道，你不好受，别人也不好受，你坚持不下去了，别人也一样，千万不要告诉别人你坚持不住了，那只能让别人获得坚持的信心，让竞争者看着你微笑的面孔，失去信心，退出比赛。胜利属于那些有耐心的人。</p>
<p>在最绝望的时候，我会去看电影《The Pursuit of Happyness》《Jerry Maguire》，让自己重新鼓起勇气，因为，无论什么时候，我们总还是有希望。当所有的人离开的时候，我不失去希望，我不放弃。每天下班坐在车里，我喜欢哼着《隐形的翅膀》看着窗外，我知道，我在静静等待，等待属于我的那一刻。</p>
<p>七、入对行跟对人</p>
<p>在中国，大概很少有人是一份职业做到底的，虽然如此，第一份工作还是有些需要注意的地方，有两件事情格外重要，第一件是入行，第二件事情是跟人。第一份工作对人最大的影响就是入行，现代的职业分工已经很细，我们基本上只能在一个行业里成为专家，不可能在多个行业里成为专家。很多案例也证明即使一个人在一个行业非常成功，到另外一个行业，往往完全不是那么回事情，“你想改变世界，还是想卖一辈子汽水？”是乔布斯邀请百事可乐总裁约翰·斯考利加盟苹果时所说的话，结果这位在百事非常成功的约翰，到了苹果表现平平。其实没有哪个行业特别好，也没有哪个行业特别差，或许有报道说哪个行业的平均薪资比较高，但是他们没说的是，那个行业的平均压力也比较大。看上去很美的行业一旦进入才发现很多地方其实并不那么完美，只是外人看不见。<br />
说实话，我自己都没有发大财，所以我的建议只是让人快乐工作的建议，不是如何发大财的建议，我们只讨论一般普通打工者的情况。我认为选择什么行业并没有太大关系，看问题不能只看眼前。比如，从前年开始，国家开始整顿医疗行业，很多医药公司开不下去，很多医药行业的销售开始转行。其实医药行业的不景气是针对所有公司的，并非针对一家公司，大家的日子都不好过，这个时候跑掉是非常不划算的，大多数正规的医药公司即使不做新生意撑个两三年总是能撑的，大多数医药销售靠工资撑个两三年也是可以撑的，国家不可能永远捏着医药行业不放的，两三年以后光景总归还会好起来的，那个时候别人都跑了而你没跑，那时的日子应该会好过很多。有的时候觉得自己这个行业不行了，问题是，再不行的行业，做得人少了也变成了好行业，当大家都觉得不好的时候，往往却是最好的时候。大家都觉得金融行业好，金融行业门槛高不说，有多少人削尖脑袋要钻进去，竞争激励，进去以后还要时时提防，一个疏忽，就被后来的人给挤掉了，压力巨大，又如何谈得上快乐？也就未必是“好”工作了。</p>
<p>太阳能这个东西至今还不能进入实际应用的阶段，但是中国已经有7家和太阳能有关的公司在纽交所上市了，国美苏宁永乐其实是贸易型企业，也能上市，鲁泰纺织连续10年利润增长超过50%，卖茶的一茶一座，卖衣服的海澜之家都能上市……其实选什么行业真的不重要，关键是怎么做。事情都是人做出来的，关键是人。</p>
<p>有一点是需要记住的，这个世界上，有史以来直到我们能够预见得到的未来，成功的人总是少数，有钱的人总是少数，大多数人是一般的，普通的，不太成功的。因此，大多数人的做法和看法，往往都不是距离成功最近的做法和看法。因此大多数人说好的东西不见得好，大多数人说不好的东西不见得不好。大多数人都去炒股的时候说明跌只是时间问题，大家越是热情高涨的时候，跌的日子越近。大多数人买房子的时候，房价不会涨，而房价涨的差不多的时候，大多数人才开始买房子。不会有这样一件事情让大家都变成功，发了财，历史上不曾有过，将来也不会发生。有些东西即使一时运气好得到了，还是会在别的时候别的地方失去的。</p>
<p>年轻人在职业生涯的刚开始，尤其要注意的是，要做对的事情，不要让自己今后几十年的人生总是提心吊胆，更不值得为了一份工作赔上自己的青春年华。我的公司是个不行贿的公司，以前很多人不理解，甚至自己的员工也不理解，不过如今，我们是同行中最大的企业，客户乐意和我们打交道，尤其是在国家打击腐败的时候，每个人都知道我们做生意不给钱的名声，都敢于和我们做生意。而勇于给钱的公司，不是倒了，就是跑了，要不就是每天睡不好觉，人还是要看长远一点。很多时候，看起来最近的路，其实是最远的路，看起来最远的路，其实是最近的路。</p>
<p>跟对人是说，入行后要跟个好领导好老师，刚进社会的人做事情往往没有经验，需要有人言传身教。对于一个人的发展来说，<strong>一个好领导是非常重要的</strong>。所谓“好”的标准，不是他让你少干活多拿钱，而是以下三个。</p>
<p>首先，好领导要有宽广的心胸，如果一个领导每天都会发脾气，那几乎可以肯定他不是个心胸宽广的人，能发脾气的时候却不发脾气的领导，多半是非常厉害的领导。中国人当领导最大的毛病是容忍不了能力比自己强的人，所以常常可以看到的一个现象是，领导很有能力，手下一群庸才或者手下一群闲人。如果看到这样的环境，还是不要去的好。</p>
<p>其次，领导要愿意从下属的角度来思考问题，这一点其实是从面试的时候就能发现的，如果这位领导总是从自己的角度来考虑问题，几乎不听你说什么，这就危险了。从下属的角度来考虑问题并不代表同意下属的说法，但他必须了解下属的立场，下属为什么要这么想，然后他才有办法说服你，只关心自己怎么想的领导往往难以获得下属的信服。</p>
<p>第三，领导敢于承担责任，如果出了问题就把责任往下推，有了功劳就往自己身上揽，这样的领导不跟也罢。选择领导，要选择关键时刻能抗得住的领导，能够为下属的错误买单的领导，因为这是他作为领导的责任。<br />
有可能，你碰不到好领导，因为，中国的领导往往是屁股决定脑袋的领导，因为他坐领导的位置，所以他的话就比较有道理，这是传统观念官本位的误区，可能有大量的这种无知无能的领导，只是，这对于你其实是好事，如果将来有一天你要超过他，你希望他比较聪明还是比较笨？相对来说这样的领导其实不难搞定，只是你要把自己的身段放下来而已。<strong>多认识一些人，多和比自己强的人打交道，同样能找到好的老师，不要和一群同样郁闷的人一起控诉社会，控诉老板，这帮不上你，只会让你更消极。和那些比你强的人打交道，看他们是怎么想的，怎么做的，学习他们，然后跟更强的人打交道。</strong></p>
<p>八、选择</p>
<p>我们每天做的最多的事情，其实是选择，因此在谈职业生涯的时候不得不提到这个话题。</p>
<p>我始终认为，在很大的范围内，我们究竟会成为一个什么样的人，决定权在我们自己，每天我们都在做各种各样的选择，我可以不去写这篇文章，去别人的帖子拍拍砖头，也可以写下这些文字，帮助别人的同时也整理自己的思路，我可以多注意下格式让别人易于阅读，也可以写成一堆，我可以就这样发上来，也可以在发以前再看几遍，你可以选择不刮胡子就去面试，也可以选择出门前照照镜子……每天，每一刻我们都在做这样那样的决定，我们可以漫不经心，也可以多花些心思，成千上万的小选择累计起来，就决定了最终我们是个什么样的人。</p>
<p>从某种意义上来说我们的未来不是别人给的，是我们自己选择的，很多人会说我命苦啊，没得选择阿，如果你认为“去微软还是去IBM”“上清华还是上北大”“当销售副总还是当厂长”这种才叫选择的话，的确你没有什么选择，大多数人都没有什么选择。但每天你都可以选择是否为客户服务更周到一些，是否对同事更耐心一些，是否把工作做得更细致一些，是否把情况了解得更清楚一些，是否把不清楚的问题再弄清楚一些……你也可以选择在是否在痛苦中继续坚持，是否抛弃掉自己的那些负面的想法，是否原谅一个人的错误，是否相信我在这里写下的这些话，是否不要再犯同样的错误……<strong>生活每天都在给你选择的机会，每天都在给你改变自己人生的机会</strong>，你可以选择赖在地上撒泼打滚，也可以选择咬牙站起来。你永远都有选择。有些选择不是立杆见影的，需要累积，比如农民可以选择自己常常去浇地，也可以选择让老天去浇地，诚然你今天浇水下去苗不见得今天马上就长出来，但常常浇水，大部分苗终究会长出来的，如果你不浇，收成一定很糟糕。</p>
<p>每天生活都在给你机会，他不会给你一叠现金也不会拱手送你个好工作，但实际上，他还是在给你机会。我的家庭是一个普通的家庭，没有任何了不起的社会关系，我的父亲在大学毕业以后就被分配到了边疆，那个小县城只有一条马路，他们那一代人其实比我们更有理由抱怨，他们什么也没得到，年轻的时候文化大革命，书都没得读，支援边疆插队落户，等到老了，却要给年轻人机会了。他有足够的理由象成千上万那样的青年一样坐在那里抱怨生不逢时，怨气冲天。然而在分配到边疆的十年之后，国家恢复招研究生，他考回了原来的学校。研究生毕业，他被分配到了安徽一家小单位里，又是3年以后，国家第一届招收博士生，他又考回了原来的学校，成为中国第一代博士，那时的他比现在的我年纪还大。生活并没有放弃他，他也没有放弃生活。10年的等待，他做了他自己的选择，他没有放弃，他没有破罐子破摔，所以时机到来的时候，他改变了自己的人生。你最终会成为什么样的人，就决定在你的每个小小的选择之间。<br />
你选择相信什么？你选择和谁交朋友？你选择做什么？你选择怎么做？……我们面临太多的选择，而这些选择当中，意识形态层面的选择又远比客观条件的选择来得重要得多，比如选择做什么产品其实并不那么重要，而选择怎么做才重要。选择用什么人并不重要，而选择怎么带这些人才重要。大多数时候选择客观条件并不要紧，大多数关于客观条件的选择并没有对错之分，要紧的是选择怎么做。一个大学生毕业了，他要去微软也好，他要卖猪肉也好，他要创业也好，他要做游戏代练也好，只要不犯法，不害人，都没有什么关系，<strong>要紧的是，选择了以后，怎么把事情做好</strong>。</p>
<p>除了这些，你还可以选择时间和环境，比如，你可以选择把这辈子最大的困难放在最有体力最有精力的时候，也可以走一步看一步，等到了40岁再说，只是到了40多岁，那正是一辈子最脆弱的时候，上有老下有小，如果在那个时候碰上了职业危机，实在是一件很苦恼的事情。与其如此不如在20多岁30多岁的时候吃点苦，好让自己脆弱的时候活得从容一些。你可以选择在温室里成长，也可以选择到野外磨砺，你可以选择在办公室吹冷气的工作，也可以选择40度的酷热下，去见你的客户，只是，这一切最终会累积起来，引导你到你应得的未来。</p>
<p><strong>我不敢说所有的事情你都有得选择，但是绝大部分事情你有选择，只是往往你不把这当作一种选择。认真对待每一次选择，才会有比较好的未来。</strong></p>
<p>九、选择职业</p>
<p>职业的选择，总的来说，无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类，有个有趣的现象就是，500强的CEO当中最多的是销售出身，第二多的人是财务出身，这两者加起来大概超过95%。现代IT行业也有技术出身成为老板的，但实际上，后来他们还是从事了很多销售和市场的工作，并且表现出色，公司才获得了成功，完全靠技术能力成为公司老板的，几乎没有。这是有原因的，因为销售就是一门跟人打交道的学问，而管理其实也是跟人打交道的学问，这两者之中有很多相通的东西，他们的共同目标就是“让别人去做某件特定的事情。”而财务则是从数字的层面了解生意的本质，从宏观上看待生意的本质，对于一个生意是否挣钱，是否可以正常运作有着最深刻的认识。</p>
<p>公司小的时候是销售主导公司，而公司大的时候是财务主导公司，销售的局限性在于只看人情不看数字，财务的局限性在于只看数字不看人情。公司初期，运营成本低，有订单就活得下去，跟客户也没有什么谈判的条件，别人肯给生意做已经谢天谢地了，这个时候订单压倒一切，客户的要求压倒一切，所以当然要顾人情。公司大了以后，一切都要规范化，免得因为不规范引起一些不必要的风险，同时运营成本也变高，必须提高利润率，把有限的资金放到最有产出的地方。对于上市公司来说，股东才不管你客户是不是最近出国，最近是不是那个省又在搞严打，到了时候就要把业绩拿出来，拿不出来就抛股票，这个时候就是数字压倒一切。</p>
<p>前两天听到有人说一句话觉得很有道理，<strong>开始的时候我们想“能做什么？”，</strong>等到公司做大了有规模了，我们想“不能做什么。”很多人在工作中觉得为什么领导这么保守，这也不行那也不行，错过很多机会。很多时候是因为，你还年轻，你想的是“能做什么”，而作为公司领导要考虑的方面很多，他比较关心“不能做什么”。<br />
我并非鼓吹大家都去做销售或者财务，究竟选择什么样的职业，和你究竟要选择什么样的人生有关系，有些人就喜欢下班按时回家，看看书听听音乐，那也挺好，但就不适合找个销售的工作了，否则会是折磨自己。有些人就喜欢出风头，喜欢成为一群人的中心，如果选择做财务工作，大概也干不久，因为一般老板不喜欢财务太积极，也不喜欢财务话太多。先想好自己要过怎样的人生，再决定要找什么样的职业。<strong>有很多的不快乐，其实是源自不满足，而不满足，很多时候是源自于心不定，而心不定则是因为不清楚究竟自己要什么，不清楚要什么的结果就是什么都想要，结果什么都没得到。</strong></p>
<p>我想，我们还是因为生活而工作，不是因为工作而生活，生活是最要紧的，工作只是生活中的一部分。我总是觉得生活的各方方面都是相互影响的，如果生活本身一团乱麻，工作也不会顺利。所以要有娱乐、要有社交、要锻炼身体，要有和睦的家庭……最要紧的，要开心，我的两个销售找我聊天，一肚子苦水，我问他们，2年以前，你什么都没有，工资不高，没有客户关系，没有业绩，处于被开的边缘，现在的你比那时条件好了很多，为什么现在却更加不开心了？如果你做得越好越不开心，那你为什么还要工作？首先的首先，人还是要让自己高兴起来，让自己心态好起来，这种发自内心的改变会让你更有耐心，更有信心，更有气质，更能包容……否则，看看镜子里的你，你满意么？</p>
<p>有人会说，你说得容易，我每天加班，不加班老板就会把我炒掉，每天累得要死，哪有时间娱乐、社交、锻炼？那是人们把目标设定太高的缘故，如果你还在动不动就会被老板炒掉的边缘，那么你当然不能设立太高的目标，难道你还想每天去打高尔夫？你没时间去健身房锻炼身体，但是上下班的时候多走几步可以吧，有楼梯的时候走走楼梯不走电梯可以吧？办公的间隙扭扭脖子拉拉肩膀做做俯卧撑可以吧？谁规定锻炼就一定要拿出每天2个小时去健身房？你没时间社交，每月参加郊游一次可以吧，周末去参加个什么音乐班，绘画班之类的可以吧，去尝试认识一些同行，和他们找机会交流交流可以吧？开始的时候总是有些难的，但迈出这一步就会向良性循环的方向发展。<strong>而每天工作得很苦闷，剩下的时间用来咀嚼苦闷，只会陷入恶性循环，让生活更加糟糕。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2011/02/28/can-spur-you-for-a-lifetime-of-good-articles-you-definitely-do-not-see-the-loss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>查看oracle当前的连接数</title>
		<link>http://blog.hitangjun.com/2009/12/10/view-the-current-number-of-connections-oracle/</link>
		<comments>http://blog.hitangjun.com/2009/12/10/view-the-current-number-of-connections-oracle/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 09:07:38 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[IT技术]]></category>
		<category><![CDATA[转载]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=379</guid>
		<description><![CDATA[怎样查看oracle当前的连接数呢？[via]只需要用下面的SQL语句查询一下就可以了。 select * from v$session where username is not null select username,count(username) from v$session where username is not null group by username #查看不同用户的连接数 select count(*) from v$session #连接数 Select count(*) from v$session where status=&#8217;ACTIVE&#8217;　#并发连接数 show parameter processes #最大连接 alter system set processes = value scope = spfile;重启数据库 #修改连接 1。查看当前会话数、processes和sessions值，发现session数和2个参数的值已经非常逼近 SQL> conn / as sysdba已连接。 SQL> [...]]]></description>
			<content:encoded><![CDATA[<p>怎样查看oracle当前的连接数呢？[<a href="http://www.blogjava.net/zhip/archive/2008/05/16/200769.html">via</a>]只需要用下面的SQL语句查询一下就可以了。</p>
<p>select * from v$session where username is not null</p>
<p>select username,count(username) from v$session where username is not null group by username #查看不同用户的连接数</p>
<p>select count(*) from v$session   #连接数</p>
<p>Select count(*) from v$session where status=&#8217;ACTIVE&#8217;　#并发连接数</p>
<p>show parameter processes   #最大连接</p>
<p>alter system set processes = value scope = spfile;重启数据库   #修改连接</p>
<p>1。查看当前会话数、processes和sessions值，发现session数和2个参数的值已经非常逼近</p>
<p>SQL> conn / as sysdba已连接。</p>
<p>SQL> select count(*) from v$session;</p>
<p>SQL> show parameter processes;</p>
<p>SQL> show parameter sessions;</p>
<p>2。修改processes和sessions值</p>
<p>SQL> alter system set processes=300 scope=spfile;</p>
<p>系统已更改。</p>
<p>SQL> alter system set sessions=300 scope=spfile;</p>
<p>系统已更改。</p>
<p>    3。查看processes和sessions参数，但更改并未生效</p>
<p>4。重启数据库，使更改生效</p>
<p>SQL> shutdown immediate</p>
<p>SQL> startup</p>
<p>SQL> show parameter processes<br />
     SQL> show parameter sessions </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/12/10/view-the-current-number-of-connections-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql/SQLServer数据类型对应的JDBC类型、JAVA类型，数据类型长度 速查表</title>
		<link>http://blog.hitangjun.com/2009/09/15/mysql-sqlserver-datatype-mapped-in-java/</link>
		<comments>http://blog.hitangjun.com/2009/09/15/mysql-sqlserver-datatype-mapped-in-java/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 02:36:28 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[IT技术]]></category>
		<category><![CDATA[转载]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=303</guid>
		<description><![CDATA[[via] Mysql ************************************ 当前列　　ClassName　　　　 ColumnType　　DisplaySize　　TypeName 0:　　 java.lang.Integer　　ColumnType:4　　11　　INTEGER 1:　　 java.lang.Integer　　ColumnType:-6　　4　　TINYINT 2:　　 java.lang.String　　 ColumnType:12　　0　　UNKNOWN 3:　　 java.lang.Boolean　　ColumnType:-7　　1　　TINYINT 4:　　 java.lang.Integer　　ColumnType:5　　 6　　SMALLINT 5:　　 java.lang.Integer　　ColumnType:4　 　9　　MEDIUMINT 6:　　 java.lang.Integer　　ColumnType:4　　11　　INTEGER 7:　　 java.lang.Long　　　 ColumnType:-5　 20　　BIGINT 8:　　 java.lang.Double　　 ColumnType:8　　22　　DOUBLE 9:　　 java.lang.Double　　 ColumnType:8　　22　　DOUBLE 10:　　java.lang.Float　　　ColumnType:7　　12　　FLOAT 11:　　java.lang.String　　 ColumnType:12　 11　　UNKNOWN 12:　　java.lang.String　　 ColumnType:12　 11　　UNKNOWN 13:　　java.lang.String　　 ColumnType:1　 300　　CHAR 14:　　java.lang.String　　 ColumnType:12　300　　VARCHAR 15:　　java.sql.Date　　　　ColumnType:91　 10　　DATE 16:　　java.sql.Time　　　　ColumnType:92　　8　　TIME 17:　　java.sql.Date　　　　ColumnType:91　　4　　YEAR 18:　　java.sql.Timestamp　 ColumnType:93　 19　　TIMESTAMP 19:　　java.sql.Timestamp　 ColumnType:93　 19　　DATETIME 20:　　[B　　　　　　 [...]]]></description>
			<content:encoded><![CDATA[<p>[<a href="http://www.mysqlpub.com/redirect.php?tid=429&#038;goto=lastpost">via</a>]<br />
Mysql<br />
************************************<br />
当前列　　ClassName　　　　 ColumnType　　DisplaySize　　TypeName<br />
0:　　 java.lang.Integer　　ColumnType:4　　11　　INTEGER<br />
1:　　 java.lang.Integer　　ColumnType:-6　　4　　TINYINT<br />
2:　　 java.lang.String　　 ColumnType:12　　0　　UNKNOWN<br />
3:　　 java.lang.Boolean　　ColumnType:-7　　1　　TINYINT<br />
4:　　 java.lang.Integer　　ColumnType:5　　 6　　SMALLINT<br />
5:　　 java.lang.Integer　　ColumnType:4　 　9　　MEDIUMINT<br />
6:　　 java.lang.Integer　　ColumnType:4　　11　　INTEGER<br />
7:　　 java.lang.Long　　　 ColumnType:-5　 20　　BIGINT<br />
8:　　 java.lang.Double　　 ColumnType:8　　22　　DOUBLE<br />
9:　　 java.lang.Double　　 ColumnType:8　　22　　DOUBLE<br />
10:　　java.lang.Float　　　ColumnType:7　　12　　FLOAT<br />
11:　　java.lang.String　　 ColumnType:12　 11　　UNKNOWN<br />
12:　　java.lang.String　　 ColumnType:12　 11　　UNKNOWN<br />
13:　　java.lang.String　　 ColumnType:1　 300　　CHAR<br />
14:　　java.lang.String　　 ColumnType:12　300　　VARCHAR<br />
15:　　java.sql.Date　　　　ColumnType:91　 10　　DATE<br />
16:　　java.sql.Time　　　　ColumnType:92　　8　　TIME<br />
17:　　java.sql.Date　　　　ColumnType:91　　4　　YEAR<br />
18:　　java.sql.Timestamp　 ColumnType:93　 19　　TIMESTAMP<br />
19:　　java.sql.Timestamp　 ColumnType:93　 19　　DATETIME<br />
20:　　[B　　　　　　       ColumnType:-3　255　　     TINYBLOB<br />
21:　　[B　　　　　　       ColumnType:-4　65535　　   BLOB<br />
22:　　[B　　　　　　       ColumnType:-4　16777215　　MEDIUMBLOB<br />
23:　　[B　　　　　　       ColumnType:-4　-1　　      BLOB<br />
24:　　java.lang.String　　ColumnType:12　　255　 TINYBLOB<br />
25:　　java.lang.String　　ColumnType:-1　　65535　　TEXT<br />
26:　　java.lang.String　　ColumnType:-1　　16777215　　MEDIUMBLOB<br />
27:　　java.lang.String　　ColumnType:-1　　-1　　  TEXT<br />
28:　　java.lang.String　　ColumnType:1　　  3　  　CHAR<br />
29:　　java.lang.String　　ColumnType:1　  　3　　  CHAR</p>
<p>SQLServer<br />
***********************************<br />
0:　　java.lang.Integer　　ColumnType:4　　11　　int identity<br />
1:　　java.lang.Long　　　 ColumnType:-5　　20　　bigint<br />
2:　　byte[]　　　　　　   ColumnType:-2　　100　　binary<br />
3:　　java.lang.Boolean　　ColumnType:-7　　1　　bit<br />
4:　　java.lang.String　　 ColumnType:1　　10　　char<br />
5:　　java.sql.Timestamp　 ColumnType:93　　23　　datetime<br />
6:　　java.sql.Timestamp　 ColumnType:93　　23　　datetime<br />
7:　　java.math.BigDecimal ColumnType:3　　20　　decimal<br />
8:　　java.lang.Double　　 ColumnType:6　　22　　float<br />
9:　　byte[]　　　　　　   ColumnType:-4　2147483647　　image<br />
10:　 java.math.BigDecimal ColumnType:3　　21　　money<br />
11:　 java.lang.String　　 ColumnType:1　　10　　nchar<br />
12:　 java.lang.String　　 ColumnType:-1　1073741823　　ntext<br />
13:　 java.math.BigDecimal ColumnType:2　　20　　numeric<br />
14:　 java.lang.String　　 ColumnType:12　 50　　nvarchar<br />
15:　 java.lang.Float　　　ColumnType:7　　13　　real<br />
16:　 java.sql.Timestamp　 ColumnType:93　 16　　smalldatetime<br />
17:　 java.lang.Integer　　ColumnType:5　　 6　　smallint<br />
18:　 java.math.BigDecimal ColumnType:3　　12　　smallmoney<br />
19:　 java.lang.String　　 ColumnType:12　8000　　sql_variant<br />
20:　 java.lang.String　　 ColumnType:-1　2147483647　　text<br />
21:　 byte[]　　　　　　   ColumnType:-2　 16　　timestamp<br />
22:　 java.lang.Integer　　ColumnType:-6　　3　　tinyint<br />
23:　 java.lang.String　　 ColumnType:1　　36　　uniqueidentifier<br />
24:　 byte[]　　　　　　   ColumnType:-3　100　　varbinary<br />
25:　 java.lang.String　　 ColumnType:12　 50　　varchar </p>
<p>MySQL支持大量的列类型，它可以被分为3类：数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述，并且总结每个列类<br />
型的存储需求，然后提供每个类中的类型性质的更详细的描述。概述有意简化，更详细的说明应该考虑到有关特定列类型的附加信息，例如你能为其指定值的允许<br />
格式。</p>
<p>由MySQL支持的列类型列在下面。下列代码字母用于描述中：</p>
<p>M<br />
指出最大的显示尺寸。最大的合法的显示尺寸是 255 。<br />
D<br />
适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30，但是应该不大于M-2。<br />
方括号(“[”和“]”)指出可选的类型修饰符的部分。</p>
<p>注意，如果你指定一个了为ZEROFILL，MySQL将为该列自动地增加UNSIGNED属性。</p>
<p>TINYINT[(M)] [UNSIGNED] [ZEROFILL]<br />
一个很小的整数。有符号的范围是-128到127，无符号的范围是0到255。</p>
<p>SMALLINT[(M)] [UNSIGNED] [ZEROFILL]<br />
一个小整数。有符号的范围是-32768到32767，无符号的范围是0到65535。</p>
<p>MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]<br />
一个中等大小整数。有符号的范围是-8388608到8388607，无符号的范围是0到16777215。</p>
<p>INT[(M)] [UNSIGNED] [ZEROFILL]<br />
一个正常大小整数。有符号的范围是-2147483648到2147483647，无符号的范围是0到4294967295。</p>
<p>INTEGER[(M)] [UNSIGNED] [ZEROFILL]<br />
这是INT的一个同义词。</p>
<p>BIGINT[(M)] [UNSIGNED] [ZEROFILL]</p>
<p>一个大整数。有符号的范围是-9223372036854775808到9223372036854775807，无符号的范围是0到</p>
<p>18446744073709551615。注意，所有算术运算用有符号的BIGINT或DOUBLE值完成，因此你不应该使用大于<br />
9223372036854775807（63位)的有符号大整数，除了位函数！注意，当两个参数是INTEGER值时，-、+和*将使用BIGINT<br />
运算！这意味着如果你乘2个大整数(或来自于返回整数的函数)，如果结果大于9223372036854775807，你可以得到意外的结果。一个浮点<br />
数字，不能是无符号的，对一个单精度浮点数，其精度可以是<= 24，对一个双精度浮点数，是在25和53之间，这些类型如FLOAT和DOUBLE类<br />
型马上在下面描述。FLOAT(X)有对应的FLOAT和 DOUBLE相同的范围，但是显示尺寸和小数位数是未定义的。在MySQL3.23中，这是<br />
一个真正的浮点值。在更早的MySQL版本中，FLOAT (precision)总是有2位小数。该句法为了ODBC兼容性而提供。</p>
<p>FLOAT[(M,D)] [ZEROFILL]<br />
一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38，0和<br />
1.175494351E- 38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有&lt;24的一个参数表示一<br />
个单精密浮点数字。</p>
<p>DOUBLE[(M,D)] [ZEROFILL]<br />
一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308<br />
到-2.2250738585072014E- 308、0和2.2250738585072014E-308到<br />
1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)（25 < = X < = 53）代表一个双精密浮点数字。</p>
<p>DOUBLE PRECISION[(M,D)] [ZEROFILL]</p>
<p>REAL[(M,D)] [ZEROFILL]<br />
这些是DOUBLE同义词。</p>
<p>DECIMAL[(M[,D])] [ZEROFILL]<br />
一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列：“未压缩”意味着数字作为一个字符串被存储，值的每一位使用一个字符。小<br />
数点，并且对于负数，“-”符号不在M中计算。如果D是0，值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同，但是对一个给定<br />
的 DECIMAL列，实际的范围可以通过M和D的选择被限制。如果D被省略，它被设置为0。如果M被省掉，它被设置为10。注意，在<br />
MySQL3.22里， M参数包括符号和小数点。</p>
<p>NUMERIC(M,D) [ZEROFILL]<br />
这是DECIMAL的一个同义词。<br />
DATE<br />
一个日期。支持的范围是&#8217;1000-01-01&#8242;到&#8217;9999-12-31&#8242;。MySQL以&#8217;YYYY-MM-DD&#8217;格式来显示DATE值，但是允许你<br />
使用字符串或数字把值赋给DATE列。</p>
<p>DATETIME<br />
一个日期和时间组合。支持的范围是&#8217;1000-01-01 00:00:00&#8242;到&#8217;9999-12-3123:59:59&#8242;。MySQL以&#8217;YYYY-<br />
MM-DDHH:MM:SS&#8217;格式来显示DATETIME值，但是允许你使用字符串或数字把值赋给DATETIME的列。</p>
<p>TIMESTAMP[(M)]<br />
一个时间戳记。范围是&#8217;1970 -01-0100:00:00&#8242;到2037年的某时。MySQL以<br />
YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或 YYMMDD格式来显示TIMESTAMP值，取决于是否M是14（或<br />
省略)、12、8或6，但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操<br />
作的日期和时间是有用的，因为如果你不自己给它赋值，它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时<br />
间。<br />
TIME<br />
一个时间。范围是&#8217;-838:59:59&#8242;到&#8217;838:59:59&#8242;。MySQL以&#8217;HH:MM:SS&#8217;格式来显示TIME值，但是允许你使用字符串或<br />
数字把值赋给TIME列。</p>
<p>YEAR[(2|4)]<br />
一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155，和0000（4位年格式），如果你使用2<br />
位，1970-2069(70-69)。 MySQL以YYYY格式来显示YEAR值，但是允许你把使用字符串或数字值赋给YEAR列。（YEAR类型<br />
在MySQL3.22中是新类型。）</p>
<p>CHAR(M) [BINARY]<br />
一个定长字符串，当存储时，总是是用空格填满右边到指定的长度。M的范围是1～255个字符。当值被检索时，空格尾部被删除。CHAR值根据缺省字符集<br />
以大小写不区分的方式排序和比较，除非给出BINARY关键词。NATIONALCHAR（短形式NCHAR)是ANSISQL的方式来定义CHAR列<br />
应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。</p>
<p>[NATIONAL] VARCHAR(M) [BINARY]<br />
一个变长字符串。注意：当值被存储时，尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ～ 255个字符。VARCHAR值根据缺省<br />
字符集以大小写不区分的方式排序和比较，除非给出BINARY关键词值。 VARCHAR是CHARACTERVARYING一个缩写。</p>
<p>TINYBLOB</p>
<p>TINYTEXT<br />
一个BLOB或TEXT列，最大长度为255(2^8-1)个字符。<br />
BLOB</p>
<p>TEXT<br />
一个BLOB或TEXT列，最大长度为65535(2^16-1)个字符。</p>
<p>MEDIUMBLOB</p>
<p>MEDIUMTEXT<br />
一个BLOB或TEXT列，最大长度为16777215(2^24-1)个字符。<br />
LONGBLOB</p>
<p>LONGTEXT<br />
一个BLOB或TEXT列，最大长度为4294967295(2^32-1)个字符。</p>
<p>ENUM(&#8216;value1&#8242;,&#8217;value2&#8242;,&#8230;)<br />
枚举。一个仅有一个值的字符串对象，这个值式选自与值列表&#8217;value1&#8242;、&#8217;value2&#8242;, &#8230;,或NULL。一个ENUM最多能有65535<br />
不同的值。</p>
<p>SET(&#8216;value1&#8242;,&#8217;value2&#8242;,&#8230;)<br />
一个集合。能有零个或多个值的一个字符串对象，其中每一个必须从值列表&#8217;value1&#8242;, &#8216;value2&#8242;, &#8230;选出。一个SET最多能有64个<br />
成员。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/09/15/mysql-sqlserver-datatype-mapped-in-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grep学习笔记</title>
		<link>http://blog.hitangjun.com/2009/06/22/grep-note/</link>
		<comments>http://blog.hitangjun.com/2009/06/22/grep-note/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 01:23:11 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[IT技术]]></category>
		<category><![CDATA[转载]]></category>
		<category><![CDATA[grep]]></category>

		<guid isPermaLink="false">http://blog.hitangjun.com/?p=217</guid>
		<description><![CDATA[前段时间因为需要分析项目的log，工作量巨大，特意看了一下grep，想整理一下，发现已经有了，所以也就不再重复造轮子了，下面这篇不错，不过访问速度有点慢，特转载过来。 整理：Jims of 肥肥世家 Table of Contents 1. grep简介 2. grep正则表达式元字符集（基本集） 3. 用于egrep和 grep -E的元字符扩展集 4. POSIX字符类 5. Grep命令选项 6. 实例 7. 技巧 1. grep简介 grep（global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来）是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展，支持更多的re元字符，fgrep就是fixed grep或fast grep，它们把所有的字母都看作单词，也就是说，正则表达式中的元字符表示回其自身的字面意义，不再特殊。linux使用GNU版本的grep。它功能更强，可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。 grep的工作方式是这样的，它在一个或多个文件中搜索字符串模板。如果模板包括空格，则必须被引用，模板后的所有字符串被看作文件名。搜索的结果被送到屏幕，不影响原文件内容。 grep可用于shell脚本，因为grep通过返回一个状态值来说明搜索的状态，如果模板搜索成功，则返回0，如果搜索不成功，则返回1，如果搜索的文件不存在，则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。 2. grep正则表达式元字符集（基本集） ^ 锚定行的开始 如：&#8217;^grep&#8217;匹配所有以grep开头的行。 $ 锚定行的结束 如：&#8217;grep$&#8217;匹配所有以grep结尾的行。 . 匹配一个非换行符的字符 如：&#8217;gr.p&#8217;匹配gr后接一个任意字符，然后是p。 * 匹配零个或多个先前字符 如：&#8217;*grep&#8217;匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。 [] 匹配一个指定范围内的字符，如&#8217;[Gg]rep&#8217;匹配Grep和grep。 [...]]]></description>
			<content:encoded><![CDATA[<div class="article" lang="en">
<div class="titlepage">
<div>
<div>
<h3><span style="font-weight: normal;">前段时间因为需要分析项目的log，工作量巨大，特意看了一下grep，想整理一下，发现已经有了，所以也就不再重复造轮子了，下面这篇不错，不过访问速度有点慢，特转载过来。</span></h3>
</div>
<div>
整理：Jims of <a href="http://www.ringkee.com/" target="_top">肥肥世家</a>
</div>
</div>
<div class="toc">
<strong>Table of Contents</strong></p>
<dl>
<dt><span class="sect1"><a href="http://blog.hitangjun.com/2009/06/22/grep-note/#id2875182">1. grep简介</a></span> </dt>
<dt><span class="sect1"><a href="http://www.tj4c.com/2009/06/22/grep-note/#id2811728">2. grep正则表达式元字符集（基本集）</a></span> </dt>
<dt><span class="sect1"><a href="http://www.tj4c.com/2009/06/22/grep-note/#id2810259">3. 用于egrep和 grep -E的元字符扩展集</a></span> </dt>
<dt><span class="sect1"><a href="http://www.tj4c.com/2009/06/22/grep-note/#id2810362">4. POSIX字符类</a></span> </dt>
<dt><span class="sect1"><a href="http://blog.hitangjun.com/2009/06/22/grep-note/#id2810577">5. Grep命令选项</a></span> </dt>
<dt><span class="sect1"><a href="http://www.tj4c.com/2009/06/22/grep-note/#id2861634">6. 实例</a></span> </dt>
<dt><span class="sect1"><a href="http://blog.hitangjun.com/2009/06/22/grep-note/#id2861748">7. 技巧</a></span></dt>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="id2875182"></a>1. grep简介</h2>
</div>
</div>
</div>
<p>grep（global search regular expression(RE) and print out the  line,全面搜索正则表达式并把行打印出来）是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展，支持更多的re元字符，fgrep就是fixed  grep或fast  grep，它们把所有的字母都看作单词，也就是说，正则表达式中的元字符表示回其自身的字面意义，不再特殊。linux使用GNU版本的grep。它功能更强，可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。</p>
<p>grep的工作方式是这样的，它在一个或多个文件中搜索字符串模板。如果模板包括空格，则必须被引用，模板后的所有字符串被看作文件名。搜索的结果被送到屏幕，不影响原文件内容。<br />
<span id="more-217"></span><br />
grep可用于shell脚本，因为grep通过返回一个状态值来说明搜索的状态，如果模板搜索成功，则返回0，如果搜索不成功，则返回1，如果搜索的文件不存在，则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。</div>
<h3><a name="id2811728"></a>2. grep正则表达式元字符集（基本集）</h3>
<div class="variablelist">
<dl>
<dt><span class="term">^</span> </dt>
<dd>锚定行的开始 如：&#8217;^grep&#8217;匹配所有以grep开头的行。</p>
</dd>
<dt><span class="term">$</span> </dt>
<dd>锚定行的结束 如：&#8217;grep$&#8217;匹配所有以grep结尾的行。</p>
</dd>
<dt><span class="term">.</span> </dt>
<dd>匹配一个非换行符的字符 如：&#8217;gr.p&#8217;匹配gr后接一个任意字符，然后是p。</p>
</dd>
<dt><span class="term">*</span> </dt>
<dd>匹配零个或多个先前字符 如：&#8217;*grep&#8217;匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。</p>
</dd>
<dt><span class="term">[]</span> </dt>
<dd>匹配一个指定范围内的字符，如&#8217;[Gg]rep&#8217;匹配Grep和grep。</p>
</dd>
<dt><span class="term">[^]</span> </dt>
<dd>匹配一个不在指定范围内的字符，如：&#8217;[^A-FH-Z]rep&#8217;匹配不包含A-F和H-Z字母开头，紧跟rep的行。</p>
</dd>
<dt><span class="term">(..)</span> </dt>
<dd>标记匹配字符，如&#8217;(love)&#8217;，love被标记为1。</p>
</dd>
<dt><span class="term">&lt;</span> </dt>
<dd>锚定单词的开始，如:&#8217;&lt;grep&#8217;匹配包含以grep开头的单词的行。</p>
</dd>
<dt><span class="term">&gt;</span> </dt>
<dd>锚定单词的结束，如&#8217;grep&gt;&#8217;匹配包含以grep结尾的单词的行。</p>
</dd>
<dt><span class="term">x{m}</span> </dt>
<dd>重复字符x，m次，如：&#8217;0{5}&#8217;匹配包含5个o的行。</p>
</dd>
<dt><span class="term">x{m,}</span> </dt>
<dd>重复字符x,至少m次，如：&#8217;o{5,}&#8217;匹配至少有5个o的行。</p>
</dd>
<dt><span class="term">x{m,n}</span> </dt>
<dd>重复字符x，至少m次，不多于n次，如：&#8217;o{5,10}&#8217;匹配5&#8211;10个o的行。</p>
</dd>
<dt><span class="term">w</span> </dt>
<dd>匹配文字和数字字符，也就是[A-Za-z0-9]，如：&#8217;Gw*p&#8217;匹配以G后跟零个或多个文字或数字字符，然后是p。</p>
</dd>
<dt><span class="term">W</span> </dt>
<dd>w的反置形式，匹配一个或多个非单词字符，如点号句号等。</p>
</dd>
<dt><span class="term">b</span> </dt>
<dd>单词锁定符，如: &#8216;bgrepb&#8217;只匹配grep。</p>
</dd>
</dl>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="id2810259"></a>3. 用于egrep和 grep  -E的元字符扩展集</h2>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dt><span class="term">+</span> </dt>
<dd>匹配一个或多个先前的字符。如：&#8217;[a-z]+able&#8217;，匹配一个或多个小写字母后跟able的串，如loveable,enable,disable等。</p>
</dd>
<dt><span class="term">?</span> </dt>
<dd>匹配零个或多个先前的字符。如：&#8217;gr?p&#8217;匹配gr后跟一个或没有字符，然后是p的行。</p>
</dd>
<dt><span class="term">a|b|c</span> </dt>
<dd>匹配a或b或c。如：grep|sed匹配grep或sed这两个字符串。</p>
</dd>
<dt><span class="term">()</span> </dt>
<dd>分组符号，如：love(able|rs)(ov)+匹配loveable或lovers，匹配一个或多个ov。</p>
</dd>
<dt><span class="term">x{m},x{m,},x{m,n}</span> </dt>
<dd>作用同x{m},x{m,},x{m,n}</p>
</dd>
</dl>
</div>
</div>
<h3 class="title"><a name="id2810362"></a>4. POSIX字符类</h3>
<p>为了在不同国家的字符编码中保持一至，POSIX(The Portable Operating System  Interface)增加了特殊的字符类，如[:alnum:]是A-Za-z0-9的另一个写法。要把它们放到[]号内才能成为正则表达式，如[A-Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外，都支持POSIX的字符类。</p>
<div class="variablelist">
<dl>
<dt><span class="term">[:alnum:]</span> </dt>
<dd>文字数字字符</p>
</dd>
<dt><span class="term">[:alpha:]</span> </dt>
<dd>文字字符</p>
</dd>
<dt><span class="term">[:digit:]</span> </dt>
<dd>数字字符</p>
</dd>
<dt><span class="term">[:graph:]</span> </dt>
<dd>非空字符（非空格、控制字符）</p>
</dd>
<dt><span class="term">[:lower:]</span> </dt>
<dd>小写字符</p>
</dd>
<dt><span class="term">[:cntrl:]</span> </dt>
<dd>控制字符</p>
</dd>
<dt><span class="term">[:print:]</span> </dt>
<dd>非空字符（包括空格）</p>
</dd>
<dt><span class="term">[:punct:]</span> </dt>
<dd>标点符号</p>
</dd>
<dt><span class="term">[:space:]</span> </dt>
<dd>所有空白字符（新行，空格，制表符）</p>
</dd>
<dt><span class="term">[:upper:]</span> </dt>
<dd>大写字符</p>
</dd>
<dt><span class="term">[:xdigit:]</span> </dt>
<dd>十六进制数字（0-9，a-f，A-F）</p>
</dd>
</dl>
</div>
</div>
<h3 class="title"><a name="id2810577"></a>5. Grep命令选项</h3>
<div class="variablelist">
<dl>
<dt><span class="term">-?</span> </dt>
<dd>同时显示匹配行上下的？行，如：grep -2 pattern filename同时显示匹配行的上下2行。</p>
</dd>
<dt><span class="term">-b，&#8211;byte-offset</span> </dt>
<dd>打印匹配行前面打印该行所在的块号码。</p>
</dd>
<dt><span class="term">-c,&#8211;count</span> </dt>
<dd>只打印匹配的行数，不显示匹配的内容。</p>
</dd>
<dt><span class="term">-f File，&#8211;file=File</span> </dt>
<dd>从文件中提取模板。空文件中包含0个模板，所以什么都不匹配。</p>
</dd>
<dt><span class="term">-h，&#8211;no-filename</span> </dt>
<dd>当搜索多个文件时，不显示匹配文件名前缀。</p>
</dd>
<dt><span class="term">-i，&#8211;ignore-case</span> </dt>
<dd>忽略大小写差别。</p>
</dd>
<dt><span class="term">-q，&#8211;quiet</span> </dt>
<dd>取消显示，只返回退出状态。0则表示找到了匹配的行。</p>
</dd>
<dt><span class="term">-l，&#8211;files-with-matches</span> </dt>
<dd>打印匹配模板的文件清单。</p>
</dd>
<dt><span class="term">-L，&#8211;files-without-match</span> </dt>
<dd>打印不匹配模板的文件清单。</p>
</dd>
<dt><span class="term">-n，&#8211;line-number</span> </dt>
<dd>在匹配的行前面打印行号。</p>
</dd>
<dt><span class="term">-s，&#8211;silent</span> </dt>
<dd>不显示关于不存在或者无法读取文件的错误信息。</p>
</dd>
<dt><span class="term">-v，&#8211;revert-match</span> </dt>
<dd>反检索，只显示不匹配的行。</p>
</dd>
<dt><span class="term">-w，&#8211;word-regexp</span> </dt>
<dd>如果被&lt;和&gt;引用，就把表达式做为一个单词搜索。</p>
</dd>
<dt><span class="term">-V，&#8211;version</span> </dt>
<dd>显示软件版本信息。</p>
</dd>
</dl>
</div>
<h3 class="title"><a name="id2861634"></a>6. 实例</h3>
<p>要用好grep这个工具，其实就是要写好正则表达式，所以这里不对grep的所有功能进行实例讲解，只列几个例子，讲解一个正则表达式的写法。</p>
<div class="variablelist">
<dl>
<dt><span class="term">$ ls | grep &#8216;^a&#8217;</span> </dt>
<dd>通过管道过滤ls输出的内容，只显示以a开头的行。</p>
</dd>
<dt><span class="term">$ grep &#8216;test&#8217; d*</span> </dt>
<dd>显示所有以d开头的文件中包含test的行。</p>
</dd>
<dt><span class="term">$ grep &#8216;test&#8217; aa bb cc</span> </dt>
<dd>显示在aa，bb，cc文件中匹配test的行。</p>
</dd>
<dt><span class="term">$ grep &#8216;[a-z]{5}&#8217; aa</span> </dt>
<dd>显示所有包含每个字符串至少有5个连续小写字符的字符串的行。</p>
</dd>
<dt><span class="term">$ grep &#8216;w(es)t.*1&#8242; aa</span> </dt>
<dd>如果west被匹配，则es就被存储到内存中，并标记为1，然后搜索任意个字符（.*），这些字符后面紧跟着另外一个es（1），找到就显示该行。如果用egrep或grep  -E，就不用”"号进行转义，直接写成&#8217;w(es)t.*1&#8242;就可以了。</p>
</dd>
<dt><span class="term">$ grep &#8216;\btest\b&#8217; aa.log</span> </dt>
<dd>查找aa.log中以&#8217;\b&#8217;限定的字符串&#8217;test&#8217;所在的行,特别是当&#8217;\b&#8217;所限定的字符串里包含正则符号却不需要转义是非常有效。</dd>
<dt><span class="term">$ grep -E &#8216;(aaa|bbb|ccc)&#8217; *.log > b.log</span> </dt>
<dd>查找所有*.log文件中至少包含aaa或bbb或ccc的行，并把它们合并输出到b.log文件中。</dd>
</dl>
</div>
<h3 class="title"><a name="id2861748"></a>7. 技巧</h3>
<div class="itemizedlist">
<ul type="disc">
<li>在结果集中显示彩色的字符。<br />
export GREP_OPTIONS=&#8217;&#8211;color=always&#8217;<br />
export GREP_COLOR=&#8217;1;32&#8242;
</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/06/22/grep-note/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle中SQLPLUS的常用指令收集与技巧</title>
		<link>http://blog.hitangjun.com/2009/05/04/oracle_sqlplu/</link>
		<comments>http://blog.hitangjun.com/2009/05/04/oracle_sqlplu/#comments</comments>
		<pubDate>Mon, 04 May 2009 08:59:59 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>
		<category><![CDATA[knowsky]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=67</guid>
		<description><![CDATA[说明：转载自http://www.knowsky.com 安装了oracle9i，进入sal*plus需要输入用户名、口令和主机标志符 system/manager sys/change_on_intall scott/tiger internal/oracle 以上为初始密码 主机字符串空或者是@+你的服务名,在本地登陆不需要本地服务名。 下面就介绍一下一些常用的sql*plus命令： 首先查看当前使用的数据库实例: select name from V$database; 切换两个数据库实例 在sqlplus里connect username/password@sid 或host set ORACLE_SID=sid 或cmd里set ORACLE_SID=sid 或修改注册表里ORACLE_SID项  &#60;!–more–&#62; ◆1. 执行一个SQL脚本文件 SQL&#62;start file_name SQL&#62;@ file_name 我们可以将多条sql语句保存在一个文本文件中，这样当要执行这个文件中的所有的sql语句时，用上面的任一命令即可，这类似于dos中的批处理。 ◆2. 对当前的输入进行编辑 SQL&#62;edit ◆3. 重新运行上一次运行的sql语句 SQL&#62;/ ◆4. 将显示的内容输出到指定文件 SQL&#62; SPOOL file_name 在屏幕上的所有内容都包含在该文件中，包括你输入的sql语句。 ◆5. 关闭spool输出 SQL&#62; SPOOL OFF 只有关闭spool输出，才会在输出文件中看到输出的内容。 ◆6．显示一个表的结构 SQL&#62; desc table_name ◆7. COL命令： 主要格式化列的显示形式。 [...]]]></description>
			<content:encoded><![CDATA[<p>说明：转载自<a href="http://www.knowsky.com" target="_blank">http://www.knowsky.com</a></p>
<p>安装了oracle9i，进入sal*plus需要输入用户名、口令和主机标志符</p>
<p>system/manager</p>
<p>sys/change_on_intall</p>
<p>scott/tiger</p>
<p>internal/oracle</p>
<p>以上为初始密码<br />
主机字符串空或者是@+你的服务名,在本地登陆不需要本地服务名。<br />
下面就介绍一下一些常用的sql*plus命令：</p>
<p>首先查看当前使用的数据库实例:<br />
select name from V$database;<br />
切换两个数据库实例<br />
在sqlplus里connect username/password@sid</p>
<p>或host set ORACLE_SID=sid</p>
<p>或cmd里set ORACLE_SID=sid</p>
<p>或修改注册表里ORACLE_SID项  &lt;!–more–&gt;<br />
◆1. 执行一个SQL脚本文件</p>
<p>SQL&gt;start file_name</p>
<p>SQL&gt;@ file_name</p>
<p>我们可以将多条sql语句保存在一个文本文件中，这样当要执行这个文件中的所有的sql语句时，用上面的任一命令即可，这类似于dos中的批处理。<br />
◆2. 对当前的输入进行编辑</p>
<p>SQL&gt;edit<br />
◆3. 重新运行上一次运行的sql语句</p>
<p>SQL&gt;/<br />
◆4. 将显示的内容输出到指定文件</p>
<p>SQL&gt; SPOOL file_name</p>
<p>在屏幕上的所有内容都包含在该文件中，包括你输入的sql语句。<br />
◆5. 关闭spool输出</p>
<p>SQL&gt; SPOOL OFF</p>
<p>只有关闭spool输出，才会在输出文件中看到输出的内容。<br />
◆6．显示一个表的结构</p>
<p>SQL&gt; desc table_name<br />
◆7. COL命令：</p>
<p>主要格式化列的显示形式。</p>
<p>该命令有许多选项，具体如下：</p>
<p>COL[UMN] [{ column|expr} [ option ...]]</p>
<p>Option选项可以是如下的子句:</p>
<p>ALI[AS] alias</p>
<p>CLE[AR]</p>
<p>FOLD_A[FTER]</p>
<p>FOLD_B[EFORE]</p>
<p>FOR[MAT] format</p>
<p>HEA[DING] text</p>
<p>JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}</p>
<p>LIKE { expr|alias}</p>
<p>NEWL[INE]</p>
<p>NEW_V[ALUE] variable</p>
<p>NOPRI[NT]|PRI[NT]</p>
<p>NUL[L] text</p>
<p>OLD_V[ALUE] variable</p>
<p>ON|OFF</p>
<p>WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]<br />
1). 改变缺省的列标题</p>
<p>COLUMN column_name HEADING column_heading</p>
<p>For example:</p>
<p>Sql&gt;select * from dept;</p>
<p>DEPTNO DNAME LOC</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;</p>
<p>10 ACCOUNTING NEW YORK</p>
<p>sql&gt;col LOC heading location</p>
<p>sql&gt;select * from dept;</p>
<p>DEPTNO DNAME location</p>
<p>&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211;</p>
<p>10 ACCOUNTING NEW YORK<br />
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上：</p>
<p>Sql&gt;select * from emp</p>
<p>Department name Salary</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-</p>
<p>10 aaa 11</p>
<p>SQL&gt; COLUMN ENAME HEADING ’Employee|Name’</p>
<p>Sql&gt;select * from emp</p>
<p>Employee</p>
<p>Department name Salary</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-</p>
<p>10 aaa 11</p>
<p>note: the col heading turn into two lines from one line.<br />
3). 改变列的显示长度：</p>
<p>FOR[MAT] format</p>
<p>Sql&gt;select empno,ename,job from emp;</p>
<p>EMPNO ENAME JOB</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;</p>
<p>7369 SMITH CLERK</p>
<p>7499 ALLEN SALESMAN</p>
<p>7521 WARD SALESMAN</p>
<p>Sql&gt; col ename format a40</p>
<p>EMPNO ENAME JOB</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;</p>
<p>7369 SMITH CLERK</p>
<p>7499 ALLEN SALESMAN</p>
<p>7521 WARD SALESMAN<br />
4). 设置列标题的对齐方式</p>
<p>JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}</p>
<p>SQL&gt; col ename justify center</p>
<p>SQL&gt; /</p>
<p>EMPNO ENAME JOB</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;</p>
<p>7369 SMITH CLERK</p>
<p>7499 ALLEN SALESMAN</p>
<p>7521 WARD SALESMAN</p>
<p>对于NUMBER型的列，列标题缺省在右边，其它类型的列标题缺省在左边<br />
5). 不让一个列显示在屏幕上</p>
<p>NOPRI[NT]|PRI[NT]</p>
<p>SQL&gt; col job noprint</p>
<p>SQL&gt; /</p>
<p>EMPNO ENAME</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>7369 SMITH</p>
<p>7499 ALLEN</p>
<p>7521 WARD<br />
6). 格式化NUMBER类型列的显示：</p>
<p>SQL&gt; COLUMN SAL FORMAT $99,990</p>
<p>SQL&gt; /</p>
<p>Employee</p>
<p>Department Name Salary Commission</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-</p>
<p>30 ALLEN $1,600 300<br />
7). 显示列值时，如果列值为NULL值，用text值代替NULL值</p>
<p>COMM NUL[L] text</p>
<p>SQL&gt;COL COMM NUL[L] text<br />
8). 设置一个列的回绕方式</p>
<p>WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]</p>
<p>COL1</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>HOW ARE YOU?<br />
SQL&gt;COL COL1 FORMAT A5</p>
<p>SQL&gt;COL COL1 WRAPPED</p>
<p>COL1</p>
<p>&#8212;&#8211;</p>
<p>HOW A</p>
<p>RE YO</p>
<p>U?<br />
SQL&gt; COL COL1 WORD_WRAPPED</p>
<p>COL1</p>
<p>&#8212;&#8211;</p>
<p>HOW</p>
<p>ARE</p>
<p>YOU?<br />
SQL&gt; COL COL1 WORD_WRAPPED</p>
<p>COL1</p>
<p>&#8212;&#8211;</p>
<p>HOW A<br />
9). 显示列的当前的显示属性值</p>
<p>SQL&gt; COLUMN column_name<br />
10). 将所有列的显示属性设为缺省值</p>
<p>SQL&gt; CLEAR COLUMNS<br />
◆8. 屏蔽掉一个列中显示的相同的值</p>
<p>BREAK ON break_column</p>
<p>SQL&gt; BREAK ON DEPTNO</p>
<p>SQL&gt; SELECT DEPTNO, ENAME, SAL</p>
<p>FROM EMP</p>
<p>WHERE SAL &lt; 2500</p>
<p>ORDER BY DEPTNO;</p>
<p>DEPTNO ENAME SAL</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;</p>
<p>10 CLARK 2450</p>
<p>MILLER 1300</p>
<p>20 SMITH 800</p>
<p>ADAMS 1100<br />
◆9. 在上面屏蔽掉一个列中显示的相同的值的显示中，每当列值变化时在值变化之前插入n个空行。</p>
<p>BREAK ON break_column SKIP n<br />
SQL&gt; BREAK ON DEPTNO SKIP 1</p>
<p>SQL&gt; /</p>
<p>DEPTNO ENAME SAL</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;</p>
<p>10 CLARK 2450</p>
<p>MILLER 1300<br />
20 SMITH 800</p>
<p>ADAMS 1100<br />
◆10. 显示对BREAK的设置</p>
<p>SQL&gt; BREAK<br />
◆11. 删除6、7的设置</p>
<p>SQL&gt; CLEAR BREAKS<br />
◆12. Set 命令：</p>
<p>该命令包含许多子命令：</p>
<p>SET system_variable value</p>
<p>system_variable value 可以是如下的子句之一：</p>
<p>APPI[NFO]{ON|OFF|text}</p>
<p>ARRAY[SIZE] {15|n}</p>
<p>AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}</p>
<p>AUTOP[RINT] {ON|OFF}</p>
<p>AUTORECOVERY [ON|OFF]</p>
<p>AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]</p>
<p>BLO[CKTERMINATOR] {.|c}</p>
<p>CMDS[EP] {;|c|ON|OFF}</p>
<p>COLSEP {_|text}</p>
<p>COM[PATIBILITY]{V7|V8|NATIVE}</p>
<p>CON[CAT] {.|c|ON|OFF}</p>
<p>COPYC[OMMIT] {0|n}</p>
<p>COPYTYPECHECK {ON|OFF}</p>
<p>DEF[INE] {&amp;|c|ON|OFF}</p>
<p>DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]</p>
<p>ECHO {ON|OFF}</p>
<p>EDITF[ILE] file_name[.ext]</p>
<p>EMB[EDDED] {ON|OFF}</p>
<p>ESC[APE] {|c|ON|OFF}</p>
<p>FEED[BACK] {6|n|ON|OFF}</p>
<p>FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}</p>
<p>FLU[SH] {ON|OFF}</p>
<p>HEA[DING] {ON|OFF}</p>
<p>HEADS[EP] {||c|ON|OFF}</p>
<p>INSTANCE [instance_path|LOCAL]</p>
<p>LIN[ESIZE] {80|n}</p>
<p>LOBOF[FSET] {n|1}</p>
<p>LOGSOURCE [pathname]</p>
<p>LONG {80|n}</p>
<p>LONGC[HUNKSIZE] {80|n}</p>
<p>MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL</p>
<p>{ON|OFF}] [PRE[FORMAT] {ON|OFF}]</p>
<p>NEWP[AGE] {1|n|NONE}</p>
<p>NULL text</p>
<p>NUMF[ORMAT] format</p>
<p>NUM[WIDTH] {10|n}</p>
<p>PAGES[IZE] {24|n}</p>
<p>PAU[SE] {ON|OFF|text}</p>
<p>RECSEP {WR[APPED]|EA[CH]|OFF}</p>
<p>RECSEPCHAR {_|c}</p>
<p>SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_</p>
<p>WRAPPED]|TRU[NCATED]}]</p>
<p>SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}</p>
<p>SHOW[MODE] {ON|OFF}</p>
<p>SQLBL[ANKLINES] {ON|OFF}</p>
<p>SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}</p>
<p>SQLCO[NTINUE] {&gt; |text}</p>
<p>SQLN[UMBER] {ON|OFF}</p>
<p>SQLPRE[FIX] {#|c}</p>
<p>SQLP[ROMPT] {SQL&gt;|text}</p>
<p>SQLT[ERMINATOR] {;|c|ON|OFF}</p>
<p>SUF[FIX] {SQL|text}</p>
<p>TAB {ON|OFF}</p>
<p>TERM[OUT] {ON|OFF}</p>
<p>TI[ME] {ON|OFF}</p>
<p>TIMI[NG] {ON|OFF}</p>
<p>TRIM[OUT] {ON|OFF}</p>
<p>TRIMS[POOL] {ON|OFF}</p>
<p>UND[ERLINE] {-|c|ON|OFF}</p>
<p>VER[IFY] {ON|OFF}</p>
<p>WRA[P] {ON|OFF}<br />
1). 设置当前session是否对修改的数据进行自动提交</p>
<p>SQL&gt;SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}<br />
2)．在用start命令执行一个sql脚本时，是否显示脚本中正在执行的SQL语句</p>
<p>SQL&gt; SET ECHO {ON|OFF}<br />
3).是否显示当前sql语句查询或修改的行数</p>
<p>SQL&gt; SET FEED[BACK] {6|n|ON|OFF}</p>
<p>默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ，则不管查询到多少行都返回。当为off 时，一律不显示查询的行数<br />
4).是否显示列标题</p>
<p>SQL&gt; SET HEA[DING] {ON|OFF}</p>
<p>当set heading off 时，在每页的上面不显示列标题，而是以空白行代替<br />
5).设置一行可以容纳的字符数</p>
<p>SQL&gt; SET LIN[ESIZE] {80|n}</p>
<p>如果一行的输出内容大于设置的一行可容纳的字符数，则折行显示。<br />
6).设置页与页之间的分隔</p>
<p>SQL&gt; SET NEWP[AGE] {1|n|NONE}</p>
<p>当set newpage 0 时，会在每页的开头有一个小的黑方框。</p>
<p>当set newpage n 时，会在页和页之间隔着n个空行。</p>
<p>当set newpage none 时，会在页和页之间没有任何间隔。<br />
7).显示时，用text值代替NULL值</p>
<p>SQL&gt; SET NULL text<br />
8).设置一页有多少行数</p>
<p>SQL&gt; SET PAGES[IZE] {24|n}</p>
<p>如果设为0，则所有的输出内容为一页并且不显示列标题<br />
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。</p>
<p>SQL&gt; SET SERVEROUT[PUT] {ON|OFF}</p>
<p>在编写存储过程时，我们有时会用dbms_output.put_line将必要的信息输出，以便对存储过程进行调试，只有将serveroutput变量设为on后，信息才能显示在屏幕上。<br />
10).当SQL语句的长度大于LINESIZE时，是否在显示时截取SQL语句。</p>
<p>SQL&gt; SET WRA[P] {ON|OFF}</p>
<p>当输出的行的长度大于设置的行的长度时（用set linesize n命令设置），当set wrap on时，输出行的多于的字符会另起一行显示，否则，会将输出行的多于字符切除，不予显示。<br />
11).是否在屏幕上显示输出的内容，主要用与SPOOL结合使用。</p>
<p>SQL&gt; SET TERM[OUT] {ON|OFF}</p>
<p>在用spool命令将一个大表中的内容输出到一个文件中时，将内容输出在屏幕上会耗费大量的时间，设置set termspool off后，则输出的内容只会保存在输出文件中，不会显示在屏幕上，极大的提高了spool的速度。<br />
12).将SPOOL输出中每行后面多余的空格去掉</p>
<p>SQL&gt; SET TRIMS[OUT] {ON|OFF}<br />
13)显示每个sql语句花费的执行时间</p>
<p>set TIMING {ON|OFF}<br />
◆14．修改sql buffer中的当前行中，第一个出现的字符串</p>
<p>C[HANGE] /old_value/new_value</p>
<p>SQL&gt; l</p>
<p>1* select * from dept</p>
<p>SQL&gt; c/dept/emp</p>
<p>1* select * from emp<br />
◆15．编辑sql buffer中的sql语句</p>
<p>EDI[T]<br />
◆16．显示sql buffer中的sql语句，list n显示sql buffer中的第n行，并使第n行成为当前行</p>
<p>L[IST] [n]<br />
◆17．在sql buffer的当前行下面加一行或多行</p>
<p>I[NPUT]<br />
◆18．将指定的文本加到sql buffer的当前行后面</p>
<p>A[PPEND]</p>
<p>SQL&gt; select deptno,</p>
<p>2 dname</p>
<p>3 from dept;</p>
<p>DEPTNO DNAME</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>10 ACCOUNTING</p>
<p>20 RESEARCH</p>
<p>30 SALES</p>
<p>40 OPERATIONS<br />
SQL&gt; L 2</p>
<p>2* dname</p>
<p>SQL&gt; a ,loc</p>
<p>2* dname,loc</p>
<p>SQL&gt; L</p>
<p>1 select deptno,</p>
<p>2 dname,loc</p>
<p>3* from dept</p>
<p>SQL&gt; /<br />
DEPTNO DNAME LOC</p>
<p>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;-</p>
<p>10 ACCOUNTING NEW YORK</p>
<p>20 RESEARCH DALLAS</p>
<p>30 SALES CHICAGO</p>
<p>40 OPERATIONS BOSTON</p>
<p> <br />
◆19．将sql buffer中的sql语句保存到一个文件中</p>
<p>SAVE file_name<br />
◆20．将一个文件中的sql语句导入到sql buffer中</p>
<p>GET file_name<br />
◆21．再次执行刚才已经执行的sql语句</p>
<p>RUN</p>
<p>or</p>
<p>/<br />
◆22．执行一个存储过程</p>
<p>EXECUTE procedure_name<br />
◆23．在sql*plus中连接到指定的数据库</p>
<p>CONNECT user_name/passwd@db_alias<br />
◆24．设置每个报表的顶部标题</p>
<p>TTITLE<br />
◆25．设置每个报表的尾部标题</p>
<p>BTITLE<br />
◆26．写一个注释</p>
<p>REMARK [text]<br />
◆27．将指定的信息或一个空行输出到屏幕上</p>
<p>PROMPT [text]<br />
◆28．将执行的过程暂停，等待用户响应后继续执行</p>
<p>PAUSE [text]<br />
Sql&gt;PAUSE Adjust paper and press RETURN to continue.<br />
◆29．将一个数据库中的一些数据拷贝到另外一个数据库（如将一个表的数据拷贝到另一个数据库）</p>
<p>COPY {FROM database | TO database | FROM database TO database}</p>
<p>{APPEND|CREATE|INSERT|REPLACE} destination_table</p>
<p>[(column, column, column, ...)] USING query<br />
sql&gt;COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST</p>
<p>create emp_temp</p>
<p>USING SELECT * FROM EMP<br />
◆30．不退出sql*plus，在sql*plus中执行一个操作系统命令：</p>
<p>HOST<br />
Sql&gt; host hostname</p>
<p>该命令在windows下可能被支持。<br />
◆31．在sql*plus中，切换到操作系统命令提示符下，运行操作系统命令后，可以再次切换回sql*plus：</p>
<p>!<br />
sql&gt;!</p>
<p>$hostname</p>
<p>$exit</p>
<p>sql&gt;<br />
该命令在windows下不被支持。<br />
◆32．显示sql*plus命令的帮助</p>
<p>HELP</p>
<p>如何安装帮助文件：</p>
<p>Sql&gt;@ ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql</p>
<p>Sql&gt;help index<br />
◆33．显示sql*plus系统变量的值或sql*plus环境变量的值</p>
<p>Syntax</p>
<p>SHO[W] option</p>
<p>where option represents one of the following terms or clauses:</p>
<p>system_variable</p>
<p>ALL</p>
<p>BTI[TLE]</p>
<p>ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|</p>
<p>TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]</p>
<p>LNO</p>
<p>PARAMETERS [parameter_name]</p>
<p>PNO</p>
<p>REL[EASE]</p>
<p>REPF[OOTER]</p>
<p>REPH[EADER]</p>
<p>SGA</p>
<p>SPOO[L]</p>
<p>SQLCODE</p>
<p>TTI[TLE]</p>
<p>USER<br />
1) . 显示当前环境变量的值：</p>
<p>Show all<br />
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息</p>
<p>Show error</p>
<p>当创建一个函数、存储过程等出错时，变可以用该命令查看在那个地方出错及相应的出错信息，进行修改后再次进行编译。<br />
3) . 显示初始化参数的值：</p>
<p>show PARAMETERS [parameter_name]<br />
4) . 显示数据库的版本：</p>
<p>show REL[EASE]<br />
5) . 显示SGA的大小</p>
<p>show SGA<br />
6). 显示当前的用户名</p>
<p>show user<br />
SQL&gt;SET DEFINE ON</p>
<p>经常用于运行SQL 脚本中， 对变量的宏替换(&amp;)</p>
<p>SQL&gt;DEFINE TSTEMP=TEMPTS</p>
<p>将运行脚本中的&amp;TSTEMP 替换成 TEMPTS<br />
SQL&gt;SET DEFINE OFF</p>
<p>关闭宏替换， 经常用于运行PACKAGE或存储过程<br />
Sql*plus中蕴藏着好多技巧，如果掌握这些技巧，对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。</p>
<p>◆1．使用SQL*PLUS动态生成批量脚本</p>
<p>将spool与select命令结合起来使用，可以生成一个脚本，脚本中包含有可以批量执行某一任务的语句。</p>
<p>例1：</p>
<p>生成一个脚本，删除SCOTT用户下的所有的表：</p>
<p>a. 创建gen_drop_table.sql文件，包含如下语句：</p>
<p>SPOOL c:drop_table.sql</p>
<p>SELECT &#8216;DROP TABLE &#8216;|| table_name ||&#8217;;&#8217; FROM user_tables;</p>
<p>SPOOL OFF</p>
<p>b. 以SCOTT用户登录数据库</p>
<p>SQLPLUS &gt; @ …..gen_dorp_table.sql</p>
<p>c. 在c盘根目录下会生成文件drop_table.sql文件，包含删除所有表的语句，如下所示:</p>
<p>SQL&gt; SELECT &#8216;DROP TABLE &#8216;|| table_name ||&#8217;;&#8217; FROM user_tables;<br />
&#8216;DROPTABLE&#8217;||TABLE_NAME||&#8217;;&#8217;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>DROP TABLE DEPT;</p>
<p>DROP TABLE EMP;</p>
<p>DROP TABLE PARENT;</p>
<p>DROP TABLE STAT_VENDER_TEMP;</p>
<p>DROP TABLE TABLE_FORUM;<br />
5 rows selected.<br />
SQL&gt; SPOOL OFF</p>
<p>d. 对生成的drop_table.sql文件进行编辑去掉不必要的部分，只留下drop table …..语句</p>
<p>e. 在scott用户下运行dorp_table.sql文件，删除scott用户下所有的表。</p>
<p>SQLPLUS &gt; @ c:dorp_table.sql<br />
在上面的操作中，在生成的脚本文件中会有多余的字符，如运行的sql语句，标题，或返回的行数，需要我们编辑该脚本后再运行，给实际的操作带来诸多不便。懒惰是人的本性，这促使我们用更简单的办法来实现上面的任务。<br />
a. 创建gen_drop_table.sql文件，包含如下语句：</p>
<p>set echo off</p>
<p>set feedback off</p>
<p>set newpage none</p>
<p>set pagesize 5000</p>
<p>set linesize 500</p>
<p>set verify off</p>
<p>set pagesize 0</p>
<p>set term off</p>
<p>set trims on</p>
<p>set linesize 600</p>
<p>set heading off</p>
<p>set timing off</p>
<p>set verify off</p>
<p>set numwidth 38</p>
<p>SPOOL c:drop_table.sql</p>
<p>SELECT &#8216;DROP TABLE &#8216;|| table_name ||&#8217;;&#8217; FROM user_tables;</p>
<p>SPOOL OFF</p>
<p>b. 以SCOTT用户登录数据库</p>
<p>SQLPLUS &gt; @ …..gen_dorp_table.sql</p>
<p>c. 在c盘根目录下会生成文件drop_table.sql文件，包含删除所有表的语句，如下所示:</p>
<p>DROP TABLE DEPT;</p>
<p>DROP TABLE EMP;</p>
<p>DROP TABLE PARENT;</p>
<p>DROP TABLE STAT_VENDER_TEMP;</p>
<p>DROP TABLE TABLE_FORUM;</p>
<p>d. 在scott用户下运行dorp_table.sql文件，删除scott用户下所有的表。</p>
<p>SQLPLUS &gt; @ c:dorp_table.sql</p>
<p> </p>
<p>◆2．将一个表中的数据导出生成一个文本文件，列与列之间以”,”隔开</p>
<p>set echo off</p>
<p>set feedback off</p>
<p>set newpage none</p>
<p>set pagesize 5000</p>
<p>set linesize 500</p>
<p>set verify off</p>
<p>set pagesize 0</p>
<p>set term off</p>
<p>set trims on</p>
<p>set linesize 600</p>
<p>set heading off</p>
<p>set timing off</p>
<p>set verify off</p>
<p>set numwidth 38</p>
<p>SPOOL c:drop_table.sql</p>
<p>select DEPTNO || &#8216;,&#8217; || DNAME FROM DEPT;</p>
<p>SPOOL OFF</p>
<p>将上面的内容保存为一个文本文件后，以scott登录，执行该文件后显示结果：</p>
<p>10,ACCOUNTING</p>
<p>20,RESEARCH</p>
<p>30,SALES</p>
<p>40,OPERATIONS</p>
<p> </p>
<p>通过上面的两个例子，我们可以将：</p>
<p>set echo off</p>
<p>set feedback off</p>
<p>set newpage none</p>
<p>set pagesize 5000</p>
<p>set linesize 500</p>
<p>set verify off</p>
<p>set pagesize 0</p>
<p>set term off</p>
<p>set trims on</p>
<p>set linesize 600</p>
<p>set heading off</p>
<p>set timing off</p>
<p>set verify off</p>
<p>set numwidth 38</p>
<p>SPOOL c:具体的文件名</p>
<p>你要运行的sql语句</p>
<p>SPOOL OFF</p>
<p>作为一个模版，只要将必要的语句假如这个模版就可以了。<br />
在oracle的较新版本中，还可以用set colsep命令来实现上面的功能：</p>
<p>SQL&gt; set colsep ,</p>
<p>SQL&gt; select * from dept;</p>
<p>10,ACCOUNTING ,NEW YORK</p>
<p>20,RESEARCH ,DALLAS</p>
<p>30,SALES ,CHICAGO</p>
<p>40,OPERATIONS ,BOSTON</p>
<p>35,aa ,bb<br />
◆3．动态生成spool命令所需的文件名</p>
<p>在我们上面的例子中，spool命令所需要的文件名都是固定的。有时我们需要每天spool一次，并且每次spool的文件名都不相同，如文件名包含当天的日期，该如何实现呢？</p>
<p>column dat1 new_value filename;</p>
<p>select to_char(sysdate,&#8217;yyyymmddhh24mi&#8217;) dat1 from dual;</p>
<p>spool c:&amp;&amp;filename..txt</p>
<p>select * from dept;</p>
<p>spool off;<br />
◆4．如何从脚本文件中得到WINDOWS环境变量的值：</p>
<p>在windos中：</p>
<p>spool c:temp%ORACLE_SID%.txt</p>
<p>select * from dept;</p>
<p>&#8230;</p>
<p>spool off<br />
在上面的例子中，通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值，如果ORACLE_SID的值为orcl，则生成的spool文件名为：orcl.txt<br />
在UNIX中：</p>
<p>spool c:temp$ORACLE_SID.txt</p>
<p>select * from dept;</p>
<p>&#8230;</p>
<p>spool off<br />
在上面的例子中，通过$ORACLE_SID的方式引用环境变量ORACLE_SID的值，如果ORACLE_SID的值为orcl，则生成的spool文件名为：orcl.txt<br />
◆5．如何指定缺省的编辑脚本的目录</p>
<p>在sql*plus中，可以用save命令，将上一条执行的sql语句保存到一个文件中，但是如何设置该文件的缺省目录呢？</p>
<p>通过SQL&gt; set editfile c:tempfile.sql 命令，可以设置其缺省目录为c:tmpe，缺省文件名为file.sql。<br />
◆6．如何除去表中相同的行</p>
<p>找到相同的行：</p>
<p>SELECT * FROM dept a</p>
<p>WHERE ROWID &lt;&gt; (SELECT MAX(ROWID)</p>
<p>FROM dept b</p>
<p>WHERE a.deptno = b.deptno</p>
<p>AND a.dname = b.dname &#8212; Make sure all columns are compared</p>
<p>AND a.loc = b.loc);<br />
注释：</p>
<p>如果只找deptno列相同的行，上面的查询可以改为：</p>
<p>SELECT * FROM dept a</p>
<p>WHERE ROWID &lt;&gt; (SELECT MAX(ROWID)</p>
<p>FROM dept b</p>
<p>WHERE a.deptno = b.deptno)<br />
删除相同的行：</p>
<p>DELETE FROM dept a</p>
<p>WHERE ROWID &lt;&gt; (SELECT MAX(ROWID</p>
<p>FROM dept b</p>
<p>WHERE a.deptno = b.deptno</p>
<p>AND a.dname = b.dname &#8212; Make sure all columns are compared</p>
<p>AND a.loc = b.loc);<br />
注意：上面并不删除列值为null的行。<br />
◆7．如何向数据库中插入两个单引号(’’)</p>
<p>Insert inot dept values(35,’aa’’’’bb’,’a’’b’);<br />
在插入时，用两个’表示一个’。<br />
◆8．如何设置sql*plus的搜寻路径，这样在用@命令时，就不用输入文件的全路径。</p>
<p>设置SQLPATH环境变量。</p>
<p>如：</p>
<p>SQLPATH = C:ORANTDBS;C:APPSSCRIPTS;C:MYSCRIPTS<br />
◆9．@与@@的区别是什么？</p>
<p>@等于start命令，用来运行一个sql脚本文件。</p>
<p>@命令调用当前目录下的，或指定全路径，或可以通过SQLPATH环境变量搜寻到的脚本文件。</p>
<p>@@用在脚本文件中，用来指定用@@执行的文件与@@所在的文件在同一目录，而不用指定全路径，也不从SQLPATH环境变量指定的路径中寻找文件，该命令一般用在嵌套脚本文件中。<br />
◆10．&amp;与&amp;&amp;的区别</p>
<p>&amp;用来创建一个临时变量，每当遇到这个临时变量时，都会提示你输入一个值。</p>
<p>&amp;&amp;用来创建一个持久变量，就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。当用&amp;&amp;命令引用这个变量时，不会每次遇到该变量就提示用户键入值，而只是在第一次遇到时提示一次。<br />
如，将下面三行语句存为一个脚本文件，运行该脚本文件，会提示三次，让输入deptnoval的值：</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;<br />
将下面三行语句存为一个脚本文件，运行该脚本文件，则只会提示一次，让输入deptnoval的值：</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;</p>
<p>select count(*) from emp where deptno = &amp;deptnoval;<br />
◆11．引入copy的目的</p>
<p>Copy命令在两个数据库之间拷贝数据时特别有用，特别是该命令可以在两个数据库之间传递long型字段的数据。</p>
<p>缺点：</p>
<p>在两个数据库之间传递数据时，有可能丢失精度(lose precision)。<br />
◆12．问什么在修改大量的行时，我的脚本会变得很慢？</p>
<p>当通过PL/SQL块修改一个表中的许多行时，你会创建在表上创建一个cursor，但是只有在你关闭cursor时，才会释放ROLLBACK SEGMENT，这样，当cursor仍然打开时，修改过程会变慢，这是因为数据库不得不搜寻大量的rollback segment以便于维护读一致性。为了避免这样情况，试着在表上加一个标志字段来描述该行是否已经被修改，然后关闭该cursor，然后再打开该cursor。每次可以修改5000行.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/05/04/oracle_sqlplu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL数据库常用命令</title>
		<link>http://blog.hitangjun.com/2009/05/04/mysql/</link>
		<comments>http://blog.hitangjun.com/2009/05/04/mysql/#comments</comments>
		<pubDate>Mon, 04 May 2009 01:58:11 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=65</guid>
		<description><![CDATA[MySQL数据库常用命令  修改mysql中root的密码  grant  mysqldump  从文件中读取查询]]></description>
			<content:encoded><![CDATA[<p>1、MySQL常用命令</p>
<p>create database name; 创建数据库</p>
<p>use databasename; 选择数据库</p>
<p>drop database name 直接删除数据库，不提醒</p>
<p>show tables; 显示表</p>
<p>describe tablename; 表的详细描述</p>
<p>select 中加上distinct去除重复字段</p>
<p>mysqladmin drop databasename 删除数据库前，有提示。</p>
<p>显示当前mysql版本和当前日期</p>
<p>select version(),current_date;</p>
<p>2、修改mysql中root的密码：</p>
<p>shell&gt;mysql -u root -p</p>
<p>mysql&gt; update user set password=password(”yourpassword″) where user=’root’;</p>
<p>mysql&gt; flush privileges //刷新数据库</p>
<p>mysql&gt;use dbname； 打开数据库：</p>
<p>mysql&gt;show databases; 显示所有数据库</p>
<p>mysql&gt;show tables; 显示数据库mysql中所有的表：先use mysql；然后</p>
<p>mysql&gt;describe user; 显示表mysql数据库中user表的列信息）；</p>
<p>3、grant</p>
<p>创建一个可以从任何地方连接服务器的一个完全的超级用户，但是必须使用一个口令something做这个</p>
<p>mysql&gt; grant all privileges on *.* to user@localhost identified by ’something’ with</p>
<p>增加新用户</p>
<p>格式：grant select on 数据库.* to 用户名@登录主机 identified by “密码”</p>
<p>GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;</p>
<p>GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;</p>
<p>删除授权：</p>
<p>mysql&gt; revoke all privileges on *.* from root@”%”;</p>
<p>mysql&gt; delete from user where user=”root” and host=”%”;</p>
<p>mysql&gt; flush privileges;</p>
<p>创建一个用户custom在特定客户端it363.com登录，可访问特定数据库fangchandb</p>
<p>mysql &gt;grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’</p>
<p>重命名表:</p>
<p>mysql &gt; alter table t1 rename t2;</p>
<p>4、mysqldump</p>
<p>备份数据库</p>
<p>shell&gt; mysqldump -h host -u root -p dbname &gt;dbname_backup.sql</p>
<p>恢复数据库</p>
<p>shell&gt; mysqladmin -h myhost -u root -p create dbname</p>
<p>shell&gt; mysqldump -h host -u root -p dbname &lt; dbname_backup.sql</p>
<p>如果只想卸出建表指令，则命令如下：</p>
<p>shell&gt; mysqladmin -u root -p -d databasename &gt; a.sql</p>
<p>如果只想卸出插入数据的sql命令，而不需要建表命令，则命令如下：</p>
<p>shell&gt; mysqladmin -u root -p -t databasename &gt; a.sql</p>
<p>那么如果我只想要数据，而不想要什么sql命令时，应该如何操作呢？</p>
<p>　　 mysqldump -T./ phptest driver</p>
<p>其中，只有指定了-T参数才可以卸出纯文本文件，表示卸出数据的目录，./表示当前目录，即与mysqldump同一目录。如果不指定driver 表，则将卸出整个数据库的数据。每个表会生成两个文件，一个为.sql文件，包含建表执行。另一个为.txt文件，只包含数据，且没有sql指令。</p>
<p>5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如，如果在文件my_file.sql 中存放有查</p>
<p>询，可如下执行这些查询：</p>
<p>例如，如果您想将建表语句提前写在sql.txt中:</p>
<p>mysql &gt; mysql -h myhost -u root -p database &lt; sql.txt</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/05/04/mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何写好WordPress日志16条</title>
		<link>http://blog.hitangjun.com/2009/04/30/wordpress/</link>
		<comments>http://blog.hitangjun.com/2009/04/30/wordpress/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 03:41:55 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=61</guid>
		<description><![CDATA[现在每天都有数以千计的blog在互联网出现，如果你是一个blogger，要让你的blog变得更出众，更容易被人发现，这的确是一件挺费劲的事。所幸的是已经有很多前辈写了很多相关的技巧、心得之类的文章，让我们知道如何才能把自己的blog做得更为出色。所以，我在这里也简单的针对 WordPress的blog总结一下，并在相关的要点旁列出一些实用的WordPress插件]]></description>
			<content:encoded><![CDATA[<p>现在每天都有数以千计的blog在互联网出现，如果你是一个blogger，要让你的blog变得更出众，更容易被人发现，这的确是一件挺费劲的事。所幸的是已经有很多前辈写了很多相关的技巧、心得之类的文章，让我们知道如何才能把自己的blog做得更为出色。所以，我在这里也简单的针对 <a href="http://wordpress.org/" target="_blank">WordPress</a>的blog总结一下，并在相关的要点旁列出一些实用的WordPress插件：</p>
<ul>
<li>1 首先必须要有一个属于自己的个性域名。如果你要成为一个blogger，你就一定要有自己的域名。.com贵吗？那现在去注册一个.cn应该没有难度吧？</li>
<li>2 让你的blog模板更具个性化，适度的美化你的blog，这样才能让访客留下深刻印象。</li>
<li>3 通过丰富的插件优化你的blog，如增加醒目的RSS订阅按钮，为日志增加共享文章的功能（插件：<a href="http://push.cx/sociable" target="_blank">Sociable</a>，<a href="http://alexking.org/projects/wordpress" target="_blank">Share This</a>），正确设置blog的友好链接（插件：<a href="http://fucoder.com/code/permalink-redirect/" target="_blank">Permalink Redirect</a>），优化blog的SEO功能（插件：<a href="http://wp.uberdose.com/2007/03/24/all-in-one-seo-pack/" target="_blank">All in One SEO Pack</a>），增强WordPress的日志搜索功能（插件：<a href="http://dancameron.org/wordpress/" target="_blank">Search Everything</a>）等。</li>
<li>4 允许访客trackback和ping你的精彩文章，并通过订阅文章后续留言（插件：<a href="http://txfx.net/code/wordpress/subscribe-to-comments/" target="_blank">Subscribe To Comments</a>）跟踪你的blog。</li>
<li>5 建立与访客沟通的联系方式（插件：<a href="http://chip.cuccio.us/projects/contact-form-ii/" target="_blank">Contact Form</a>）。</li>
<li>6 通过<a href="http://feedburner.com/" target="_blank">Feedburner</a>（插件：<a href="http://www.feedburner.com/fb/a/help/wordpress_quickstart" target="_blank">FeedSmith</a>）和<a href="http://www.feedsky.com/" target="_blank">Feedsky</a>集中管理你的RSS订阅情况，并可以随时跟踪。<span style="text-decoration: underline;">建议增加邮件订阅文章功能，因为现在电子邮件的使用率还是比RSS的高很多！</span></li>
<li>7 注册<a href="http://www.google.com/webmasters" target="_blank">Google Webmaster</a>服务，让搜索引擎更了解你的blog，相关插件：<a href="http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final" target="_blank">Google Sitemap plugin for wordpress</a>。</li>
<li>8 建立自己的blogroll，多与自己blog内容相关的网站交换链接，让更多的人了解你的存在。（参见：<a href="http://www.qianblogger.com/2007/04/29/how-get-link" target="_blank">如何获得其他博客的链接</a>）</li>
<li>9 建立日志文章的存档页（插件：<a href="http://www.sonsofskadi.net/extended-live-archive/" target="_blank">Extended Live Archives</a>），还有一定要在每篇文章旁列出更多的相关文章，并建立现在流行的Tags系统，细分文章主题，方便访客查阅（推荐通过<a href="http://www.neato.co.nz/ultimate-tag-warrior/" target="_blank">Ultimate Tag Warrior</a>或<a href="http://sw-guide.de/wordpress/plugins/simple-tagging/" target="_blank">Simple Tagging</a>实现）。</li>
<li>10 建立方便访客浏览的文章导航系统（插件：<a href="http://www.lesterchan.net/portfolio/programming.php" target="_blank">WP-PageNavi</a>）。</li>
<li>11 注册<a href="http://www.google.com/analytics" target="_blank">Google Analytics</a>服务，每天跟踪网站的访问情况，并作出相应的对策。如果发现访客对某一些话题文章较感兴趣，你可以多写几篇相同类型的文章。</li>
<li>12 把自己的blog注册到一些相关的blog搜索引擎，如<a href="http://www.google.com/addurl" target="_blank">Google add URL</a>等。</li>
<li>13 坚持发表新文章，至少保证每周三四篇新文章，但必须保证每篇文章的质量。</li>
<li>14 经常留意访客的留言，尽量到访客的blog上留言，形成一种互相浏览关注的blogger氛围。</li>
<li>15 注意发表文章的技巧，多在标题中使用文章的关键词，多在文章中引用其它优秀博客的链接，并列出你认为最好的文章推荐给访客浏览（插件：<a href="http://alexking.org/projects/wordpress" target="_blank">Articles</a>）。</li>
<li>16 把文章发表到一些相关网站论坛上,推荐<a href="http://wordpress.org.cn/forums/index.php" target="_blank">WordPress中文论坛</a>，争取更多对同类型话题感兴趣的访客访问和认知你的blog。</li>
</ul>
<p>From：<a href="http://www.blog286.com/wordpress/20080208/020T3D2008.html" target="_blank">http://www.blog286.com/wordpress/20080208/020T3D2008.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/04/30/wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>不可忽视的细节 ThinkPad电池保养手册</title>
		<link>http://blog.hitangjun.com/2009/04/30/thinkpad/</link>
		<comments>http://blog.hitangjun.com/2009/04/30/thinkpad/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 01:38:03 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>
		<category><![CDATA[本子]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=57</guid>
		<description><![CDATA[ThinkPad电池保养手册]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #ff0000;">写在前面</span></strong></p>
<div>　　在IBM笔记本电脑电池使用，激活等操作中，由于种种原因，往往在操作的细节上出现错误，不知不觉无意中伤害了你的电池。</div>
<p align="center"><a href="http://notebook.yesky.com/TLimages/picview/?/imagelist/2006/362/8811bp6898tz.jpg" target="_blank"><img src="http://notebook.yesky.com/imagelist/2006/362/8811bp6898tzs.jpg" border="1" alt="点击放大此图片" /></a></p>
<p>　　下面我们就举两个例子来详细分析，以说明“操作细节”的重要性。</p>
<p>　　例一：当笔记本处交流供电状态，关机后，应何时拔出交流插头?工作完毕关机后，过一会儿屏幕关闭，此时我们很容易以为已经关机成功，便马上随手拔掉交流插头，殊不知此时屏幕虽然关闭，但主板加电指示灯(圆圈中带Z字模样的指示灯)依然燃亮，此时笔记本实际上还在工作，也就是说机器此时还需电力供应;若此时拔下交流插头，笔记本会马上从交流供电状态转为电池供电状态，无端地使用几秒钟电池，这样虽然好象用不了多少电量，但却加速了电池更快地跌落至设置的起始充电电量值，从而缩短了电池的充用周期，影响了电池的使用寿命。交流插头早拔了不行，那晚拔又会如何呢?当主板加电指示灯熄灭后(电源指示灯还燃亮)，若不拔掉交流插头，系统的电源管理程序和电池里的由电池管理芯片所组成的接口电路约5秒后会自动转入“关机充电状态”，所以关机后迟迟不拔出交流插头会无端地对电量&gt;96%的电池进行了一小段时间的充电，而伤害了你的电池。[电量没有完全耗尽前(即电量在5~100%)，不要对电池进行充电，否则会缩短电池的寿命。]</p>
<p>　　综上述，正确的操作方法是：除了电源指示灯以外，屏幕下方的所有指示灯熄灭后，即随拔掉交流插头(不要迟于5秒)，交流插头拔出约5秒后，电源指示灯自动熄灭。</p>
<p>　　据上述分析可知，本来使用交流供电方式，其原意是尽量少使用电池，从而延长电池的充用周期;而由于在操作细节上欠妥，“爱卿未竟反害了卿”;“操作细节”的重要性由此可见一斑。</p>
<p>　　例二：当使用交流供电时，交流适配器的交流输入插头和直流输出插头插(卸)先后顺序的操作细节上是有讲究的。正确的操作方法是：先把交流适配器的直流输出插头插到笔记本的电源插孔，然后把交流输入插头插到220V交流电源插座上;而卸下时则应先把交流输入插头拔下，然后再把直流输出插头拔出。如果在插(卸)时颠倒了先后顺序，交流适配器则会处空载状态，交流适配器是不允许处空载状态的，因其工作于脉冲状态，空载时其内的开关变压器绕组会产生极高的反峰电压而击穿诸如IC，电容等电压敏感元件。虽然现时的交流适配器其内已设有空载保护电路，但由于设计上要兼顾到其它种种问题，这种保护电路的保护作用是很有限的;故此当交流适配器处空载状态时有可能被损坏。</p>
<p>　　从上面的分析我们可了解到，在操作中的任何细节都是那么的重要，来不得半点含糊和马虎;说的大一点，这就是我们平时所讲的科学技术的慎密性。为此，我觉得有必要将我以前写下的一些关于电池操作细则的文字作适当的修改，整理;供大家参考，以提请对操作细节的注意;同时也请各位老师批评指正和补充。因编幅所限，下文中不可能再如上述举例中那样进行详细分析，这点还请大家见谅。</p>
<p> </p>
<p>　　<strong><span style="color: #ff0000;">激活处理：</span></strong></p>
<p>　　以下情况的电池需要进行激活处理：</p>
<p>　　1.刚启用的新电池。</p>
<p>　　2.因长时间不使用电池，电池离开电脑处储存状态，现再启用此电池时。</p>
<p>　　3.较长时间不使用笔记本电脑或电池从笔记本电脑移出存放备用(时间超过两三个月)，现再启用此电池时。</p>
<p>　　对电池进行激活处理的方法：</p>
<p>　　激活电池内的化学物质，最大化电池的性能，需要通过对电池重复充放电(完全充电，然后再完全放电)三次。所谓完全充放电是指：正常开机令电池耗电至3%电池电量(最好一次耗尽，也可分几次来耗电，但不宜间隔太长时间)，然后必须马上对电池进行关机充电十二个小时。</p>
<p>　　这里强调必须马上对电池进行充电，是因为电池即使不使用也会进行自我放电，当电池耗电至3%电量，此时若不及时对电池进行充电，自放电现象极易造成电池的过放电而损害电池，过放电正是锂电池的一大禁忌。</p>
<p>　　对电池进行激活处理充电时，机子必须处关机状态。如果此时机子处等待，挂起等状态，当充电至3~4小时后绿色电源状态指示灯不再跳动时，机器会自动停止对电池的充电，令无法对电池进行完全充电。当放电至3%电量时，机器会马上自动进入休眠状态，此时应再启动机器，在机器启动的过程中单击屏幕左下方关机按钮，令机器关机。</p>
<p>　　如果上述操作的各个细节都掌握得好，且你的电池质量又没有问题，就能很好地激活电池内的化学物质，最大化电池的性能，基本上电池在以后的正常使用中每次都能充到100%。</p>
<p>　　<strong><span style="color: #ff0000;">使用中应注意的问题：</span></strong></p>
<p>　　电池是一种“易耗品”，电池的损耗程度取决于你使用电池时所进行的操作的正确性，操作方式，操作频率，工作环境温度，库存时间(对未使用过的电池)等因数。</p>
<p>　　1. 电池的充放电次数直接关系到电池寿命，一般锂电池的充放电次数只有400~600次左右，改进型的产品也不过800多次，每充一次电池就向使用的终点前进了一步。(当对85%以下电量的电池进行充电，将被记录并增加一次充电次数。)</p>
<p>　　为此，当电池电压大于电池管理程序中所设定的充电起始值96%，而且你当前所处场所有220V交流电源时，应尽量使用交流电源，尽量减少电池的充电次数，以延长电池的寿命。</p>
<p>　　此时电池不必从机器上移开，因为开机时不会对电量大于96%的电池进行充电。不过即使这样，如果你是长期使用交流电源而极少使用电池时，建议还是将电池从机器上移开来比较好，因为笔记本长时间运行时产生的热量会对电池造成一定的伤害。但应该指出，在此种情况下一旦交流供电断电，你尚未保存的数据会由于没有电池的支持而丢失，这一得一失，用户必须好好权衡。</p>
<p>　　2. 当电量为3~5%时，应及时给电池充电，否则电池的自放电现象会造成过放电而损害电池，充电时机器可以处关机，挂起等任何状态，也可以边充边用。</p>
<p>　　充电必须一次充满，否则会损害电池。这是基于避免因缩短充用周期增加充电次数而缩短电池的寿命;而并非是由于“记忆特性”问题，锂电池不象镍镉电池和镍氢电池具有“记忆特性”，锂电池不具有“记忆特性”。</p>
<p>　　如充电时机器处关机或休眠状态，当充电至3~4小时后绿色电源状态指示灯不再跳动时，此时电量已达100%，应及时拔除交流电源插头以防对电池造成过充电而伤害电池。</p>
<p>　　如充电时机器处等待，挂起或边充边用状态，则当充电至3~4小时后绿色电源状态指示灯不再跳动时，电池会自动退出充电状态。</p>
<p>　　充电过程中会先进行快速充电，这时电源状态指示灯呈黄色(常亮)，充至某一定值后转入涓细电流慢充，这时电源状态指示灯的颜色变得闪动的绿色;一直充满100%之后，就变成绿色(常亮)了。锂电池的充电过程是恒压方式，开始充电不久即电压即会稳定下来，而电流则越来越小。</p>
<p>　　3. 电量没有完全耗尽前(即电量在5~100%)，不要对电池进行充电，否则会因缩短充用周期增加充电次数而缩短电池的寿命。</p>
<p>　　当电量为5~95%时应使用电池工作，如此时使用AC电源适配器会对电池进行充电(边充边用状态)。</p>
<p>　　4. 当电量为96~100%或电池已从机器上移出，可使用AC电源适配器开机运行，使用AC电源适配器时请先把AC电源适配器的直流输出插头插到机器上，然后再把交流电源插头插到220V~插座上;卸下AC电源适配器时则应先拔下交流电源插头然后才从机器上拔除AC电源适配器的直流输出插头。否则可能会对你的设备造成损害。</p>
<p>　　使用AC电源适配器时，当把交流电源插头插到220V~插座上，而机器上的电源状态指示灯尚未燃亮前(注：其间约5秒时间)请及时按下电源按钮开机;关机或进入休眠时，除了绿色电源状态指示灯外其他所有指示灯都已熄灭后，请及时从220V~插座上拔下交流电源插头(不要迟于5秒)，交流电源插头拔出后约5秒，绿色电源状态指示灯熄灭;否则都会对电池造成过充电而损害电池。因关机状态下AC电源适配器仍处非卸下状态，系统的电源管理程序和电池里的由电源管理芯片所组成的接口电路约5秒后会自动转入“关机充电状态”，对电池进行充电。(如果需要，可不从机器上拔下AC电源适配器的直流输出插头，此时电池不会通过AC电源适配器逆向放电。)</p>
<p>　　如果暂停工作令机器进入等待或挂起状态，则不要从220V~插座上拔下交流电源插头;因此时机器仍须电源维持。(建议不要长时间令机器进入等待或挂起状态，以爱护你的机器。)</p>
<p>　　5. IBM在ThinkPad笔记本电脑的相关资料的技术指标中所标出的“电池使用时间”，是厂商在特指条件下所测出，该指标在我们一般正常使用笔记本的条件下是无法达到的，例如：相关资料的技术指标中所标出的“电池使用时间”为4小时，我们在一般正常使用中只能得到约3.5个小时的电池电力供应。如果相差很远，而且尚在保修期内，请速联系IBM。</p>
<p>　　<strong><span style="color: #ff0000;">保养和储存</span></strong></p>
<p>　　1. 若电池较长时间(数个月)不用，应从机器上取下保存备用。建议每一个半月左右对电池进行一次放电和充电整理，以改善你的电池状态来增加电池容量。</p>
<p>　　2. 若电池长时间不用，应将其电量设置至30~50%后储存，建议大约每年给电池充电一次，并将其电量设置至30~50%，以防过放电而损害电池。将电池电量设置至30~50%的具体操作方法为：当电池的电量大于50%时，可开机耗电至30~50%。若电量少于30%，则先开机耗电至3%，再充电至100%然后开机耗电至30~50%即可。</p>
<p>　　3. 不要将电池放在高温和寒冷的环境中，电池性能会暂时降低。应将处保存备用状态和储存状态的电池放置于温度较低的地方，对于电池，最佳的温度范围约为10~20摄氏度。</p>
<p>　　<strong><span style="color: #ff0000;">关于充电起始值的调整</span></strong></p>
<p>　　设置充电起始值，请单击系统托盘中的电源插头图标(当你使用交流电开机时)或白色大电池图标(当你使用电池开机时)/选择Improve Battery Health/修改Start charging when below的数值。</p>
<p>　　不要为延长充用周期而刻意大幅度地改动电池管理程序中所设定的充电起始值;因为当你把充电起始值设低(例如80%)后，虽然带电池使用AC电源适配器的“充用周期”可能长达三四个月，但若在使用该电池时势必又要对其重新激活处理，否则该电池的状态和容量都欠佳。这反而增加了充电次数，缩短了电池寿命。再者电池每一个半月左右需进行一次放电和充电整理，那因充电起始值设低(例如80%)后所延长的充用周期便更显得毫无意义。</p>
<p>　　电池充满电后因自放电现象而电量下滑至96%一般历时约50天左右，而电池刚好每一个半月左右需进行一次放电和充电整理，由此看来，IBM为我们所预设的充电起始值为96%，是不无道理的。然而随着电池的衰老，电池充满电后因自放电现象而电量下滑至96%所需的时间可能会缩短，此时我们就有必要将充电起始值稍微下调，令该时间刚好在一个半月左右。</p>
<p>　　如果你经常需在办公室和设备现场之间“两地”奔忙，在办公室用交流适配器供电操作，而在设备现场则用电池供电操作，建议你把充电起始值设置为6%;这样便可避免因缩短充用周期增加充电次数而缩短电池的寿命;而且不会因爱护电池而影响了笔记本的移动优势。</p>
<p>　　请注意，文中所讨论的问题仅限于IBM ThinkPad笔记本，其他品牌的机器本文仅作参考，因为不同品牌机器，其系统的电源管理与控制程序以及电池的电池管理，监控程序也不尽相同之故。</p>
<p>本文出自知本家笔记本论坛，原文连接<span style="font-family: Verdana; color: #204890;"><a href="http://nb.yesky.com/viewthread.php?tid=2656556&amp;extra=page%3D1" target="_blank">http://nb.yesky.com/viewthread.php?tid=2656556&amp;extra=page%3D1</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/04/30/thinkpad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>转： 一个MM和各路神仙的暴强对话</title>
		<link>http://blog.hitangjun.com/2009/04/27/mm/</link>
		<comments>http://blog.hitangjun.com/2009/04/27/mm/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 03:12:47 +0000</pubDate>
		<dc:creator>tj4c</dc:creator>
				<category><![CDATA[转载]]></category>

		<guid isPermaLink="false">http://www.tj4c.com/?p=42</guid>
		<description><![CDATA[一个MM和各路神仙的暴强对话]]></description>
			<content:encoded><![CDATA[<p>MM：菩萨！您大慈大悲，请您告诉我，我什么时候才能找到老公？ </p>
<p>菩萨：天机不可泄露！冥中自有定数！ </p>
<p>MM：靠！您这不是废话吗？ </p>
<p>菩萨：呸！我要知道我还出家？ </p>
<p>MM：斗战胜佛，您当初为什么选择保唐僧取经？ </p>
<p>孙悟空：还不是为了搞到学历！ </p>
<p>MM：学历真的那么重要？ </p>
<p>孙悟空：我一个在五指山服刑的流氓，现在成了斗战胜佛，你说重要不？ </p>
<p>MM：女娲娘娘！您为什么造人？ </p>
<p>女娲：天漏了，我好不容易补上，不造些人，我找谁收维修费去？ </p>
<p>MM：那您为什么把人分男女？ </p>
<p>女娲：我本身不男不女，我想知道男和女哪个厉害些？ </p>
<p>MM：结果呢？ </p>
<p>女娲：我又补了一回天！ </p>
<p>MM：后羿！您当年为什么射日？ </p>
<p>后羿：有人付钱 </p>
<p>MM：为什么留下一个？ </p>
<p>后羿：他们只付了九个的钱！ </p>
<p>MM：为什么单单留下这个？ </p>
<p>后羿：它也付了钱！ </p>
<p>MM：织女！为什么下嫁给董勇？ </p>
<p>织女：为了爱情！ </p>
<p>MM：单单是这个原因？ </p>
<p>织女：这…… </p>
<p>MM：还因为别的什么？ </p>
<p>织女：他有房子！ </p>
<p>MM：净坛使者！你为什么喜欢高月娥？ </p>
<p>猪八戒：他漂亮 </p>
<p>MM：那现在为什么不和她来往？ </p>
<p>猪八戒：老子现在是公务员！ </p>
<p>MM：万能的佛祖！佛理的精髓是什么？ </p>
<p>如来：慈悲为怀！ </p>
<p>MM：那寺院养武僧干什么？ </p>
<p>如来：别人对我不慈悲为怀！ </p>
<p>MM：那武僧打人杀人又做何解释？ </p>
<p>如来：奶奶的！老子兄弟多、有钱、够狠！顺我者昌，逆我者亡！谁敢欺负我的兄弟我就打丫的！ </p>
<p>MM：您……怎么如此粗俗？ </p>
<p>如来：阿弥陀佛！咳咳……我是说：佛家广结善缘，惩恶扬善，因果报应，普渡众生！ </p>
<p>MM：姜太公！您当年为什么封神？ </p>
<p>姜子牙：替天行道，奉天呈运！ </p>
<p>MM：但最后没了您自己的位置！ </p>
<p>姜子牙：我故意的 </p>
<p>MM：为什么？舍己为人？ </p>
<p>姜子牙：屁！我封神时受贿太多，不如早早退居二线，免得麻烦！ </p>
<p>MM：玉皇大帝！当年唐僧取经，为什么有那么多神仙或家属下界为妖？ </p>
<p>玉皇大帝：天宫待的太久，收入又低，难免有几个下海的。 </p>
<p>MM：后来都处分了吗？ </p>
<p>玉皇大帝：都处分了！有的判了刑，有的严重警告以观后效。 </p>
<p>MM：大家犯的错误都差不多，为什么判罚如此悬殊？ </p>
<p>玉皇大帝：凡严重警告的都是官员！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitangjun.com/2009/04/27/mm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

