什么词汇能够最准确地概括2008年的世界?答案可能是:崩溃。
在这个即将完结的年份中,人们目不暇接地见证了一场又一场几近完美的崩溃,从资产市场到宏观经济,仿佛永不落幕的盛宴一瞬间戛然而止。
此刻,惊魂未定的大众仍然处于危机令人窒息的追击之中,但已经有足够多的理由让我们相信:这些接踵而至的崩塌,虽然伴随着诸多偶然,但也绝不是祸从天降。
房地产负重死扛
一场不期而至的雪灾,蹊跷地发生在很少下雪的中国南方,为2008年的中国做出了巫术般的预言。它似乎在暗示:2008年将注定是诡异而又充满转折意味的一年。接下来的汶川地震、瓮安事件、股市崩溃、三鹿奶粉,以及惊涛拍岸的金融海啸,无不暗合了这个预言。显然,对所有这些事件加以解读并理解其中的神秘联系,已经超出了我们的智力范围,因此,我们仅仅能够对那些我们可能理解的一部分予以追索和评论。
2008年,在经过长达接近十年的牛市之后,中国炽热的房地产市场,终于冷却下来,价格下滑,成交锐减。如果说在奥运会之前,人们还对房地产市场抱有某种不切实际的预期的话,那么奥运会之后,绝大多数人都应该承认,中国的房地产市场已经出现了趋势性的逆转。
起始于1998年的这一轮房地产的超级牛市,大致有如下几个动力。一是所谓住房制度改革,即由以前主要由单位分配住房的制度变为个人购买住房。这个改革所释放的需求形成了中国房地产市场第一级动力。在住房制度改革动力释放的同时,中国的大规模城市化成为中国房地产市场的第二级动力,城市化所引发的大量外来人口的进入进一步刺激了房地产的市场需求。中国房地产市场的第三个动力来自于投资需求。其中,国际资本以及中国中产阶层的投资和投机性介入是这一动力的主要成分。
不过,在中国的房地产市场上,还有一个更加隐蔽和更加强劲的动力,那就是政府。自1990年代中后期以降,中国各级地方政府出于对经济增长的渴求,开始强力介入房地产市场。而到了后期,房地产更成为政府推动GDP以及增加地方财政收入的法宝。数据表明,在中国的大城市中,卖地收入以及房地产的相关税收普遍占到地方政府收入的三分之一以上,而房地产对相关产业的拉动则更是为其他行业所望尘莫及。以上诸多因素的不断接力,相互叠加,共同推动了中国房地产市场的这一超级周期。
尤其需要指出的是,由于中国土地市场以及政治的特殊性,中国房地产市场充满了剥夺、腐败并因此充满了暴利,这使得各类资本对这一市场趋之若鹜,并极大地加剧了这一市场的狂热和泡沫程度。容易看出,在推动中国房地产市场的主要因素中,很多是其他经济体所不具备的所谓独特的中国因素。因是之故,中国房地产市场才能够不断让预言家们名声扫地,不管他是外来的和尚,还是本土的专家。
然而,再特殊的因素也无法阻止市场本身荣衰交替、牛熊循环的基本规则。在2008年,中国“特殊”的房地产市场终于暴露了它早应该暴露的疲态。面对这个迟到但显然是再正常不过的调整,赚惯了快钱、过惯了好日子的房地产商们开始集体跳脚。对于绝大部分没有经历过完整市场周期因而也显得特别幼稚的中国的房地产商来说,这种反应并不奇怪。
真正让人奇怪的是,部分地方政府在这个调整面前所表现出的轻率和疯狂。就数据和我们的观察而言,中国房地产市场的调整才刚刚开始。如果用一个更为人们所熟悉的指数来标示的话,今天的中国房地产价格仍然相当于上证指数的5000点,继续调整的空间依然巨大。
更有甚者,在东南沿海的一些主要城市中,地方政府竟然采取各种行政措施,禁止房地产商降价。这种行为非但不能起到阻止房价下跌的作用,反而更彰显了中国房地产市场内在的下跌趋势。同时,它也强化了消费者对房地产市场的熊市预期,从而推动房地产市场的加速下跌。显然,无论从房价收入比、月供收入比、租售比等最终决定房地产价格的基本面因素来看,中国的房地产市场依然泡沫飞溅。尤其需要提醒的是,随着一个从未见过的经济下滑周期的到来,潜在购房人群的未来收入预期将会恶化,这可能是压垮仍然在“负重死扛”的中国房地产市场并将其最终推入深渊的最后一根稻草。
毫无疑问,特殊的中国因素仍然会在未来的中国房地产市场中发挥作用。但同样毫无疑问的是,所有这些特殊因素都已是强弩之末。所以,假如在2009年,中国房地产市场发生一场真正意义上的崩溃并将国有银行以及经济整个拖下水的情况,我们丝毫也不应该感到惊讶。其中理由其实十分简单:以前透支了多少,以后就要还回去多少。从长期看,任何人都无法挑战这一铁律。事实上,我们已经看到高盛在2009年的投资策略中,将中国内地的房地产基本假设从降幅5%~10%扩大至35%~40%。
股市不坚强
如果2008年的中国房地产还显示了某种“猪坚强”的韧性的话,那么,2008年的中国股票市场就是一场标准的崩溃。在这一年中,中国股市一再打破人们的预期,从6000点一路狂泻到最低1600多点,最高跌幅达到将近75%。在前几年全球最牛的中国股市,2008年变成了全球最熊的股市。
与房地产市场相比,中国股市的许多投资者都已经经历过好几轮牛熊循环,对牛市之后的熊市已经有所准备,但如此跌法,仍然超出绝大多数人的预期。这除了显示了那些在集体癫狂时还在高喊“黄金十年”的分析师们的轻佻之外,也给我们留下了一个巨大的疑问:这里面究竟发生了什么?或者换一个问法:究竟有哪些因素远远超出了我们曾经坚信不疑的投资假设?
中国的消费率在2007年已经下降到35%的超低水平,而其他国家的同一指标大多在70%以上。居民在国民收入的所占比例不仅没有随着经济发展而增加,反而不断缩小。在1994年,政府、企业和居民三者的分配比例为18∶16∶66,而到了2005年,这个比例变化为23.8∶16.2∶60.0,居民收入占比不断下滑。
无疑,中国股票市场中的绝大部分投资者都深信这样一个假设:中国是全球最具有成长性的经济体,其高速成长的周期至少还可以再延续三十年。中国经济即便出现调整,也只是我们以前见过的那种周而复始的调整。这个信念被中国的主流媒体反复灌输和强化,成为中国大众思维框架中无需检验的假设。也正是因为这个原因,大多数人都相信,中国股票市场即便发生下跌,也只是正常的调整,最多也只是一个短暂的熊市周期。不幸的是,正是这样一个我们曾经笃信不疑的基础假设正在接受严峻的考验。就我们的智慧可以洞悉的,中国经济基本面的超预期下滑可能是解释中国股票市场超常下跌的最重要的因素。如果中国投资者一直坚信的基本假设——中国经济仍然可以高速成长三十年,果真受到侵蚀的话,2009年的中国股票市场就可能比2008年更为严酷。
在上一轮牛市过后,中国资本市场发生了一个重要的嬗变,那就是,大型垄断企业和国有银行已经成为中国资本市场的主体,占据了绝对份额。从相当程度上,为大型国企和银行上市铺路,正是政府方面推动上一轮牛市的重要动力之一。虽然在上一个经济扩张周期中,这些巨无霸企业的表现似乎差强人意,但这些主要依靠垄断地位以及国家财政挹注的大型企业自1990年代末期逐渐成形之后,毕竟没有经历过真正意义上的下行周期,更不用说像2008年这样突如其来且破坏性极强的下行周期。
所以,这些大型垄断企业在即将到来的惨淡日子中的抗击打能力将对股票市场的表现产生重要影响。对这一点,我们一点也不敢乐观。最新的证据是,三家最重要的大型航空公司已经陆续发生大面积亏损,而这种亏损竟然出现在GDP增速仍然达到10%的条件下。我们很难想像如果GDP增速跌落到8%或者更低的情况下,这些企业将如何应对。人们的确有理由担心,在几年之后,中国的纳税人是不是还需要对这些大型企业及银行再来一次巨额的输血?在资本市场上,唯一确定的就是不确定性。对于2009年及其之后的中国资本市场,则尤其如此。
中国股票市场的巨幅崩跌,虽然称得上是2008年中国的重要事件之一,但就其影响层面以及让人意外的程度,无疑都远远不敌中国经济在2008年三季度所开始呈现出的突然失速。
危机的气味
2008年下半年之后,在上半年还一路狂飙的中国的经济开始出现增长乏力的趋向,而到了九十月份,这种减缓开始演变成高空坠落的硬着陆态势。各种公开数据的转向之快,跌幅之巨,完全可以用急速崩落形容。在10月份,中国规模以上工业企业增加值同比增长仅为8.2%,比去年同期狂跌9.7个百分点,仅仅为过去5年平均增幅的一半。而到了11月份,这个数据更是跌落到5.4%,创2001年末以来的新低。
在财政收入方面,中国2008年11月的财政收入出现多年未见的同比负增长,比去年同月下降3.1%。而在被认为最能够真实反映经济增长的发电量方面,中国11月份统调电厂发电量同比急剧下降7%,是1989年以来的最大跌幅。与此同时,11月份发布的中国11月份采购经理人指数(PMI)也从10月份44.6大幅跌至38.8。与这些宏观数据相印证的则是,微观经济方面所呈现的萧条景象。按照目前最流行的说法就是,需求几乎在一夜之间就消失了。
一位为某家全球新能源巨头供货的朋友告知,这家曾经风光无限的厂商突然之间几乎冻结了所有原材料进货。而另外一位远在南方的朋友则透露,那边的港口出现了1989年以来最惨淡的景象。如果足够细心,我们就会发现,中国诸多宏观数据的下滑幅度,都是20年甚至30年以来所仅见。令人迷惑的是,中国宏观经济的这种急速转向几乎是在短短两三个月之间发生的。这一切,此前虽然多少有所察觉,但下滑之快仍然让人措手不及。仅仅在几个月之前,中央政府还在不断调高银行准备金及利率以抑制经济过热,但在几个月之后,同样是中央政府,却以罕见的频率和幅度大幅降低准备金及利率,并旋即推出了三十年来规模最大的四万亿财政刺激计划。如果你看到一个司机在猛踩刹车之后又突然猛踩油门,那他一定是遇到了某种紧急情况。
这可能正是隐藏在政策急转弯背后的东西。然而,无论是从决策层所表现出的“惊讶”中,还是从中国经济学家们所表现出的令人尴尬的集体失语中,抑或是中国企业界的惊慌失措中,都透露出了这样一个信息:我们对危机以及危机的形式几乎毫无准备。这不啻于证明,在蒙受了三十年难以置信的好运之后,在我们的主流意识中存在着一种危险的智力缺陷——近乎蒙昧的自大和乐观。有趣的是,最早嗅到危机气味的竟然是中国的几位最高领导人。
留意倾听他们含蓄的发言,我们或许可以更早地察觉目下这场危机。其中最直言不讳的是温家宝总理,早在春天,温家宝就直率地发出了预警,他说,2008年将是中国经济最困难的一年。为此,曾有人向媒体力荐温为2008年的最佳宏观分析师。显然,这不仅仅是一个相当有创意的幽默。不过,最困难的可能不是2008年,而是2009年或者再下一年。
相比于奥运会、“神七”上天、雪灾、地震、股市崩溃、房地产低迷,中国经济的突然失速无疑都是2008年头号事件,也必将成为2009年中国最重要的看点。在多年以GDP为中心,甚至以GDP为压倒一切的目标之后,没有什么比经济莫名其妙的失速更令人恐惧的了。因为它已经成为这个社会唯一的凝聚力和黏合剂。值得补充的是,就个人的观察而言,中国所谓精英阶层中的悲观气氛也为二十年来所仅见。
到现在为止,我们仍然无法判断,中国经济在2008年的怪异表现,究竟是一次短暂的意外事故,还是持续了三十年的中国发展模式的最后终结,但毫无疑问的是,我们已经越来越逼近一个危险的转捩点。然而,2008年并不是突然来到的,它不过是一段复杂而晦涩的历史最终显示了它惊人的力量而已。如果我们能够更好地理解过去的三十年,那么,2008年的变化可能就不再会显得如此诡异了,而中国刻下的处境也会被更清晰地呈现出来。
中国模式后遗症
从1978年到2008年,中国改革开放于今已经走过了三十个年头。三十年之后,在人们对市场化的成果已经习以为常的时候,中国独特发展模式所遗留下来的一些后果正在以一种尖利的方式为中国社会所感知。
二十年来,经济的高速增长,更加准确地说,GDP的高速增长成为缓解某种社会焦虑的唯一药方。如此,是不是能够迅速增加GDP,便成为衡量改革和真理的唯一标准。在这样一种思维的推动下,并基于当时的政治及自然禀赋,中国经济被迅疾推上了一条高投资率、高外向型、高污染、低内需、低福利、低保障的发展路径。在1990年代初期冷战结束之后,这种发展模式更被澎湃而至的全球化浪潮推向了极致水平。在经过十数年的酝酿并在新世纪(尤其是2001年加入WTO之后)发力冲刺之后,中国虽然取得了奇迹般的GDP增长速度,但也同样存在结构的扭曲以及内部问题的积累等弊端。
在内需方面,中国的消费率在2007年已经下降到35%的超低水平,而其他国家的同一指标大多在70%以上。隐藏在这种不不寻常的消费率背后的,实际上是财富分配结构的严重扭曲。资料表明,居民在国民收入的所占比例不仅没有随着经济发展而增加,反而不断缩小。在1994年,政府、企业和居民三者的分配比例为18∶16∶66,而到了2005年,这个比例变化为23.8∶16.2∶60.0,居民收入占比不断下滑。有评论者指出:
中国当今消费率比1950年代末期开始的“三年困难”时期还要低。这实际上就是中国内需长期低迷的主要因素。需要指出的是,中国内需低迷并不是一个市场博弈的后果,而是一个政治博弈的后果、其对应的是政府和企业在改革过程中权力的扩张,以及公民权利在同一时期的极度抑制。所谓低保障成本指的即是这样一种情形。
事实上,中国经济中的另外一个畸形指标,也源于同样的政治禀赋。从建国初期起,高投资率就一直是经济的一个隐患,但这种疾病似乎并没有在改革中得到彻底根治。到2005年底,中国的投资占GDP的比率达到48.6%。就此有人调侃道:如果投资率按照这样的速度增长下去,到2012年中国将是一个只有投资没有消费的经济体。从逻辑上说,长期的高投资率一定会导致产能过剩并最终引发经济的剧烈调整。
这一点在中国以前作为一个封闭的经济体系的时候,已经得到了反复验证。这也正是那个时代发生的故事。然而,在中国极速融于全球体系之后,这种过剩产能却在全球市场中得到了消化。加之,中国的各级地方政府通过对各种资源的控制能力将土地、税收、环境、资源以及人力成本压低到极致,这就使中国庞大的过剩产能拥有了其他国家无法匹敌的价格优势。这样,中国过剩产能的投资者不仅没有受到市场的惩罚,反而获得了利润。这反过来鼓励了政府以及企业的这种微观合理,但宏观上可能引发巨大灾难的投资冲动。这种短暂的成功迷惑了许多人,在他们看来,十数年如一日的超高投资率似乎并没有想象的那么吓人。不过,超高投资率与超低消费率的经济增长组合要想得以维系其脆弱的平衡,对外部市场和外部资源的高度依赖就是一个符合逻辑的结果。
其在经济指标上的表现,就是中国变成一个外贸依存度奇高的经济体。到2006年,中国的外贸依存度达到64%的罕见高度,远远超过其他大型经济体。作为一个拥有十几亿人口的大型经济体,中国的外贸依存度是非常不寻常的,也是相当危险的。这意味着,中国每1元的GDP就有0.64元是通过与外部经济交换而来的,这也同时意味着,一旦外部消费需求滑坡,中国经济就可能遭遇重创。2008年初冬中国经济的急跌已经对这种危险性做出了经典的诠释。可是,就在全球金融海啸发生之后,一些主流舆论还在安慰公众说:中国的实体经济是健康的,不会受到金融危机太大的影响。
不出所料,这种肤浅的“专家言论”以最快的速度沦为了笑柄。事实上,鉴于中国如此之高的外贸依存度,连中国经济这个概念本身都已经显得不合时宜。在相当程度上,中国经济在2008年三季度开始的急速下滑,很有可能就是长期积累的问题借助金融危机所发出的凶狠的报复。容易看到,在这三十年中,中国虽然取得了独步全球的增长速度,但其经济的基本体质仍然有相当脆弱的一面。当然,按照乐观看法,经济结构的扭曲可能正是中国经济最具潜力的一面,消费率低下正说明内需还有大幅提高的可能,产业落后正说明中国还有产业升级的潜力。我们不否认这种中国式辩证法中所包含的智慧,但显而易见,作为导致这些后果的原因,需要经济体制改革之外的改变。提振内需,调整结构,一直是被反复提出要完成的任务,然而多年努力之后,仍未竟其功,其谜底正在于政治体制改革之难。足可见,这绝对不是一桩轻松的任务。
自1990年代之后,以GDP为唯一标准,以特殊政治禀赋为条件的发展模式,不仅在经济层面造成了夸张的扭曲,也同样在社会层面及精神文化层面留下了严重的后遗症。后者由于不会反应在具体的经济指标上,因而也特别容易被隐匿和忽略。在这方面,最应该提及的是贫富差距问题。改革之前,虽然也同样存在着相当严重的不平等,但在经济上,中国仍然是一个相当平等的国家,但在短短三十年之后,中国一跃成为贫富最为悬殊的经济体之一。
从一个相对平等的社会急速演变成一个贫富差距极为悬殊的社会,社会中被压缩的潜在愤怒情绪可能相当具有爆炸性。一旦危机袭来,这种情绪就可能成为危险的导火索。换言之,中国在社会安定团结方面的一些问题,很有可能最先暴露在经济危机的火力之下,并成为社会整体性危机的第一个燃点。2008年的瓮安事件实际上就是这种危机最活生生的预言。如果正在加速成形的经济危机真的不幸到来的话,上述情形就将不再只是逻辑上和概率上的推论,而是很可能要直面的严峻现实。
不仅如此,在三十年改革之后,以世俗物质利益为主要目标的机会主义已经成为中国社会从精英到百姓,从政府到企业,几乎所有利益主体的压倒性行动文化。在这种毒性极大的文化中,人们被告知,只要对自己有利的,就是理性的,就是好的。只要能达到目标,最基础的商业伦理及文化准则都可以弃之如草芥。2008年引起轩然大波的“毒奶粉事件”,暴露的正是当今中国在文化精神层面这种最真实的面貌。在这方面,一些地方政府官员在经济增长上所展现出的赤裸裸的机会主义性格,为这种文化精神的形成起到推波助澜甚至直接示范的作用。
我们不能想象,构筑在这样一种文化基础上的社会如何能够应付一次巨大的经济冲击?当然,如果继续享有好运气的话,我们仍然可能侥幸过关。但一个只能不断祈灵于运气的国度又是一个何等脆弱的共同体,而其离所谓崛起又何止于十万八千里?虽然我们不愿相信,但我们必须非常遗憾地告诉人们:在危机日渐迫近的2008年,中国社会真正需要的是精神基础和起点。物质的成就可能因为一场危机而一夜散尽,而精神的力量却可以成为危机中最坚强的堡垒。在这个意义上,中国可能比其他经济体更接近危机。
正如我们上面所提示的那样,1978年之后,尤其是1990年代中期之后的中国经济增长,不仅是中国本身制度变革的结果,也是1990年代之后全球体系扩张的一个结果。换句话说,以美元为符号的全球体系实际上已经成为中国经济增长隐形但却非常重要的基础。因此,在考察中国经济增长的未来图景的时候,我们就不能离开全球体系的视域。二战之后,以美国为中心形成了一个新的全球体系。冷战之后,借助信息技术革命以及美国意识形态的魅力,这个全球体系急速膨胀。
以中国、印度、俄罗斯等巨型人口国家完全融入为标志,这个全球体系达到了其巅峰时期。然而,巅峰从来就意味着衰败的开始,以次贷危机为引信并在2008年被最终引爆的金融危机,实际上就是这个体系盛极而衰的一个明确信号。其本质是,通过滥发美元来吸纳全球过剩产能的美国消费能力的崩溃。在相当程度上,次贷危机就是美国通过所谓“金融创新”膨胀其消费需求并同时吸纳全球储蓄而导致的一场危机。
有人戏称:次贷危机的情形就好像是美国(像一个劳模一样扮演全球消费火车头)长期带病坚持工作最终不支倒地。显然,目前的危机不仅仅是美国的危机,也不是哪一国的危机,而是二战之后这个曾经创造过无数神话的全球体系的危机。也只有在全球体系的视角上,我们才能够更加接近目前这场危机的真相。与发生在体系边陲的亚洲金融危机不同,目前的金融危机发生在全球体系的心脏部分。亚洲金融危机之所以能够很快平息,乃是因为作为当时全球体系的发动机的美国消费需求(包括其他发达国家)依然强劲,而这种需求很快就将亚洲新兴经济体的过剩产能重新组织起来,从而迅速将体系推回到正常运转状态。
就此而论,这一次的全球金融危机显然要比十年之前的亚洲金融危机远为不测。道理非常简单,心肌梗死要比局部病痛危险得多。沿着这一线索,我们得知,美国及其他发达国家的消费需求何时能够修复,这场危机就何时能够结束。但我们已经了解,发达国家(尤以美国为甚)的消费需求多年来一直是通过金融杠杆被“吹”出来的,随着发达国家从企业到家庭全面的去杠杆化时代的到来,这种需求的恢复将是一个漫长的过程。实际上,到目前为止,发达国家的消费需求的萎缩可能还刚刚开始。接下来要发生的,则是体系内从金融到实体、从发达国家到新兴国家的一个全面负反馈——一个螺旋式下降的过程。
迄今可以旁证这个趋势的证据是,全球三大主要发达经济体,已经同时陷入衰退。这种情形是二战之后从未见过的。与此同时,那些原来被人们寄予厚望的诸如中国、印度这样的新兴经济体也在危机中迅速显露了他们对体系的高度依附性。希望这些出口导向型的新兴经济体能够一夜之间转型并拯救体系危机,不仅在经济上不现实,而且也将与目前的全球政治权力格局发生严重冲突。这提醒我们,全球体系的确遭遇到了二战之后最严峻的局面。我们不知道这种发展最终会指向哪里,但显然,变局已经开始。
改变的时刻已经到来
从1978年到2008年,中如果说前面十多年是以美国为中心的全球体系急剧扩张的时代的话,那么接下来我们将要进入的,则是这个体系不断收缩的时代。显然,这并不是一个令人愉快的时代。在这个过程中,体系内的任何国家都不能幸免于收缩所带来的痛苦。这是一个相当确定的全球体系前景。不确定的则是,如果其中有任何一个大国承受不了这种收缩所带来的痛苦而导致剧变,那么,二战之后的这个全球体系的爆炸就会立即被引发。老练的投资者都知道,不确定是人类智慧的天敌。无论是确定的经济收缩,还是不确定的体系考验,都将是中国在2009年将要面对的艰难处境。
虽然预测一向被认为是一件愚蠢的事业,但一些与中国高度相关的重要趋势仍然值得我们冒险予以提示。其一是,2009年,美元可能出现大幅贬值,并导致全球金融市场的进一步动荡。其二是,在中国,虽然已经紧急采取了大规模的刺激措施,但经济下滑的幅度仍然超过预期,延续了三十年的发展模式可能被迫转变。其三,在经济增长下滑的背景下,积累多年的各种矛盾趋于临界,政治体制改革空前紧迫,改革会获得新动力。往更远处看则有,在对立意识形态“休克”之后,为本轮全球化提供主要意识形态的保守主义也将面临退潮。继之而起的是各种替代性方案和思想的兴起。无疑,这将是一个大时代。
无论从全球体系的角度,还是从中国内部的情况看,一幅未来图景都已经无比清晰:中国正在遭遇三十年未见之变局。以一种乐观主义的态度来观察,危机从来就不仅仅只意味着崩溃,它同样意味着涅槃,意味着巨大的机会。虽然我从来就不是一个乐观主义者,但今天,我愿意以这样一种态度期待中国的2009,正如奥巴马在其胜选演讲中所说的那样:改变的时刻已经到来。
2008年12月27日土曜日
2008年9月19日金曜日
2008年9月10日水曜日
java call pl/sql
1.procedure 呼出す
/**
* 「内部管理番号取得部品」の呼出。
*
* @param connection DBコネクション
* @param keiyakusho_syurui_cd 契約書種類コード
* @return String 内部管理番号
* @throws SQLException データベースアクセスエラー
* @throws Exception
*/
public String getNaibuKanriBango(Connection connection, String kaishaCd, String subSysId, String gyoumuSaibanCd, String updateUserId)
throws SQLException {
String s1 = "";
String s2 = "";
String s3 = "";
String sql = "call ZCMGETNAIBUKANRINO_PRC(?,?,?,?,?,?,?,?,?,?,?)";
CallableStatement cstmt = connection.prepareCall(sql);
cstmt.setString(1, kaishaCd);
cstmt.setString(2, subSysId);
cstmt.setString(3, gyoumuSaibanCd);
cstmt.setString(4, DateUtil.getDateStr());
cstmt.setString(5, null);
cstmt.setInt(6, 1);
cstmt.setString(7, updateUserId);
cstmt.setString(8, DateUtil.getTimeToNum());
cstmt.setString(9, s1);
cstmt.setString(10, s2);
cstmt.setString(11, s3);
cstmt.registerOutParameter(9, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(10, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(11, java.sql.Types.VARCHAR);
cstmt.executeUpdate();
s1 = cstmt.getString(9);
s2 = cstmt.getString(10);
s3 = cstmt.getString(11);
// Exception
if (!StringUtils.isBlank(s2)) {
throw new SQLException();
}
return s1;
}
CREATE OR REPLACE procedure PROACTIVE.ZCMGETNAIBUKANRINO_PRC
(pi_kaisha_cd in varchar2
,pi_subsystem_id in varchar2
,pi_gym_saiban_cd in varchar2
,pi_saiban_dt in number
,pi_bmn_naibu_no in varchar2
,pi_lock_ctl_flg in number
,pi_koushin_user in varchar2
,pi_koushin_date in number
,po_saiban_no out varchar2
,po_message_id out varchar2
,po_column_id out varchar2)
2.function を呼出す
/**
* 「委託料率取得部品」の呼出。
*
* @param connection DBコネクション
* @param keiyakusho_syurui_cd 契約書種類コード
* @return String 委託料率
* @throws SQLException データベースアクセスエラー
* @throws Exception
*/
public String getItakuRyoritu(Connection connection, String keiyakushoShuruiCd)
throws SQLException {
// 委託料率
String itakuRyoritu = "";
String sql = "{? = call PKG_COMMON.F_GET_ITAKU_RYOURITU(?,?,?,?,?) }";
CallableStatement cstmt = connection.prepareCall(sql);
cstmt.setString(1, itakuRyoritu);
cstmt.setString(2, DateUtil.getDateStr());
cstmt.setString(3, keiyakushoShuruiCd);
cstmt.setString(4, null);
cstmt.setString(5, DateUtil.getDateStr());
cstmt.setString(6, "0");
cstmt.registerOutParameter(1, java.sql.Types.VARCHAR);
cstmt.executeUpdate();
itakuRyoritu = cstmt.getString(1);
return itakuRyoritu;
}
FUNCTION F_GET_ITAKU_RYOURITU(I_GET_DATE IN VARCHAR,
I_KEIYAKUSYO_SYURUI IN VARCHAR,
I_JIGYOYO_NO_SYUTOKU_YMD IN VARCHAR,
I_KHN_KIYK_TEIKETU_YMD IN VARCHAR,
I_KADOU_NISU IN VARCHAR
)
/**
* 「内部管理番号取得部品」の呼出。
*
* @param connection DBコネクション
* @param keiyakusho_syurui_cd 契約書種類コード
* @return String 内部管理番号
* @throws SQLException データベースアクセスエラー
* @throws Exception
*/
public String getNaibuKanriBango(Connection connection, String kaishaCd, String subSysId, String gyoumuSaibanCd, String updateUserId)
throws SQLException {
String s1 = "";
String s2 = "";
String s3 = "";
String sql = "call ZCMGETNAIBUKANRINO_PRC(?,?,?,?,?,?,?,?,?,?,?)";
CallableStatement cstmt = connection.prepareCall(sql);
cstmt.setString(1, kaishaCd);
cstmt.setString(2, subSysId);
cstmt.setString(3, gyoumuSaibanCd);
cstmt.setString(4, DateUtil.getDateStr());
cstmt.setString(5, null);
cstmt.setInt(6, 1);
cstmt.setString(7, updateUserId);
cstmt.setString(8, DateUtil.getTimeToNum());
cstmt.setString(9, s1);
cstmt.setString(10, s2);
cstmt.setString(11, s3);
cstmt.registerOutParameter(9, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(10, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(11, java.sql.Types.VARCHAR);
cstmt.executeUpdate();
s1 = cstmt.getString(9);
s2 = cstmt.getString(10);
s3 = cstmt.getString(11);
// Exception
if (!StringUtils.isBlank(s2)) {
throw new SQLException();
}
return s1;
}
CREATE OR REPLACE procedure PROACTIVE.ZCMGETNAIBUKANRINO_PRC
(pi_kaisha_cd in varchar2
,pi_subsystem_id in varchar2
,pi_gym_saiban_cd in varchar2
,pi_saiban_dt in number
,pi_bmn_naibu_no in varchar2
,pi_lock_ctl_flg in number
,pi_koushin_user in varchar2
,pi_koushin_date in number
,po_saiban_no out varchar2
,po_message_id out varchar2
,po_column_id out varchar2)
2.function を呼出す
/**
* 「委託料率取得部品」の呼出。
*
* @param connection DBコネクション
* @param keiyakusho_syurui_cd 契約書種類コード
* @return String 委託料率
* @throws SQLException データベースアクセスエラー
* @throws Exception
*/
public String getItakuRyoritu(Connection connection, String keiyakushoShuruiCd)
throws SQLException {
// 委託料率
String itakuRyoritu = "";
String sql = "{? = call PKG_COMMON.F_GET_ITAKU_RYOURITU(?,?,?,?,?) }";
CallableStatement cstmt = connection.prepareCall(sql);
cstmt.setString(1, itakuRyoritu);
cstmt.setString(2, DateUtil.getDateStr());
cstmt.setString(3, keiyakushoShuruiCd);
cstmt.setString(4, null);
cstmt.setString(5, DateUtil.getDateStr());
cstmt.setString(6, "0");
cstmt.registerOutParameter(1, java.sql.Types.VARCHAR);
cstmt.executeUpdate();
itakuRyoritu = cstmt.getString(1);
return itakuRyoritu;
}
FUNCTION F_GET_ITAKU_RYOURITU(I_GET_DATE IN VARCHAR,
I_KEIYAKUSYO_SYURUI IN VARCHAR,
I_JIGYOYO_NO_SYUTOKU_YMD IN VARCHAR,
I_KHN_KIYK_TEIKETU_YMD IN VARCHAR,
I_KADOU_NISU IN VARCHAR
)
2008年8月11日月曜日
SQL 日付計算、曜日計算、月末日計算、時間計算、期間計算、日付抽出
■システム日付、システム時間
・Oracle のサーバ日付を得るには、次のようにする。
(現在日付取得、現在時刻取得)
select sysdate from dual;
select to_char(
sysdate,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
select to_char(
sysdate,
'yyyy.mm.dd'
)
from dual
;
select to_char(
sysdate,
'hh24:mi:ss'
)
from dual
;
** Access では、Now() を使用する。
■年の演算(年加算、年減算)
・date 型、または、to_date() で date 型にしたものに対して、年の演算を
行うには、次のようにする。
add_months では、12 ヶ月が 1 年となる。
jcdt date;
jcdt := add_months(jcdt, 12 * 1); -- 1 年加算
jcdt := add_months(jcdt, 12 * -1); -- 1 年減算
select add_months(sysdate, 12 * 1) from dual;
■月の演算(月加算、月減算)
・add_months を使用すると、12 月に 1 ヶ月加算すると翌年の 1 月になる。
jcdt date;
jcdt := add_months(jcdt, 1); -- 1 ヶ月加算
jcdt := add_months(jcdt, -1); -- 1 ヶ月減算
select add_months(sysdate, 1) from dual;
** Access では、
dateadd('m', 1, jcdt)
dateadd('m', 1, now())
を使用する。
■曜日の演算(曜日計算)
・前の週を計算するには、-7 すれば良い。
jcdt date;
jcdt := next_day(jcdt, '月'); -- 次の月曜計算
jcdt := next_day(jcdt, '金'); -- 次の金曜計算
jcdt := next_day(jcdt, '月') - 7; -- 前の月曜計算
select next_day(sysdate, '月') from dual;
select next_day(sysdate, '月') - 7 from dual;
■週の演算(週加算、週減算)
・7 日を加減算すれば、週の計算となる。
jcdt date;
jcdt := jcdt + 1 * 7; -- 1 週加算
jcdt := jcdt - 1 * 7; -- 1 週減算
select sysdate + 1 * 7 from dual;
■月末日の演算
・月末日を求めるには、次のようにする。
jcdt date;
jcdt := last_day(jcdt); -- 月末日
select last_day(sysdate) from dual;
■日の演算(日加算、日減算)
・うるう年や大の月、小の月も考えなくて良い。
jcdt date;
jcdt := jcdt + 1; -- 1 日加算(翌日)
jcdt := jcdt - 1; -- 1 日減算(前日)
select sysdate + 1 from dual;
■日の 0 時
・date 型は、整数部で日を管理しているので、切り捨てれば 0 時となる。
jcdt date;
jcdt := trunc(jcdt); -- jcdt 日の 0 時
select trunc(sysdate) from dual;
select to_char(
trunc(sysdate),
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■時間の演算(時間加算、時間減算)
・date 型、小数部で時間を管理している。
jcdt date;
jcdt := jcdt + 1 / 24; -- 1 時間加算
jcdt := jcdt - 1 / 24; -- 1 時間減算
select sysdate + 1 / 24 from dual;
select to_char(
sysdate + 1 / 24,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■分の演算(分加算、分減算)
・date 型、小数部で時間を管理しているので、24 * 60 = 1440 が分の単位と
なる。
jcdt date;
jcdt := jcdt + 1 / 1440; -- 1 分加算
jcdt := jcdt - 1 / 1440; -- 1 分減算
select sysdate + 1 / 1440 from dual;
select to_char(
sysdate + 1 / 1440,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■秒の演算(秒加算、秒減算)
・date 型、小数部で時間を管理しているので、1440 * 60 = 86400 が秒の
単位となる。
jcdt date;
jcdt := jcdt + 1 / 86400; -- 1 秒加算
jcdt := jcdt - 1 / 86400; -- 1 秒減算
select sysdate + 1 / 86400 from dual;
select to_char(
sysdate + 1 / 86400,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■日付間隔、時間間隔、期間計算、時間計算
・勤続年数や勤務時間など日付や時間の間隔を計算するには、次のようにする。
月が整数部で、日以降が小数部で返る。(経過日数、期間内日数)
jcdt date;
mm number;
mm := months_between(sysdate, jcdt); -- SYSDATE と jcdt の期間
select months_between(
sysdate,
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) from dual;
・12 で割れば、年数が得られる。(経過年数計算、勤続年数計算、年齢計算)
年に切り捨てるには trunc を使用すれば良い。
select months_between(
sysdate,
to_date('1999.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) / 12
from dual;
select trunc(months_between(
sysdate,
to_date('1999.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) / 12)
from dual;
■日付抽出、日付比較、日付判定、時間抽出、時間比較、時間判定
・日付の範囲や時間の範囲でレコードを抽出するには、次のようにする。
日付に索引が付けてあるかにもよるが、一般的にも like より、日付として
の抽出の方が高速と思う。
(Date 型比較、日付型比較、日付大小比較、日付範囲指定)
(日付データ抽出、日付検索、期間指定、期間範囲、期間集計、期間検索)
select * from テーブル名
where jcdt between
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
and
to_date('2001.10.31 23:59:59', 'yyyy.mm.dd hh24:mi:ss')
;
select * from テーブル名
where jcdt > sysdate
;
select * from テーブル名
where jcdt >
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
;
select * from テーブル名
where to_char(jcdt, 'yyyy.mm.dd hh24:mi:ss') like '2001%'
;
--------------------------------
株式会社ノアテック
www.noah-tec.com
BRANDay宝爱伊-二手奢侈品店
ブランドアイ
ブランドアイ
・Oracle のサーバ日付を得るには、次のようにする。
(現在日付取得、現在時刻取得)
select sysdate from dual;
select to_char(
sysdate,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
select to_char(
sysdate,
'yyyy.mm.dd'
)
from dual
;
select to_char(
sysdate,
'hh24:mi:ss'
)
from dual
;
** Access では、Now() を使用する。
■年の演算(年加算、年減算)
・date 型、または、to_date() で date 型にしたものに対して、年の演算を
行うには、次のようにする。
add_months では、12 ヶ月が 1 年となる。
jcdt date;
jcdt := add_months(jcdt, 12 * 1); -- 1 年加算
jcdt := add_months(jcdt, 12 * -1); -- 1 年減算
select add_months(sysdate, 12 * 1) from dual;
■月の演算(月加算、月減算)
・add_months を使用すると、12 月に 1 ヶ月加算すると翌年の 1 月になる。
jcdt date;
jcdt := add_months(jcdt, 1); -- 1 ヶ月加算
jcdt := add_months(jcdt, -1); -- 1 ヶ月減算
select add_months(sysdate, 1) from dual;
** Access では、
dateadd('m', 1, jcdt)
dateadd('m', 1, now())
を使用する。
■曜日の演算(曜日計算)
・前の週を計算するには、-7 すれば良い。
jcdt date;
jcdt := next_day(jcdt, '月'); -- 次の月曜計算
jcdt := next_day(jcdt, '金'); -- 次の金曜計算
jcdt := next_day(jcdt, '月') - 7; -- 前の月曜計算
select next_day(sysdate, '月') from dual;
select next_day(sysdate, '月') - 7 from dual;
■週の演算(週加算、週減算)
・7 日を加減算すれば、週の計算となる。
jcdt date;
jcdt := jcdt + 1 * 7; -- 1 週加算
jcdt := jcdt - 1 * 7; -- 1 週減算
select sysdate + 1 * 7 from dual;
■月末日の演算
・月末日を求めるには、次のようにする。
jcdt date;
jcdt := last_day(jcdt); -- 月末日
select last_day(sysdate) from dual;
■日の演算(日加算、日減算)
・うるう年や大の月、小の月も考えなくて良い。
jcdt date;
jcdt := jcdt + 1; -- 1 日加算(翌日)
jcdt := jcdt - 1; -- 1 日減算(前日)
select sysdate + 1 from dual;
■日の 0 時
・date 型は、整数部で日を管理しているので、切り捨てれば 0 時となる。
jcdt date;
jcdt := trunc(jcdt); -- jcdt 日の 0 時
select trunc(sysdate) from dual;
select to_char(
trunc(sysdate),
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■時間の演算(時間加算、時間減算)
・date 型、小数部で時間を管理している。
jcdt date;
jcdt := jcdt + 1 / 24; -- 1 時間加算
jcdt := jcdt - 1 / 24; -- 1 時間減算
select sysdate + 1 / 24 from dual;
select to_char(
sysdate + 1 / 24,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■分の演算(分加算、分減算)
・date 型、小数部で時間を管理しているので、24 * 60 = 1440 が分の単位と
なる。
jcdt date;
jcdt := jcdt + 1 / 1440; -- 1 分加算
jcdt := jcdt - 1 / 1440; -- 1 分減算
select sysdate + 1 / 1440 from dual;
select to_char(
sysdate + 1 / 1440,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■秒の演算(秒加算、秒減算)
・date 型、小数部で時間を管理しているので、1440 * 60 = 86400 が秒の
単位となる。
jcdt date;
jcdt := jcdt + 1 / 86400; -- 1 秒加算
jcdt := jcdt - 1 / 86400; -- 1 秒減算
select sysdate + 1 / 86400 from dual;
select to_char(
sysdate + 1 / 86400,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
■日付間隔、時間間隔、期間計算、時間計算
・勤続年数や勤務時間など日付や時間の間隔を計算するには、次のようにする。
月が整数部で、日以降が小数部で返る。(経過日数、期間内日数)
jcdt date;
mm number;
mm := months_between(sysdate, jcdt); -- SYSDATE と jcdt の期間
select months_between(
sysdate,
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) from dual;
・12 で割れば、年数が得られる。(経過年数計算、勤続年数計算、年齢計算)
年に切り捨てるには trunc を使用すれば良い。
select months_between(
sysdate,
to_date('1999.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) / 12
from dual;
select trunc(months_between(
sysdate,
to_date('1999.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
) / 12)
from dual;
■日付抽出、日付比較、日付判定、時間抽出、時間比較、時間判定
・日付の範囲や時間の範囲でレコードを抽出するには、次のようにする。
日付に索引が付けてあるかにもよるが、一般的にも like より、日付として
の抽出の方が高速と思う。
(Date 型比較、日付型比較、日付大小比較、日付範囲指定)
(日付データ抽出、日付検索、期間指定、期間範囲、期間集計、期間検索)
select * from テーブル名
where jcdt between
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
and
to_date('2001.10.31 23:59:59', 'yyyy.mm.dd hh24:mi:ss')
;
select * from テーブル名
where jcdt > sysdate
;
select * from テーブル名
where jcdt >
to_date('2001.10.18 21:00:00', 'yyyy.mm.dd hh24:mi:ss')
;
select * from テーブル名
where to_char(jcdt, 'yyyy.mm.dd hh24:mi:ss') like '2001%'
;
--------------------------------
株式会社ノアテック
www.noah-tec.com
BRANDay宝爱伊-二手奢侈品店

ブランドアイ
ブランドアイ
2008年8月3日日曜日
SQLPLUS命令的使用
1. 执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑
SQL>edit
3. 重新运行上一次运行的sql语句
SQL>/
4. 将显示的内容输出到指定文件
SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构
SQL> desc table_name
7. COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
sql>col LOC heading location
sql>select * from dept;
DEPTNO DNAME location
--------- ---------------------------- -----------
10 ACCOUNTING NEW YORK
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department name Salary
---------- ---------- ----------
10 aaa 11
SQL> COLUMN ENAME HEADING ’Employee|Name’
Sql>select * from emp
Employee
Department name Salary
---------- ---------- ----------
10 aaa 11
note: the col heading turn into two lines from one line.
3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
Sql> col ename format a40
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
EMPNO ENAME
---------- ----------------------------------------
7369 SMITH
7499 ALLEN
7521 WARD
6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name Salary Commission
---------- ---------- --------- ----------
30 ALLEN $1,600 300
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
COL1
--------------------
HOW ARE YOU?
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
9). 显示列的当前的显示属性值
SQL> COLUMN column_name
10). 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS
8. 屏蔽掉一个列中显示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL < 2500
ORDER BY DEPTNO;
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
BREAK ON break_column SKIP n
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
10. 显示对BREAK的设置
SQL> BREAK
11. 删除6、7的设置
SQL> CLEAR BREAKS
12. Set 命令:
该命令包含许多子命令:
SET system_variable value
system_variable value 可以是如下的子句之一:
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
4).是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替
5).设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
6).设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
7).显示时,用text值代替NULL值
SQL> SET NULL text
8).设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF}
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。
10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL> SET WRA[P] {ON|OFF}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
12).将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}
13)显示每个sql语句花费的执行时间
set TIMING {ON|OFF}
14.修改sql buffer中的当前行中,第一个出现的字符串
C[HANGE] /old_value/new_value
SQL> l
1* select * from dept
SQL> c/dept/emp
1* select * from emp
15.编辑sql buffer中的sql语句
EDI[T]
16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
L[IST] [n]
17.在sql buffer的当前行下面加一行或多行
I[NPUT]
18.将指定的文本加到sql buffer的当前行后面
A[PPEND]
SQL> select deptno,
2 dname
3 from dept;
DEPTNO DNAME
---------- --------------
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
SQL> L 2
2* dname
SQL> a ,loc
2* dname,loc
SQL> L
1 select deptno,
2 dname,loc
3* from dept
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
19.将sql buffer中的sql语句保存到一个文件中
SAVE file_name
20.将一个文件中的sql语句导入到sql buffer中
GET file_name
21.再次执行刚才已经执行的sql语句
RUN
or
/
22.执行一个存储过程
EXECUTE procedure_name
23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
24.设置每个报表的顶部标题
TTITLE
25.设置每个报表的尾部标题
BTITLE
26.写一个注释
REMARK [text]
27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]
28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]
Sql>PAUSE Adjust paper and press RETURN to continue.
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST
create emp_temp
USING SELECT * FROM EMP
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST
Sql> host hostname
该命令在windows下可能被支持。
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
!
sql>!
$hostname
$exit
sql>
该命令在windows下不被支持。
32.显示sql*plus命令的帮助
HELP
如何安装帮助文件:
Sql>@ ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql
Sql>help index
33.显示sql*plus系统变量的值或sql*plus环境变量的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
1) . 显示当前环境变量的值:
Show all
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
3) . 显示初始化参数的值:
show PARAMETERS [parameter_name]
4) . 显示数据库的版本:
show REL[EASE]
5) . 显示SGA的大小
show SGA
6). 显示当前的用户名
show user
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑
SQL>edit
3. 重新运行上一次运行的sql语句
SQL>/
4. 将显示的内容输出到指定文件
SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构
SQL> desc table_name
7. COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
sql>col LOC heading location
sql>select * from dept;
DEPTNO DNAME location
--------- ---------------------------- -----------
10 ACCOUNTING NEW YORK
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department name Salary
---------- ---------- ----------
10 aaa 11
SQL> COLUMN ENAME HEADING ’Employee|Name’
Sql>select * from emp
Employee
Department name Salary
---------- ---------- ----------
10 aaa 11
note: the col heading turn into two lines from one line.
3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
Sql> col ename format a40
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
EMPNO ENAME
---------- ----------------------------------------
7369 SMITH
7499 ALLEN
7521 WARD
6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name Salary Commission
---------- ---------- --------- ----------
30 ALLEN $1,600 300
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
COL1
--------------------
HOW ARE YOU?
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
9). 显示列的当前的显示属性值
SQL> COLUMN column_name
10). 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS
8. 屏蔽掉一个列中显示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL < 2500
ORDER BY DEPTNO;
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
BREAK ON break_column SKIP n
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
10. 显示对BREAK的设置
SQL> BREAK
11. 删除6、7的设置
SQL> CLEAR BREAKS
12. Set 命令:
该命令包含许多子命令:
SET system_variable value
system_variable value 可以是如下的子句之一:
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
4).是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替
5).设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
6).设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
7).显示时,用text值代替NULL值
SQL> SET NULL text
8).设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF}
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。
10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL> SET WRA[P] {ON|OFF}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
12).将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}
13)显示每个sql语句花费的执行时间
set TIMING {ON|OFF}
14.修改sql buffer中的当前行中,第一个出现的字符串
C[HANGE] /old_value/new_value
SQL> l
1* select * from dept
SQL> c/dept/emp
1* select * from emp
15.编辑sql buffer中的sql语句
EDI[T]
16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
L[IST] [n]
17.在sql buffer的当前行下面加一行或多行
I[NPUT]
18.将指定的文本加到sql buffer的当前行后面
A[PPEND]
SQL> select deptno,
2 dname
3 from dept;
DEPTNO DNAME
---------- --------------
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
SQL> L 2
2* dname
SQL> a ,loc
2* dname,loc
SQL> L
1 select deptno,
2 dname,loc
3* from dept
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
19.将sql buffer中的sql语句保存到一个文件中
SAVE file_name
20.将一个文件中的sql语句导入到sql buffer中
GET file_name
21.再次执行刚才已经执行的sql语句
RUN
or
/
22.执行一个存储过程
EXECUTE procedure_name
23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
24.设置每个报表的顶部标题
TTITLE
25.设置每个报表的尾部标题
BTITLE
26.写一个注释
REMARK [text]
27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]
28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]
Sql>PAUSE Adjust paper and press RETURN to continue.
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST
create emp_temp
USING SELECT * FROM EMP
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST
Sql> host hostname
该命令在windows下可能被支持。
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
!
sql>!
$hostname
$exit
sql>
该命令在windows下不被支持。
32.显示sql*plus命令的帮助
HELP
如何安装帮助文件:
Sql>@ ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql
Sql>help index
33.显示sql*plus系统变量的值或sql*plus环境变量的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
1) . 显示当前环境变量的值:
Show all
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
3) . 显示初始化参数的值:
show PARAMETERS [parameter_name]
4) . 显示数据库的版本:
show REL[EASE]
5) . 显示SGA的大小
show SGA
6). 显示当前的用户名
show user
Oracle数据导入导出
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
以下我自己补充:
1.在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
以下我自己补充:
1.在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标
2008年7月26日土曜日
2008年7月24日木曜日
动漫日语
1.大した事じゃないわ。
たいしたことじゃないわ。
这没什么大不了的。
提示:わ:是女性用语,男生们不要说哦~~hoho~
2. どうしたの?緊張してるの?
どうしたの?きんちょうしてるの?
どうした?一般男性用 どうしたの?一般女性用 どうしました(か)?一般的礼貌体 どうしたの中的の是
表示了一???方的?切,比どうしました要好~
3. 安心しました。ふ~~ あんしんしました ふ~~
那我就放心了。呼~
4. まるで お人形さんみたい!
まるで おにんぎょうさんみたい
(可?得)?直就像洋娃娃一?!
提示:まるで:好像 人形:人偶、洋娃娃 お人形さん:表示??美的人的尊称 みたい:像……一?
5. どういうこと? どういうことですか。
什?意思?(或)?是怎?回事?
例如,?心情不好,?人??怎????不愿意??,那就回答: いや、別に。 いや、べつに。
温馨提示: いや:表示否定,不。但是礼貌一点?是??“いえ”或者“いいえ”比?好。
6. そんなに 可笑しいですか。
そんなに おかしいですか。
有那?好笑?!
7. もったいないですね。
真是浪??。
8. 任せてください! まかせてください
交?我??!
9. 今日は 本当に ありがとうございました。
きょうは ほんとうに ありがとうございました。
10.約束だぞ、ルフィ。
やくそくだぞ、ルフィ。
说好了哦,路飞。
温馨提示:約束:约定。ぞ:语气助词,起加强语气作用,啊,呀,哦……一般男性说比较多。
11. すごく ショックでした!
令我很震?!
12. あら、新しい携帯ですか。
あら、あたらしいけいたいですか。
?呀,是新的手机??
温馨提示: あら:?呀,??(是女性用?)。 携帯:“携?電話(けいたいでんわ)”的?称,即手机。
13. 気にしないで、いつもの病気だから。
きにしないで、いつものびょうきだから。
?在意,老毛病了。
温馨提示: だから:表示原因。
14. かまいませんよ。
没?系哦。
温馨提示: かまう:介意。 如果?人向?道歉,除了?“大丈夫です(没?系)”之外,也可??回答的 哦 :“かまいません”。 如果人家??介意不介意??房?看看,??没?系、不介意,那就可以??句?哦!
15. 頑張ってやれば できるんですよ。
がんばってやれば できるんですよ。
加油的?肯定能成功的。
温馨提示: 頑張ってやれば:意思是如果能努力去做,ば形是表示假?:“如果……就……” できる: 做得到、?到、成功的意思。 ん:???气的作用,一定会成功的,一定!
16. はい、絶対勝ちます!
はい、ぜったいかちます!
是,??会?利的!
温馨提示: 勝ちます:原型是「勝つ」(かつ),?利。
17. ご協力 感謝します!
ごきょうりょく かんしゃします!
感??助(合作)!
温馨提示: ご:表示尊敬的???。 協力:有“合作、配合、?助”等意思。 ?外,援助(えんじょ):支援、援助、救援。
今天我??切地要?已?奔赴四川震区的日本救援?衷心地?一声: ご援助 心から感謝します! ごえんじょ こころからかんしゃします
衷心感?援助!
18. 気持ち悪い。 きもちわるい。
(真)?心/想吐。
温馨提示: ?句?可以是心情上不舒服,?得?的事物?自己?心 例如: 那人好?心?~:あの人は気持ち悪い~
也可以是身体上的不舒服、是真的?心、想吐~ ?里音?里??上是因?春日吃?蟹吃多了真的想吐~
19. 俺と。。付き合わないか。
おれと。。つきあわないか。
能和我……交往??
温馨提示: 付き合う:有“交往”或者“陪伴”??意思。 “俺と。。付き合わないか。”?句?当然是男生口气的?来的,要是女生如何表白??
20. 安心してください。
あんしんしてください。
温馨提示: してください:??人做…… 更加口?的?略?法是:して。 安心してください=安心して
21. じゃあ、ケロちゃん、留守番よろしくね。
じゃあ、ケロちゃん、るすばんよろしくね。
那小kero,就拜托?看家了。
22. パーティーは とっても楽しかったです。
パーティーは とってもたのしかったです。
?会真的好?心。
温馨提示: パーティー:party とっても:很,非常。是「とても」的口??法。 楽しかった:是形容?「楽しい」(?心)的?去式。用?去式是因?指??束的?会玩得很?心。 例如:今天玩得很?心:今日はとても楽しかったです。
23. 爺、しっかりしろ!爺!
じじ、しっかりしろ!じじ!
温馨提示: しっかり:振作、??。 しろ:表示是命令?气。 ?有一?常用的?法:しっかりして(?振作),女生?得比?多。
24. そんなこと言わずに、頼む!親分!
そんなことい(ゆ)わずに、たのむ!おやぶん!
不要???嘛,求?了!老大!
温馨提示: 言わずに=言わないで:不要? 言う(いう)口?中也?常?成(ゆう),??都可以。 親分:老大、?目=お頭(かしら)
25. 無茶ですよ。
むちゃですよ。
???了/??乱来了/?太乱来了。
温馨提示: 無茶:乱来、胡乱。 無茶です:就是?太乱来了,翻?成中文的?上面三?情况都是可以的,最?要表?的意思是差不多滴~
26. 背が高いですね~
せ(い)がたかいですね~
温馨提示: 背:(せ/せい)???音都可以,表示:身高、个子。 个子矮:背が低い(ひくい)
27. もう少し休んでから、帰りなさい。
もうすこしやすんでから、かえりなさい。
稍微再休息一会再回去?。
温馨提示: もう少し:再稍微,再一点点。 ??て形+から:……之后。 なさい:表示?微的命令,多用于老??学生?,或者家??孩子提出的要求。
28. あたしを待ってくださいよ。
あたしをまってくださいよ。
?就等一下我嘛。
温馨提示: あたし=わたし:女性常用,感?听起来比??气。
29. でも、驚いたなあ。
でも、おどろいたなあ。
我可是被?了一跳?。
温馨提示: 驚く(おどろく):?了一跳,?恐。
30. いや、今日は諦めます。
いや、きょうはあきらめます。
不,今天就算了。
温馨提示: 諦める:放弃、死心。
31. おもしろそうじゃん。
那不是很有趣??
温馨提示: おもしろい(面白い):有趣的。 おもしろそう:好像很有趣的?子 じゃん=じゃない,是口?的?音形式。
32. 僕は今でも 君を愛してる。
ぼくはいまでも きみをあいしてる。
我至今??着?。
温馨提示: 看到“僕”“君”,就知道一般?句?也就是男生?的了,女生的??怎???: 参考: わたしは今でも あなたを愛してる。
33. バスケットは お好きですか。
ばすけっとは おすきですか。
?喜??球??
温馨提示: バスケット=バスケットボール:?球(basketball) お好きですか前面的接??「お」表示礼貌、尊敬。
34. 羨ましいですよ。
うらやましいですよ。
真羡慕?。
温馨提示: 羨ましい:羡慕。 真羡慕?~ うらやましいですね~~
35. いいチャンスです!
いいちゃんすです!
?可是个天大的好机会!
温馨提示: チャンス:(英)chance,机会
36. あなた、ダイエットでもしてるんじゃない?
あなた、だいえっとでもしてるんじゃない?
是不是在?肥??
温馨提示: あなた:日本人一般不用第二人称直接称呼?方的,会?得很失礼,但是老??学生的?是可以的。 ダイエット(する):?肥。 でも:表示?例。 じゃない:?句?表示反?,?不是在?肥??但?成“?是不是在?肥??”也是可以的,意思一?。
37. どうすれば いい?
我?怎??才好?
温馨提示: すれば:是「する」的ば形,表示假?。
38. お前には 関係ない。
おまえには かんけいない。
跟?没?系。
温馨提示: お前:之前???是不礼貌不客气的称呼,?大家不要随便乱用哦~ に:表示?象的点,或者表示??的一个点。例如?句?里就是指的就是“?”?个?象点。 は:在?里跟“に”?用,是?了??,??“跟?没?系”的?气。 ない:当然就是指“没有、无”的意思咯~
39. 何 言ってんのよ!
なに いってんのよ!
温馨提示: ?句?灰常地口??哦!原句??是:何を言っているのよ! 在口?中,??助?的「を」?常省略; 「言っている」中的「ている」表示?在?行?咯,在口?中?常省略「い」,而?成「てる」,而?个「てる」的「る」又?常?音成「ん」,最后就?成了「言ってん」。 「の」是???气作用。 ?句???下降,表示一??怪、?解的心情。
40. うそ、こんなに真っ暗。
うそ、こんなにまっくら。
不是?,天都??黑了。
温馨提示: うそ:不是?,?人等等,表示不敢相信的感?。 こんなに:??,??,如此。 真っ暗:漆黑,(前途)黯淡,黑暗。
41. じゃあ、きっと幸せになれるわ。
じゃあ、きっとしあわせになれるわ。
那一定会?得很幸福的。
温馨提示: 幸せになる:是?得幸福。「なれる」是「なる」的可能形式,意思就是“能?得……”。 わ:是?气助?,?,呀。女性用?。
42. ねえ、ちょっと待ってよ。
ねえ、ちょっとまってよ。
等等我嘛。
43. じゃあ、決まりだな。
じゃあ、きまりだな。
那就??决定了。
温馨提示: 決まり:?里作?名?用。原形是「決まる」,意思是“决定”。 な:?气?
44. 違うみたい。
ちがうみたい。
好像??了。
温馨提示: みたい:好像……
45.嘘付け!!
うそつけ!!
骗人/说谎!
46.お腹空いた。おなかすいた。
肚子饿了。
47.勝手に 決めないで!かってに きめないで!
不要随便替我决定!温馨提示:勝手:任意,随便,为所欲为……決める:决定。ないで:请别人不要做……
48.勝手に 決めないで!かってに きめないで!
不要随便替我决定!温馨提示:勝手:任意,随便,为所欲为……決める:决定。ないで:请别人不要做……
49.だめよ、きちんと食べないと。
だめよ、きちんとたべないと。
不好好吃饭的话是不行的哦。温馨提示:きちんと:好好地,正经地动词ない形+と:不……就……这句话有种倒装的感觉,本来应该是:きちんと食べないと、だめよ。口语这种倒装是常见的,例如这里想强调“不行的”,就先说“だめよ”。类似的有:これは何?(这是什么?)口语中经常说:何、これ?
50.静かになさい!
しずかになさい!
安静!!温馨提示:静か:安静。~なさい:比命令形语气稍微缓和一点用法,一般是老师对学生、家长对孩子提出的要求。只要把动词的“ます”去掉,加“なさい”就ok!例如:说!!言いなさい!
たいしたことじゃないわ。
这没什么大不了的。
提示:わ:是女性用语,男生们不要说哦~~hoho~
2. どうしたの?緊張してるの?
どうしたの?きんちょうしてるの?
どうした?一般男性用 どうしたの?一般女性用 どうしました(か)?一般的礼貌体 どうしたの中的の是
表示了一???方的?切,比どうしました要好~
3. 安心しました。ふ~~ あんしんしました ふ~~
那我就放心了。呼~
4. まるで お人形さんみたい!
まるで おにんぎょうさんみたい
(可?得)?直就像洋娃娃一?!
提示:まるで:好像 人形:人偶、洋娃娃 お人形さん:表示??美的人的尊称 みたい:像……一?
5. どういうこと? どういうことですか。
什?意思?(或)?是怎?回事?
例如,?心情不好,?人??怎????不愿意??,那就回答: いや、別に。 いや、べつに。
温馨提示: いや:表示否定,不。但是礼貌一点?是??“いえ”或者“いいえ”比?好。
6. そんなに 可笑しいですか。
そんなに おかしいですか。
有那?好笑?!
7. もったいないですね。
真是浪??。
8. 任せてください! まかせてください
交?我??!
9. 今日は 本当に ありがとうございました。
きょうは ほんとうに ありがとうございました。
10.約束だぞ、ルフィ。
やくそくだぞ、ルフィ。
说好了哦,路飞。
温馨提示:約束:约定。ぞ:语气助词,起加强语气作用,啊,呀,哦……一般男性说比较多。
11. すごく ショックでした!
令我很震?!
12. あら、新しい携帯ですか。
あら、あたらしいけいたいですか。
?呀,是新的手机??
温馨提示: あら:?呀,??(是女性用?)。 携帯:“携?電話(けいたいでんわ)”的?称,即手机。
13. 気にしないで、いつもの病気だから。
きにしないで、いつものびょうきだから。
?在意,老毛病了。
温馨提示: だから:表示原因。
14. かまいませんよ。
没?系哦。
温馨提示: かまう:介意。 如果?人向?道歉,除了?“大丈夫です(没?系)”之外,也可??回答的 哦 :“かまいません”。 如果人家??介意不介意??房?看看,??没?系、不介意,那就可以??句?哦!
15. 頑張ってやれば できるんですよ。
がんばってやれば できるんですよ。
加油的?肯定能成功的。
温馨提示: 頑張ってやれば:意思是如果能努力去做,ば形是表示假?:“如果……就……” できる: 做得到、?到、成功的意思。 ん:???气的作用,一定会成功的,一定!
16. はい、絶対勝ちます!
はい、ぜったいかちます!
是,??会?利的!
温馨提示: 勝ちます:原型是「勝つ」(かつ),?利。
17. ご協力 感謝します!
ごきょうりょく かんしゃします!
感??助(合作)!
温馨提示: ご:表示尊敬的???。 協力:有“合作、配合、?助”等意思。 ?外,援助(えんじょ):支援、援助、救援。
今天我??切地要?已?奔赴四川震区的日本救援?衷心地?一声: ご援助 心から感謝します! ごえんじょ こころからかんしゃします
衷心感?援助!
18. 気持ち悪い。 きもちわるい。
(真)?心/想吐。
温馨提示: ?句?可以是心情上不舒服,?得?的事物?自己?心 例如: 那人好?心?~:あの人は気持ち悪い~
也可以是身体上的不舒服、是真的?心、想吐~ ?里音?里??上是因?春日吃?蟹吃多了真的想吐~
19. 俺と。。付き合わないか。
おれと。。つきあわないか。
能和我……交往??
温馨提示: 付き合う:有“交往”或者“陪伴”??意思。 “俺と。。付き合わないか。”?句?当然是男生口气的?来的,要是女生如何表白??
20. 安心してください。
あんしんしてください。
温馨提示: してください:??人做…… 更加口?的?略?法是:して。 安心してください=安心して
21. じゃあ、ケロちゃん、留守番よろしくね。
じゃあ、ケロちゃん、るすばんよろしくね。
那小kero,就拜托?看家了。
22. パーティーは とっても楽しかったです。
パーティーは とってもたのしかったです。
?会真的好?心。
温馨提示: パーティー:party とっても:很,非常。是「とても」的口??法。 楽しかった:是形容?「楽しい」(?心)的?去式。用?去式是因?指??束的?会玩得很?心。 例如:今天玩得很?心:今日はとても楽しかったです。
23. 爺、しっかりしろ!爺!
じじ、しっかりしろ!じじ!
温馨提示: しっかり:振作、??。 しろ:表示是命令?气。 ?有一?常用的?法:しっかりして(?振作),女生?得比?多。
24. そんなこと言わずに、頼む!親分!
そんなことい(ゆ)わずに、たのむ!おやぶん!
不要???嘛,求?了!老大!
温馨提示: 言わずに=言わないで:不要? 言う(いう)口?中也?常?成(ゆう),??都可以。 親分:老大、?目=お頭(かしら)
25. 無茶ですよ。
むちゃですよ。
???了/??乱来了/?太乱来了。
温馨提示: 無茶:乱来、胡乱。 無茶です:就是?太乱来了,翻?成中文的?上面三?情况都是可以的,最?要表?的意思是差不多滴~
26. 背が高いですね~
せ(い)がたかいですね~
温馨提示: 背:(せ/せい)???音都可以,表示:身高、个子。 个子矮:背が低い(ひくい)
27. もう少し休んでから、帰りなさい。
もうすこしやすんでから、かえりなさい。
稍微再休息一会再回去?。
温馨提示: もう少し:再稍微,再一点点。 ??て形+から:……之后。 なさい:表示?微的命令,多用于老??学生?,或者家??孩子提出的要求。
28. あたしを待ってくださいよ。
あたしをまってくださいよ。
?就等一下我嘛。
温馨提示: あたし=わたし:女性常用,感?听起来比??气。
29. でも、驚いたなあ。
でも、おどろいたなあ。
我可是被?了一跳?。
温馨提示: 驚く(おどろく):?了一跳,?恐。
30. いや、今日は諦めます。
いや、きょうはあきらめます。
不,今天就算了。
温馨提示: 諦める:放弃、死心。
31. おもしろそうじゃん。
那不是很有趣??
温馨提示: おもしろい(面白い):有趣的。 おもしろそう:好像很有趣的?子 じゃん=じゃない,是口?的?音形式。
32. 僕は今でも 君を愛してる。
ぼくはいまでも きみをあいしてる。
我至今??着?。
温馨提示: 看到“僕”“君”,就知道一般?句?也就是男生?的了,女生的??怎???: 参考: わたしは今でも あなたを愛してる。
33. バスケットは お好きですか。
ばすけっとは おすきですか。
?喜??球??
温馨提示: バスケット=バスケットボール:?球(basketball) お好きですか前面的接??「お」表示礼貌、尊敬。
34. 羨ましいですよ。
うらやましいですよ。
真羡慕?。
温馨提示: 羨ましい:羡慕。 真羡慕?~ うらやましいですね~~
35. いいチャンスです!
いいちゃんすです!
?可是个天大的好机会!
温馨提示: チャンス:(英)chance,机会
36. あなた、ダイエットでもしてるんじゃない?
あなた、だいえっとでもしてるんじゃない?
是不是在?肥??
温馨提示: あなた:日本人一般不用第二人称直接称呼?方的,会?得很失礼,但是老??学生的?是可以的。 ダイエット(する):?肥。 でも:表示?例。 じゃない:?句?表示反?,?不是在?肥??但?成“?是不是在?肥??”也是可以的,意思一?。
37. どうすれば いい?
我?怎??才好?
温馨提示: すれば:是「する」的ば形,表示假?。
38. お前には 関係ない。
おまえには かんけいない。
跟?没?系。
温馨提示: お前:之前???是不礼貌不客气的称呼,?大家不要随便乱用哦~ に:表示?象的点,或者表示??的一个点。例如?句?里就是指的就是“?”?个?象点。 は:在?里跟“に”?用,是?了??,??“跟?没?系”的?气。 ない:当然就是指“没有、无”的意思咯~
39. 何 言ってんのよ!
なに いってんのよ!
温馨提示: ?句?灰常地口??哦!原句??是:何を言っているのよ! 在口?中,??助?的「を」?常省略; 「言っている」中的「ている」表示?在?行?咯,在口?中?常省略「い」,而?成「てる」,而?个「てる」的「る」又?常?音成「ん」,最后就?成了「言ってん」。 「の」是???气作用。 ?句???下降,表示一??怪、?解的心情。
40. うそ、こんなに真っ暗。
うそ、こんなにまっくら。
不是?,天都??黑了。
温馨提示: うそ:不是?,?人等等,表示不敢相信的感?。 こんなに:??,??,如此。 真っ暗:漆黑,(前途)黯淡,黑暗。
41. じゃあ、きっと幸せになれるわ。
じゃあ、きっとしあわせになれるわ。
那一定会?得很幸福的。
温馨提示: 幸せになる:是?得幸福。「なれる」是「なる」的可能形式,意思就是“能?得……”。 わ:是?气助?,?,呀。女性用?。
42. ねえ、ちょっと待ってよ。
ねえ、ちょっとまってよ。
等等我嘛。
43. じゃあ、決まりだな。
じゃあ、きまりだな。
那就??决定了。
温馨提示: 決まり:?里作?名?用。原形是「決まる」,意思是“决定”。 な:?气?
44. 違うみたい。
ちがうみたい。
好像??了。
温馨提示: みたい:好像……
45.嘘付け!!
うそつけ!!
骗人/说谎!
46.お腹空いた。おなかすいた。
肚子饿了。
47.勝手に 決めないで!かってに きめないで!
不要随便替我决定!温馨提示:勝手:任意,随便,为所欲为……決める:决定。ないで:请别人不要做……
48.勝手に 決めないで!かってに きめないで!
不要随便替我决定!温馨提示:勝手:任意,随便,为所欲为……決める:决定。ないで:请别人不要做……
49.だめよ、きちんと食べないと。
だめよ、きちんとたべないと。
不好好吃饭的话是不行的哦。温馨提示:きちんと:好好地,正经地动词ない形+と:不……就……这句话有种倒装的感觉,本来应该是:きちんと食べないと、だめよ。口语这种倒装是常见的,例如这里想强调“不行的”,就先说“だめよ”。类似的有:これは何?(这是什么?)口语中经常说:何、これ?
50.静かになさい!
しずかになさい!
安静!!温馨提示:静か:安静。~なさい:比命令形语气稍微缓和一点用法,一般是老师对学生、家长对孩子提出的要求。只要把动词的“ます”去掉,加“なさい”就ok!例如:说!!言いなさい!
登録:
投稿 (Atom)