<?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>args</title>
	<atom:link href="http://blog.donews.com/weastsea/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.donews.com/weastsea</link>
	<description></description>
	<lastBuildDate>Mon, 10 Apr 2006 08:37:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript特效_右键弹出菜单</title>
		<link>http://blog.donews.com/weastsea/archive/2006/04/10/820489.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2006/04/10/820489.aspx#comments</comments>
		<pubDate>Mon, 10 Apr 2006 08:37:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Java]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2006/04/10/820489.aspx</guid>
		<description><![CDATA[<p><font color="#333399">&#60;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.0 Transitional//EN&#34;&#62;<br/>&#60;HTML&#62;<br/>&#60;HEAD&#62;<br/>&#60;script language=&#34;javascript&#34;&#62;<br/>/**<br/>&#160;* PopupMenu.js<br/>&#160;* COPYRIGHT 2006, Boco Corporation<br/>**/</font></p><p><br/><font color="#333399">var bContextKey=false; <br/>function fnGetContextID(el) { <br/>while (el!=null) { <br/>if (el.contextmenu) return el.contextmenu <br/>el = el.parentElement <br/>} <br/>return &#34;&#038;quo]]></description>
			<content:encoded><![CDATA[<p><font color="#333399">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;<br/>&lt;HTML&gt;<br/>&lt;HEAD&gt;<br/>&lt;script language=&quot;javascript&quot;&gt;<br/>/**<br/>&nbsp;* PopupMenu.js<br/>&nbsp;* COPYRIGHT 2006, Boco Corporation<br/>**/</font></p>
<p><br/><font color="#333399">var bContextKey=false; <br/>function fnGetContextID(el) { <br/>while (el!=null) { <br/>if (el.contextmenu) return el.contextmenu <br/>el = el.parentElement <br/>} <br/>return &quot;&quot; <br/>} <br/>&nbsp;<br/>function fnDetermine(){ </font></p>
<p><font color="#333399">oWorkItem=event.srcElement; <br/>//键盘上的菜单键被按下时。 <br/>if(bContextKey==true){ <br/>//如果菜单的&ldquo;状态&rdquo;为&ldquo;false&rdquo; <br/>if(oContextMenu.getAttribute(&quot;status&quot;)==&quot;false&quot;){ <br/>//捕获鼠标事件，以便和页面交互。 <br/>oContextMenu.setCapture(); <br/>//根据鼠标位置，确定菜单位置。 <br/>oContextMenu.style.top=event.clientY + document.body.scrollTop + 1; <br/>oContextMenu.style.left=event.clientX + document.body.scrollLeft + 1; <br/>oContextMenu.innerHTML=&quot;&quot;; <br/>&nbsp;<br/>//设定菜单的&ldquo;状态&rdquo;为&ldquo;true&rdquo; <br/>var sContext = fnGetContextID(event.srcElement) <br/>if (sContext!=&quot;&quot;) { <br/>fnPopulate(sContext) <br/>oContextMenu.setAttribute(&quot;status&quot;,&quot;true&quot;); <br/>event.returnValue=false; <br/>} <br/>else <br/>event.returnValue=true <br/>} <br/>} <br/>else{ <br/>// 如果键盘菜单键没有按下，并且菜单的&ldquo;状态&rdquo;为&ldquo;true&rdquo;。 <br/>if(oContextMenu.getAttribute(&quot;status&quot;)==&quot;true&quot;){ <br/>if((oWorkItem.parentElement.id==&quot;oContextMenu&quot;) &amp;&amp; (oWorkItem.getAttribute(&quot;component&quot;)==&quot;menuitem&quot;))<br/>{ <br/>fnFireContext(oWorkItem) <br/>} <br/>// 当鼠标离开菜单或单击菜单项后，重设菜单（隐藏）&nbsp; <br/>oContextMenu.style.display=&quot;none&quot;; <br/>oContextMenu.setAttribute(&quot;status&quot;,&quot;false&quot;); <br/>oContextMenu.releaseCapture(); <br/>oContextMenu.innerHTML=&quot;&quot;; <br/>event.returnValue=false; <br/>} <br/>} <br/>} <br/>function fnPopulate(sID)<br/>{ <br/>var str=&quot;&quot; <br/>var elMenuRoot =&nbsp; <br/>document.all.contextDef.XMLDocument.childNodes(0).selectSingleNode(&#8216;contextmenu[@id=&quot;' + sID + '&quot;]&#8216;<br/>) <br/>if (elMenuRoot) { <br/>for(var i=0;i&lt;elMenuRoot.childNodes.length;i++) <br/>str+=&#8217;&lt;span component=&quot;menuitem&quot; menuid=&quot;&#8217; + elMenuRoot.childNodes[i].getAttribute(&quot;id&quot;) +&#8217;&quot; id=oMenuItem&#8217; + i + &#8216;&gt;&#8217; + elMenuRoot.childNodes[i].getAttribute(&quot;value&quot;) + &quot;&lt;/SPAN&gt;&lt;BR&gt;&quot; <br/>oContextMenu.innerHTML=str; <br/>oContextMenu.style.display=&quot;block&quot;; <br/>oContextMenu.style.pixelHeight = oContextMenu.scrollHeight&nbsp; <br/>} <br/>} <br/>&nbsp;<br/>function fnChirpOn(){ <br/>if((event.clientX&gt;0) &amp;&amp;(event.clientY&gt;0)&amp;&amp;(event.clientX&lt;document.body.offsetWidth)&amp;&amp;(event.clientY&lt;document.body.offsetHeight))<br/>{ <br/>oWorkItem=event.srcElement; <br/>if(oWorkItem.getAttribute(&quot;component&quot;)==&quot;menuitem&quot;){ <br/>oWorkItem.className = &quot;selected&quot; <br/>} <br/>} <br/>} <br/>function fnChirpOff(){ <br/>if((event.clientX&gt;0) &amp;&amp; (event.clientY&gt;0) &amp;&amp; (event.clientX&lt;document.body.offsetWidth) &amp;&amp;(event.clientY&lt;document.body.offsetHeight))<br/>{ <br/>oWorkItem=event.srcElement; <br/>if(oWorkItem.getAttribute(&quot;component&quot;)==&quot;menuitem&quot;){ <br/>oWorkItem.className = &quot;&quot; <br/>} <br/>} <br/>} <br/>&nbsp;<br/>&nbsp;////设置菜单样式&nbsp; <br/>function fnInit(){ <br/>if (oContextMenu) { <br/>oContextMenu.style.width=90; //菜单宽度<br/>oContextMenu.style.height=document.body.offsetHeight/2; <br/>oContextMenu.style.zIndex=2;&nbsp; <br/>document.oncontextmenu=fnSuppress; <br/>} <br/>} <br/>&nbsp;<br/>function fnInContext(el) { <br/>while (el!=null) { <br/>if (el.id==&quot;oContextMenu&quot;) return true <br/>el = el.offsetParent <br/>} <br/>return false <br/>} <br/>&nbsp;<br/>function fnSuppress(){ <br/>if (!(fnInContext(event.srcElement))) {&nbsp; <br/>oContextMenu.style.display=&quot;none&quot;; <br/>oContextMenu.setAttribute(&quot;status&quot;,&quot;false&quot;); <br/>oContextMenu.releaseCapture(); <br/>bContextKey=true; <br/>} <br/>fnDetermine(); <br/>bContextKey=false; <br/>} <br/>&nbsp;<br/>&nbsp;//////////<br/>function add_equipment(){ <br/>window.open(&quot;jsp/adddialog.jsp&quot;,&quot;addequipment&quot;,&quot;width=400,height=400,top=20,left=20&quot;) <br/>} <br/>function delete_equipment(){ <br/>window.open(&quot;jsp/deletedialog.jsp&quot;,&quot;delete&quot;,&quot;width=400,height=400,top=20,left=20&quot;) <br/>} <br/>function modify_equipment(){ <br/>window.open(&quot;jsp/modifydialog.jsp&quot;,&quot;modify&quot;,&quot;width=400,height=400,top=20,left=20&quot;) <br/>} <br/>/***** ADD ADDITIONAL&nbsp; HERE *****/<br/>///////////</font></p>
<p><font color="#333399">function fnFireContext(oItem) {&nbsp; <br/>switch (oItem.menuid) { <br/>case &quot;add&quot;: <br/>//add_equipment();<br/>break; <br/>case &quot;delete&quot;: <br/>//delete_equipment();<br/>break; <br/>case &quot;modify&quot;: <br/>//modify_equipment();<br/>break; <br/>case &quot;cancel&quot;: <br/>break; <br/>/***** ADD ADDITIONAL&nbsp; HERE *****/<br/>default: <br/>alert(&quot;菜单功能有待完善&quot; + oItem.menuid );<br/>} <br/>} </font></p>
<p><br/><font color="#333399">&lt;/script&gt;</font></p>
<p><font color="#333399">&lt;TITLE&gt; 鼠标右键弹出菜单 &lt;/TITLE&gt;</font></p>
<p><br/><font color="#333399">&lt;style&gt; <br/>.menu{&nbsp;cursor: crosshair;&nbsp; <br/>&nbsp;&nbsp;display: none;&nbsp; <br/>&nbsp;&nbsp;position: absolute;&nbsp; <br/>&nbsp;&nbsp;top: 0; left: 0;&nbsp; <br/>&nbsp;&nbsp;overflow: hidden; <br/>&nbsp;&nbsp;background-color: &quot;#CFCFCF&quot;;&nbsp; <br/>&nbsp;&nbsp;border: &quot;2 solid&quot;;&nbsp; <br/>&nbsp;&nbsp;border-top-color: &quot;#EFEFEF&quot;;&nbsp; <br/>&nbsp;&nbsp;border-left-color: &quot;#EFEFEF&quot;;&nbsp; <br/>&nbsp;&nbsp;border-right-color: &quot;#505050&quot;;&nbsp; <br/>&nbsp;&nbsp;border-bottom-color: &quot;#505050&quot;;&nbsp; <br/>&nbsp;&nbsp;font: 10pt Arial; <br/>&nbsp;&nbsp;margin:0pt;padding: 2pt <br/>} <br/>&nbsp;<br/>.menu SPAN {width: 100%; cursor: crosshair; padding-left: 10pt;padding-bottom:2px;padding-top:2px} <br/>.menu SPAN.selected {background: navy; color:white; cursor: crosshair;padding-top:2px} <br/>&lt;/style&gt; <br/>&nbsp;<br/>&lt;xml id=&quot;contextDef&quot;&gt; <br/>&nbsp;&lt;xmldata&gt; <br/>&nbsp;&nbsp;&lt;contextmenu id=&quot;menu1&quot;&gt; <br/>&nbsp;&nbsp;&nbsp;&lt;item id=&quot;add&quot; value=&quot;添加设备&quot; /&gt; <br/>&nbsp;&nbsp;&nbsp;&lt;item id=&quot;delete&quot; value=&quot;删除设备&quot; /&gt; <br/>&nbsp;&nbsp;&nbsp;&lt;item id=&quot;modify&quot; value=&quot;修改属性&quot; /&gt; <br/>&nbsp;&nbsp;&nbsp;&lt;item id=&quot;cancel&quot; value=&quot;取消&quot; /&gt; <br/>&nbsp;&nbsp;&lt;/contextmenu&gt;<br/>&nbsp;&lt;/xmldata&gt; <br/>&lt;/xml&gt; </font></p>
<p><font color="#333399">&lt;META NAME=&quot;Generator&quot; CONTENT=&quot;EditPlus&quot;&gt;<br/>&lt;META NAME=&quot;Author&quot; CONTENT=&quot;&quot;&gt;<br/>&lt;META NAME=&quot;Keywords&quot; CONTENT=&quot;&quot;&gt;<br/>&lt;META NAME=&quot;Description&quot; CONTENT=&quot;&quot;&gt;<br/>&lt;/HEAD&gt;</font></p>
<p><font color="#333399">&lt;BODY onload=&quot;fnInit()&quot; onclick=&quot;fnDetermine()&quot;&gt;</font></p>
<p><font color="#333399">&lt;div status=&quot;false&quot; onmouseover=&quot;fnChirpOn()&quot; onmouseout=&quot;fnChirpOff()&quot; id=&quot;oContextMenu&quot; class=&quot;menu&quot;&gt;&lt;/div&gt;<br/>&lt;input type=image border=0 name=&#8217;mapimage&#8217; contextmenu=&quot;menu1&quot; src=&#8217;http://www.oracle.com.cn/images/avatars/customavatar/123008.gif&#8217; &gt;<br/>&lt;/BODY&gt;<br/>&lt;/HTML&gt;<br/></font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2006/04/10/820489.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript特效_页面画线</title>
		<link>http://blog.donews.com/weastsea/archive/2006/04/10/820488.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2006/04/10/820488.aspx#comments</comments>
		<pubDate>Mon, 10 Apr 2006 08:36:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Java]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2006/04/10/820488.aspx</guid>
		<description><![CDATA[<div><font color="#333399">&#60;html xmlns:v=&#34;</font><a href="http://www.eglic.com/"><font color="#333399">http://www.eglic.com/</font></a><font color="#333399">&#34;&#62;<br/>&#60;head&#62;<br/>&#60;title&#62;页面画线&#60;/title&#62;<br/>&#60;meta name=&#34;ContentType&#34; content=&#34;text/html&#34; /&#62;<br/>&#60;meta name=&#34;CharSet&#34; content=&#34;GB2312&#34; /&#62;<br/>&#60;script language=&#34;javascript&#34;&#62;</font></div><div><font color="#333399">var Working=false;<br/>var point]]></description>
			<content:encoded><![CDATA[<div><font color="#333399">&lt;html xmlns:v=&quot;</font><a href="http://www.eglic.com/"><font color="#333399">http://www.eglic.com/</font></a><font color="#333399">&quot;&gt;<br/>&lt;head&gt;<br/>&lt;title&gt;页面画线&lt;/title&gt;<br/>&lt;meta name=&quot;ContentType&quot; content=&quot;text/html&quot; /&gt;<br/>&lt;meta name=&quot;CharSet&quot; content=&quot;GB2312&quot; /&gt;<br/>&lt;script language=&quot;javascript&quot;&gt;</font></div>
<div><font color="#333399">var Working=false;<br/>var points = [];<br/>var lastPoint = {x:0,y:0};<br/>document.ondblclick=function (){<br/>if(!Working) return;<br/>var len = getLenth();<br/>document.getElementById(&quot;show&quot;).innerHTML = &quot;折线的总长度为：&quot; + len + &quot;px&quot;;<br/>document.getElementById(&quot;show&quot;).style.display=&quot;&quot;;<br/>points = [];<br/>lastPoint = {x:0,y:0}<br/>Working=false;<br/>}<br/>document.onclick=function (){<br/>if(!Working){<br/>document.getElementById(&quot;show&quot;).style.display=&quot;none&quot;;<br/>Working=true;<br/>lastPoint.x = event.x;<br/>lastPoint.y = event.y;<br/>points.push( {x:event.x,y:event.y} );<br/>//document.getElementById(&quot;show&quot;).innerHTML += &quot;X:&quot;+ lastPoint.x + &quot; Y:&quot; + lastPoint.y;<br/>//document.getElementById(&quot;show&quot;).style.display=&quot;&quot;;<br/>}else{<br/>var s=&#8217;&lt;v:line from=&quot;&#8217;+lastPoint.x+&#8217;,'+lastPoint.y+&#8217;&quot; to=&quot;&#8217;+event.x+&#8217;,'+event.y+&#8217;&quot; style=&quot;position:absolute;left:0px;top:0px;&quot;&gt;&lt;/v:line&gt;&#8217;;<br/>lastPoint.x = event.x;<br/>lastPoint.y = event.y;<br/>points.push( {x:event.x,y:event.y} );<br/>//document.getElementById(&quot;show&quot;).innerHTML += &quot;&lt;br/&gt;X:&quot;+ event.x + &quot; Y:&quot; + event.y;<br/>//document.getElementById(&quot;show&quot;).style.display=&quot;&quot;;<br/>var o=document.createElement(s);<br/>document.body.insertAdjacentElement(&#8216;BeforeEnd&#8217;,o);<br/>}<br/>}<br/>document.onmousemove=function (){<br/>if(!Working) return;<br/>}<br/>function getLenth()<br/>{<br/>//alert(points[1].x+&quot;:&quot;+points[0].x);<br/>var len = 0;<br/>if( points.length &lt;2 ) return 0;<br/>for(var i=0;i&lt;points.length;i++)<br/>{<br/>if( points[i+1] )<br/>{<br/>var tmp = Math.pow(points[i+1].x &#8211; points[i].x,2) + Math.pow(points[i+1].y &#8211; points[i].y,2);<br/>var distance = parseInt(Math.sqrt( tmp ));<br/>len += distance;<br/>}<br/>}<br/>return len;<br/>}<br/>&lt;/script&gt;<br/>&lt;style type=&quot;text/css&quot;&gt;<br/>v\:* {behavior:url(#default#VML);}<br/>&lt;/style&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;div id=&quot;show&quot; style=&quot;border:5px solid #000;width:200px;height:30px;line-height:30px;text-align:center;display:none&quot;&gt;<br/>&lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/></font></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2006/04/10/820488.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于框架</title>
		<link>http://blog.donews.com/weastsea/archive/2005/09/29/572080.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2005/09/29/572080.aspx#comments</comments>
		<pubDate>Thu, 29 Sep 2005 10:07:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Java]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2005/09/29/572080.aspx</guid>
		<description><![CDATA[JSF是一种事件驱动型的组件模型，而Struts只是单纯的MVC模式框架,都属于表现层框架.]]></description>
			<content:encoded><![CDATA[<p>JSF是一种事件驱动型的组件模型，而Struts只是单纯的MVC模式框架,都属于表现层框架.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2005/09/29/572080.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Struts起源</title>
		<link>http://blog.donews.com/weastsea/archive/2005/09/29/572041.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2005/09/29/572041.aspx#comments</comments>
		<pubDate>Thu, 29 Sep 2005 09:22:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Java]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2005/09/29/572041.aspx</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160; Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目，它采用MVC模式，能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样，Struts 也是面向对象设计，将MVC模式&#34;分离显示逻辑和业务逻辑&#34;的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层，基于如 Java Servlets，JavaBeans，ResourceBundles与XML等标准技术，以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类（组件）、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准，可以说是一个传统 MVC设计模式的一种变化类型。　　Struts有其自己的控制器（Controller），同时整合了其他的一些技术去实现模型层（Model）和视图层（View）。在模型层，Struts可以很容易的与数据访问技术相结合，如 ]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目，它采用MVC模式，能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样，Struts 也是面向对象设计，将MVC模式&quot;分离显示逻辑和业务逻辑&quot;的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层，基于如 Java Servlets，JavaBeans，ResourceBundles与XML等标准技术，以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类（组件）、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准，可以说是一个传统 MVC设计模式的一种变化类型。<br/>　　Struts有其自己的控制器（Controller），同时整合了其他的一些技术去实现模型层（Model）和视图层（View）。在模型层，Struts可以很容易的与数据访问技术相结合，如 JDBC / EJB ，以及其它第三方类库，如 Hibernate / iBATIS ，或者 Object Relational Bridge(对象关系桥)。在视图层，Struts能够与JSP，包括 JSTL 与 JSF，以及 Velocity 模板，XSLT 与其它表示层技术。Struts 为每个专业的 Web 应用程序做背后的支撑，帮助为你的应用创建一个扩展的开发环境</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2005/09/29/572041.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从一个字符串中取出需要的子串</title>
		<link>http://blog.donews.com/weastsea/archive/2005/05/23/394052.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2005/05/23/394052.aspx#comments</comments>
		<pubDate>Mon, 23 May 2005 06:08:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#C/C++]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2005/05/23/394052.aspx</guid>
		<description><![CDATA[<p>#include &#60;assert.h&#62;<br/>#include &#60;string.h&#62;<br/>/**<br/>&#160;* name: strFrom<br/>&#160;* desc: 根据起始位置从一个字符串中取出需要的子串<br/>&#160;*&#160;&#160;&#160;&#160; <br/>&#160;*/</p><p>char * strFrom (const char * strSource,int m, int n)<br/>{<br/>&#160;assert(strSource!=NULL&#38;&#38;m+1&#60;n&#38;&#38;m&#62;=0);<br/>&#160;char * result=new char[n-m];<br/>&#160;char * address=result;<br/>&#160;for(int i=0; i&#60;(int )strlen(strSource);i++){<br/>&#160;&#160;&#160;&#160; if(i&#60;n &#38;&#38; i&#038;g]]></description>
			<content:encoded><![CDATA[<p>#include &lt;assert.h&gt;<br/>#include &lt;string.h&gt;<br/>/**<br/>&nbsp;* name: strFrom<br/>&nbsp;* desc: 根据起始位置从一个字符串中取出需要的子串<br/>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;*/</p>
<p>char * strFrom (const char * strSource,int m, int n)<br/>{<br/>&nbsp;assert(strSource!=NULL&amp;&amp;m+1&lt;n&amp;&amp;m&gt;=0);<br/>&nbsp;char * result=new char[n-m];<br/>&nbsp;char * address=result;<br/>&nbsp;for(int i=0; i&lt;(int )strlen(strSource);i++){<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(i&lt;n &amp;&amp; i&gt;m)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *result++=strSource[i];<br/>&nbsp;}<br/>&nbsp;*result=&#8217;\0&#8242;;<br/>&nbsp;return address;<br/>}</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2005/05/23/394052.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据迁移 DB2 ORACLE</title>
		<link>http://blog.donews.com/weastsea/archive/2005/04/15/337429.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2005/04/15/337429.aspx#comments</comments>
		<pubDate>Fri, 15 Apr 2005 11:30:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2005/04/15/337429.aspx</guid>
		<description><![CDATA[&#160;


1 sqlldr用于将格式化的文本数据上载到表中去以表emp为例控制文件(*.ctl) 将加载一个外部数据文件*.*（含分隔符）.


解决NULL的问题


load data


infile &#8216;MinZhengData\tb_district.cvs&#8217;


into table tb_district


fields terminated by &#34;,&#34;OPTIONALLY ENCLOSED BY &#8216;&#34;&#8217;


TRAILING NULLCOLS&#160; 


(areacode,name,doc)


load data infile &#8216;c:\data\mydata.csv&#8217; into table emp fields terminated by &#34;,&#34; optionally enclosed by &#8216;&#34;&#8217; ( empno, empname, sal, deptno )


mydata.csv 如下: 10001,&#34;Scott Tiger&#34;, 1000, 40 10002,&#34;Frank Naude&#34;, 500, 20


首先编写一个控制命令的脚本文件emp.ctl,内容如下：load dataappend into table empfields terminated by &#8216;&#124;&#8217;(no float external,name char(20),age integer [...]]]></description>
			<content:encoded><![CDATA[<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><b><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: navy; mso-bidi-font-size: 12.0pt"><font face="宋体">1 sqlldr</font></span></b><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><br/><font face="宋体">用于将格式化的文本数据上载到表中去<br/><br/>以表emp为例<br/>控制文件(*.ctl) 将加载一个外部数据文件*.*（含分隔符）.
</p>
<p></font></span></p>
<p><span style="FONT-SIZE: 10.5pt; COLOR: maroon; mso-bidi-font-size: 12.0pt"><font face="宋体">解决<span lang="EN-US">NULL的问题
</p>
<p></span></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">load data
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">infile &#8216;MinZhengData\tb_district.cvs&#8217;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">into table tb_district
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">fields terminated by &quot;,&quot;OPTIONALLY ENCLOSED BY &#8216;&quot;&#8217;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">TRAILING NULLCOLS<span style="mso-spacerun: yes">&nbsp; </span>
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">(areacode,name,doc)
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">load data <br/>infile &#8216;c:\data\mydata.csv&#8217; <br/>into table emp <br/>fields terminated by &quot;,&quot; optionally enclosed by &#8216;&quot;&#8217; <br/>( empno, empname, sal, deptno )
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">mydata.csv 如下: <br/>10001,&quot;Scott Tiger&quot;, 1000, 40 <br/>10002,&quot;Frank Naude&quot;, 500, 20
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><br/><font face="宋体">首先编写一个控制命令的脚本文件emp.ctl,内容如下：<br/><br/>load data<br/>append into table emp<br/>fields terminated by &#8216;|&#8217;<br/>(<br/>no float external,<br/>name char(20),<br/>age integer external,<br/>duty char(1),<br/>salary float external,<br/>upd_ts date(14) &#8216;YYYYMMDDHH24MISS&#8217;<br/>)<br/><br/>括号里对数据文件里每个数据域进行解释，以此在上载时与目标表进行比对。<br/><br/>除了append外，还有insert、replace、truncate等方式，与append大同小异，不作更多的解释。<br/><br/>再将上载数据组织成数据文件，通常以dat结尾，emp.dat内容如下：<br/><br/><br/>100000000001|Tom|000020|1|000000005000|20020101000000<br/><br/>100000000002|Jerry|000025|2|000000008000|20020101235959<br/><br/>分隔符要与ctl文件中fields terminated by指定的一致，这个例子中为&quot;|&quot;<br/><br/>▲<b><span style="COLOR: navy">ctl和dat文件就绪后可以执行上载，命令为：</span></b><br/><br/>sqlldr dbuser/oracle control=emp.ctl data=emp.dat
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&quot;*&quot; 代表数据文件与此文件同名，即在后面使用BEGINDATA段来标识数据。<br/>也可以将dat文件合并在ctl文件中，ctl文件emp2.ctl改写为：<br/><br/>load data<br/><br/>infile *<br/><br/>append<br/><br/>into table emp<br/><br/>fields terminated by &#8216;|&#8217;<br/><br/>(<br/><br/>no float external,<br/><br/>name char(20),<br/><br/>age integer external,<br/><br/>duty char(1),<br/><br/>salary float external,<br/><br/>upd_ts date(14) &#8216;YYYYMMDDHH24MISS&#8217;<br/><br/>)<br/><br/>begindata<br/><br/>100000000003|Mulder|000020|1|000000005000|20020101000000<br/><br/>100000000004|Scully|000025|2|000000008000|20020101235959<br/><br/>控制文件中infile选项跟sqlldr命令行中data选项含义相同，如使用infile *则表明数据在本控制文件以begin data开头的区域内。<br/><br/>这样命令变成：<br/><br/>sqlldr dbuser/oracle control=emp2.ctl<br/><br/>conventional path 通过常规通道方式上载。<br/><br/>rows：每次提交的记录数<br/><br/>bindsize：每次提交记录的缓冲区<br/><br/>readsize：与bindsize成对使用，其中较小者会自动调整到较大者<br/><br/>sqlldr先计算单条记录长度，乘以rows，如小于bindsize，不会试图扩张rows以填充bindsize；如超出，则以bindsize为准。<br/><br/>命令为：<br/><br/>sqlldr dbuser/oracle control=emp.ctl log=emp.log rows=10000 bindsize=8192000<br/><br/>direct path 通过直通方式上载，不进行SQL解析。<br/><br/>命令为：<br/><br/>sqlldr dbuser/oracle control=emp.ctl log=emp.log direct=true<br/><br/><b><span style="COLOR: navy">2 exp</span> </b><br/><br/>将数据库内的各对象以二进制方式下载成dmp文件，方便数据迁移。<br/><br/>buffer：下载数据缓冲区，以字节为单位，缺省依赖操作系统
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">consistent：下载期间所涉及的数据保持read only，缺省为n<br/>direct：使用直通方式 ，缺省为n<br/>feeback：显示处理记录条数，缺省为0，即不显示<br/>file：输出文件，缺省为expdat.dmp<br/>filesize：输出文件大小，缺省为操作系统最大值<br/>indexes：是否下载索引，缺省为n，这是指索引的定义而非数据，exp不下载索引数据<br/>log：log文件，缺省为无，在标准输出显示<br/>owner：指明下载的用户名<br/>query：选择记录的一个子集<br/>rows：是否下载表记录<br/>tables：输出的表名列表<br style="mso-special-character: line-break"/><br style="mso-special-character: line-break"/>
</p>
<p></font></span></p>
<p><span style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">下载整个实例</font><span lang="EN-US"><br/><font face="宋体">exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y direct=y<br/><br/>user应具有dba权限<br/><br/>下载某个用户所有对象<br/><br/>exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000<br/><br/>下载一张或几张表<br/><br/>exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=4096000 feedback=10000<br/><br/>下载某张表的部分数据<br/><br/>exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1 buffer=4096000 feedback=10000 query=\&quot;where col1=\&#8217;&hellip;\&#8217; and col2 \&lt;&hellip;&quot;<br/><br/>不可用于嵌套表<br/><br/>以多个固定大小文件方式下载某张表<br/><br/>exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,&hellip; filesize=1000m tables=emp buffer=4096000 feedback=10000<br/><br/>这种做法通常用在：表数据量较大，单个dump文件可能会超出文件系统的限制<br/><br/>直通路径方式<br/><br/>direct=y，取代buffer选项，query选项不可用<br/><br/>有利于提高下载速度<br/><br/>consistent选项<br/><br/>自export启动后，consistent=y冻结来自其它会话的对export操作的数据对象的更新，这样可以保证dump结果的一致性。但这个过程不能太长，以免回滚段和联机日志消耗完<br/><br/>3 imp<br/><span style="mso-spacerun: yes">&nbsp;</span><br/><br/>将exp下载的dmp文件上载到数据库内。<br/><br/>buffer：上载数据缓冲区，以字节为单位，缺省依赖操作系统<br/><br/>commit：上载数据缓冲区中的记录上载后是否执行提交<br/><br/>feeback：显示处理记录条数，缺省为0，即不显示<br/><br/>file：输入文件，缺省为expdat.dmp<br/><br/>filesize：输入文件大小，缺省为操作系统最大值<br/><br/>fromuser：指明来源用户方<br/><br/>ignore：是否忽略对象创建错误，缺省为n，在上载前对象已被建立往往是一个正常现象，所以此选项建议设为y<br/><br/>indexes：是否上载索引，缺省为n，这是指索引的定义而非数据，如果上载时索引已建立，此选项即使为n也无效，imp自动更新索引数据<br/><br/>log：log文件，缺省为无，在标准输出显示<br/><br/>rows：是否上载表记录<br/><br/>tables：输入的表名列表<br/><br/>touser：指明目的用户方<br/><br/>上载整个实例<br/><br/>imp dbuser/oracle file=oradb.dmp log=oradb.log full=y buffer=4096000 commit=y ignore=y feedback=10000<br/><br/>上载某个用户所有对象<br/><br/>imp dbuser/oracle file=dbuser.dmp log=dbuser.log fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000<br/><br/>上载一张或几张表<br/><br/>imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2 fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000<br/><br/>以多个固定大小文件方式上载某张表<br/><br/>imp dbuser/oracle file=\(1.dmp,2.dmp,3.dmp,&hellip;\) filesize=1000m tables=emp fromuser=dbuser touser=dbuser2 buffer=4096000 commit=y ignore=y feedback=10000
</p>
<p></font></span></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">&nbsp;
</p>
<p></font></span></p>
<p><span style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">以文本形式下载表数据<span lang="EN-US">
</p>
<p></span></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt">Oracle </span><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font face="宋体">没有提供将数据导出到一个文件的工具。但是，我们可以用</font></span><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt">SQL*Plus</span><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font face="宋体">的</font></span><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt">select </span><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font face="宋体">及</font></span><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt"> format </span><font face="宋体"><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia">数据来输出到一个文件</span><span style="COLOR: #333333; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font size="3">：</font></span><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia">当然你也可以使用第三方工具，如</span></font><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt">SQLWays ,TOAD for Quest</span><font face="宋体"><span style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia">等</span><span lang="EN-US" style="COLOR: #333333; FONT-FAMILY: Georgia">
</p>
<p></span></font></p>
<p><span lang="EN-US" style="COLOR: #333333; FONT-FAMILY: Georgia"><font size="3">/**
</p>
<p></font></span></p>
<p><span style="FONT-SIZE: 9pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font face="宋体">另外，也可以使用使用</font></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt"> UTL_FILE PL/SQL </span><span style="FONT-SIZE: 9pt; COLOR: #333333; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia"><font face="宋体">包处理</font></span><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #333333; FONT-FAMILY: Georgia; mso-bidi-font-size: 12.0pt">: <br/>rem Remember to update initSID.ora, utl_file_dir=&#8217;c:\oradata&#8217; parameter <br/>declare <br/>fp utl_file.file_type; <br/>begin <br/>fp := utl_file.fopen(&#8216;c:\oradata&#8217;,'tab1.txt&#8217;,'w&#8217;); <br/>utl_file.putf(fp, &#8216;%s, %s\n&#8217;, &#8216;TextField&#8217;, 55); <br/>utl_file.fclose(fp); <br/>end;
</p>
<p></span></p>
<p><span lang="EN-US" style="COLOR: #333333; FONT-FAMILY: Georgia"><font size="3">*/</font></span><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><br/><font face="宋体">&#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;-<br/>sqlplus -s dbuser/oracle &lt;/dev/null<br/><br/>set colsep |;<br/><br/>set echo off;<br/><br/>set feedback off;<br/><br/>set heading off;<br/><br/>set pagesize 0;<br/><br/>set linesize 1000;<br/><br/>set numwidth 12;<br/><br/>set termout off;<br/><br/>set trimout on; <br/><br/>set trimspool on;<br/><br/>spool tmp.txt;<br/><br/>select * from emp;<br/><br/>spool off;<br/><br/>exit<br/><br/>EOF<br/><br/></font></span><b><span lang="EN-US" style="FONT-SIZE: 14pt; COLOR: navy; mso-bidi-font-size: 12.0pt"><font face="宋体">tr -d &lsquo; &rsquo;&lt; tmp.txt &gt;emp.txt 删除空格，可选</font></span></b><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><br/><font face="宋体">tr &ndash;d &lsquo; &rsquo; oldOra.txt
</p>
<p></font></span></p>
<p><b><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: navy; mso-bidi-font-size: 12.0pt"><font face="宋体">tr -d &#8216; &#8216; &lt;tb_resident.cvs&gt;sss.txt
</p>
<p></font></span></b></p>
<p><span style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">注意：一定要用<span lang="EN-US">spool，如果在命令行中直接用&gt;tmp.txt可能会造成数据缺失，至少在Unixware7上如此
</p>
<p></span></font></span></p>
<p><span style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt"><font face="宋体">另：<span lang="EN-US">
</p>
<p></span></font></span></p>
<p><font face="宋体"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt">set </span><span lang="EN-US" style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 12.0pt">colsep | <span style="COLOR: #333333">echo off newpage 0 space 0 pagesize 0 feed off head off trimspool on
</p>
<p></span></span></font></p>
<p><b><span style="FONT-SIZE: 16pt; COLOR: navy; mso-bidi-font-size: 12.0pt"><font face="宋体">附录<span lang="EN-US">B
</p>
<p></span></font></span></b></p>
<p><font size="3"><font face="宋体"><span style="COLOR: navy">利用<span lang="EN-US">Sqlldr导入数据的时候，保持*.dat中没有空白，否则失败内伤。</span></span><span lang="EN-US" style="COLOR: #333333">
</p>
<p></span></font></font></p>
<p style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; tab-stops: list 18.0pt; mso-list: l0 level1 lfo2"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333"><font face="宋体">a、</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp; </span></span><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333"><font face="宋体">insert，为缺省方式，在数据装载开始时要求表为空 <br/>b、append，在表中追加新记录 <br/>c、replace替换
</p>
<p></font></span></p>
<p><span style="FONT-SIZE: 10.5pt; COLOR: maroon"><font face="宋体">注意<span lang="EN-US">NULL的问题
</p>
<p></span></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: maroon"><font face="宋体">2所有的字段大写 如果与保留字冲突 加引号就好了
</p>
<p></font></span></p>
<p><font face="宋体"><span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #333333; FONT-FAMILY: &quot;&quot;">trailing nullcols </span><span style="FONT-SIZE: 11pt; COLOR: #333333; mso-ascii-font-family: &quot;&quot;; mso-hansi-font-family: &quot;&quot;">表示遇到空字段依然写入到数据库表中</span><span lang="EN-US" style="FONT-SIZE: 11pt; COLOR: #333333; FONT-FAMILY: &quot;&quot;">
</p>
<p></span></font></p>
<p style="mso-outline-level: 1"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt"><font face="宋体">Runtime.getRuntime().exec(
</p>
<p></font></span></p>
<p style="TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt"><font face="宋体">&quot;cmd /c sqlplus bl/bl@egovdev_172.20.20.1 @sqlplus.txt&quot;);
</p>
<p></font></span></p>
<p style="mso-outline-level: 1"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; mso-bidi-font-size: 12.0pt"><font face="宋体"><span style="mso-spacerun: yes">&nbsp;</span>Runtime.getRuntime().exec(
</p>
<p></font></span></p>
<p><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: &quot;Times New Roman&quot;; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;cmd /c sqlldr blrkk/blrkk@oracle9i control=sqlldr.ctl direct=t</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2005/04/15/337429.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据库迁移 BL</title>
		<link>http://blog.donews.com/weastsea/archive/2005/04/15/336663.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2005/04/15/336663.aspx#comments</comments>
		<pubDate>Fri, 15 Apr 2005 02:45:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Java]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2005/04/15/336663.aspx</guid>
		<description><![CDATA[<p>Following is an example of the EXPORT command issued through the CLP: <br/>db2 export to staff.ixf of ixf select * from userid.staff&#160; <br/>db2 export to basetable.del of del select * from&#160; db2admin.basetable</p><p>exp <a href="mailto:scott/tiger@oracle9i">scott/tiger@oracle9i</a> file = scott.dmp owner = scott<br/>exp <a href="mailto:bl/bl@egovdev_172.20.20.1">bl/bl@egovdev_172.20.20.1</a> file=bl.dmp owner=bl<br/>imp <a href="mailto:blrkk/blrkk@oracle9i">blrkk/blrkk@oracle9i</a>&#038;nb]]></description>
			<content:encoded><![CDATA[<p>Following is an example of the EXPORT command issued through the CLP: <br/>db2 export to staff.ixf of ixf select * from userid.staff&nbsp; <br/>db2 export to basetable.del of del select * from&nbsp; db2admin.basetable</p>
<p>exp <a href="mailto:scott/tiger@oracle9i">scott/tiger@oracle9i</a> file = scott.dmp owner = scott<br/>exp <a href="mailto:bl/bl@egovdev_172.20.20.1">bl/bl@egovdev_172.20.20.1</a> file=bl.dmp owner=bl<br/>imp <a href="mailto:blrkk/blrkk@oracle9i">blrkk/blrkk@oracle9i</a>&nbsp;&nbsp; file=bl.dmp fromuser=blrkk tables=(tb_floating,tb_resident)<br/>//jar cvf demo.jar demo</p>
<p>&lt;%<br/>Runtime.getRuntime(). exec(&quot; c:\\Program Files\\Microsoft Office\\office\\winword.exe <a href="file://\\a.doc">\\a.doc</a>&quot;);<br/>Runtime.getRuntime().exec(&quot;cmd.exe&nbsp; /c start notepad&quot;); //打开写字版<br/>&nbsp;String path = &quot;c:/a.txt&quot;;<br/>&nbsp;Runtime.getRuntime().exec(&quot;cmd.exe&nbsp; /c start notepad \&quot;&quot; + path + &quot;\&quot;&quot;); ///打开文件<br/>%</p>
<p>telnet informix服务器执行以下操作:</p>
<p>1.&nbsp; #dbaccess 回车.<br/>2.&nbsp; 按&ldquo;Q&rdquo;键，出现select database 界面.<br/>3.&nbsp; 按&ldquo;Ctrl+L&rdquo;组合键,选择数据库<a href="mailto:“file@servername">&ldquo;file@servername</a>&rdquo; <br/>4.&nbsp; 按&quot;N&quot;键进入SQL语句编写界面.<br/>5.&nbsp; 把SQL语句:&nbsp;&nbsp;&nbsp;&nbsp; unload to &#8216;ts_fileinfo&#8217; select * from ts_fileinfo; <br/>//&nbsp; 如果把生成的文件放到其他目录,For Example:<br/>//&nbsp; unload to &#8216;/opt/informix/tmp/ts_fileinfo&#8217; select * from ts_fileinfo;<br/>6.&nbsp; 按&ldquo;ESC&rdquo;键,保存输入的SQL语句.<br/>7.&nbsp; 按&ldquo;R&rdquo;键,执行SQL语句,在屏幕的下方会出现提示信息.<br/>8.&nbsp; 按&ldquo;E&rdquo;键,退出.<br/>9.&nbsp; 再次执行步骤1&#8211;8, 只是在执行步骤3 的时候,选择数据库<a href="mailto:”filetrans2003@servername">&rdquo;filetrans2003@servername</a>&ldquo;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 在步骤5的时候把SQL语句改为:&nbsp;&nbsp; load from &#8216;ts_fileinfo&#8217;&nbsp; insert into ts_fileinfo;<br/>10. 退出服务器,执行结束</p>
<p>在数据库filetrans2003的表 ts_sendednote 中<br/>sn_rdate 的数据类型是 &ldquo;datetime year to second&rdquo; <br/>而在原数据库file中是date 类型,<br/>我们在建新库的时候,为了使数据能顺利的导入新库,所以把&ldquo;sn_rdate&rdquo;的数据类型暂时改为:&quot;date&quot;. 在整个数据库导入结束之后,再利用SQL语句&ldquo;<br/>ALTER TABLE ts_sendednote MODIFY (sn_rdate datetime year to second);&nbsp; &rdquo;把数据类型改成程序需要的类型。<br/></p>
<p>spool oldOra.txt;<br/>select id,name from tb_resident;<br/>spool off;</p>
<p>sqlplus <a href="mailto:bl/bl@egovdev_172.20.20.1">bl/bl@egovdev_172.20.20.1</a></p>
<p>set colsep |;<br/>set echo off;<br/>set feedback off;<br/>set heading off;<br/>set pagesize 0;<br/>set linesize 1000;<br/>set numwidth 8;<br/>set termout off;<br/>set trimout on; <br/>set trimspool on;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2005/04/15/336663.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>unload/load的使用</title>
		<link>http://blog.donews.com/weastsea/archive/2004/12/09/198086.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2004/12/09/198086.aspx#comments</comments>
		<pubDate>Thu, 09 Dec 2004 03:27:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Informix]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2004/12/09/198086.aspx</guid>
		<description><![CDATA[<font color="#000080" size="2">在处理BLOB时，需要用dbaccess命令， 在服务器上执行load</font>]]></description>
			<content:encoded><![CDATA[<p><font color="#000080" size="2">在处理BLOB时，需要用dbaccess命令， 在服务器上执行load</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2004/12/09/198086.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQ*LPlus 命令</title>
		<link>http://blog.donews.com/weastsea/archive/2004/10/22/144392.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2004/10/22/144392.aspx#comments</comments>
		<pubDate>Fri, 22 Oct 2004 08:49:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Oracle]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2004/10/22/144392.aspx</guid>
		<description><![CDATA[<p><font color="#000080" size="2">show和set命令是两条用于维护SQL*Plus系统变量的命令</font></p><p><font color="#000080" size="2">SQL&#62; show all --查看所有68个系统变量值<br/>SQL&#62; show user --显示当前连接用户<br/>SQL&#62; show error　　　--显示错误<br/>SQL&#62; set heading off --禁止输出列标题，默认值为ON<br/>SQL&#62; set feedback off --禁止显示最后一行的计数反馈信息，默认值为&#34;对6个或更多的记录，回送ON&#34;<br/>SQL&#62; set timing on --默认为OFF，设置查询耗时，可用来估计SQL语句的执行时间，测试性能<br/>SQL&#62; set sqlprompt &#34;SQL&#62; &#34; --设置默认提示符，默认值就是&#34;SQL&#62; &#34;<br/>SQL&#62; set linesiz]]></description>
			<content:encoded><![CDATA[<p><font color="#000080" size="2">show和set命令是两条用于维护SQL*Plus系统变量的命令</font></p>
<p><font color="#000080" size="2">SQL&gt; show all &#8211;查看所有68个系统变量值<br/>SQL&gt; show user &#8211;显示当前连接用户<br/>SQL&gt; show error　　　&#8211;显示错误<br/>SQL&gt; set heading off &#8211;禁止输出列标题，默认值为ON<br/>SQL&gt; set feedback off &#8211;禁止显示最后一行的计数反馈信息，默认值为&quot;对6个或更多的记录，回送ON&quot;<br/>SQL&gt; set timing on &#8211;默认为OFF，设置查询耗时，可用来估计SQL语句的执行时间，测试性能<br/>SQL&gt; set sqlprompt &quot;SQL&gt; &quot; &#8211;设置默认提示符，默认值就是&quot;SQL&gt; &quot;<br/>SQL&gt; set linesize 1000 &#8211;设置屏幕显示行宽，默认100<br/>SQL&gt; set autocommit ON &#8211;设置是否自动提交，默认为OFF<br/>SQL&gt; set pause on &#8211;默认为OFF，设置暂停，会使屏幕显示停止，等待按下ENTER键，再显示下一页<br/>SQL&gt; set arraysize 1 &#8211;默认为15<br/>SQL&gt; set long 1000 &#8211;默认为80</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2004/10/22/144392.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PL/SQL数据类型</title>
		<link>http://blog.donews.com/weastsea/archive/2004/10/22/144330.aspx</link>
		<comments>http://blog.donews.com/weastsea/archive/2004/10/22/144330.aspx#comments</comments>
		<pubDate>Fri, 22 Oct 2004 08:09:00 +0000</pubDate>
		<dc:creator>Modao</dc:creator>
				<category><![CDATA[#Oracle]]></category>

		<guid isPermaLink="false">http://blog.donews.com/weastsea/archive/2004/10/22/144330.aspx</guid>
		<description><![CDATA[<a name="333"><strong><font color="#000080" size="2">PL/SQL数据类型</font></strong></a> <table cellspacing="0" cellpadding="0" width="576" border="1"><tbody><tr><td valign="top" width="140"><p align="justify"><font color="#000080" size="2">名称</font></p></td><td valign="top" width="71"><p align="justify"><font color="#000080" size="2">类型</font></p></td><td valign="top" width="359"><p align="justify"><font color="#000080" size="2">说明</font></p></td></tr><tr><td valign="top" width="140"><font face="Tim]]></description>
			<content:encoded><![CDATA[<p><a name="333"><strong><font color="#000080" size="2">PL/SQL数据类型</font></strong></a><br />
<table cellspacing="0" cellpadding="0" width="576" border="1">
<tbody>
<tr>
<td valign="top" width="140">
<p align="justify"><font color="#000080" size="2">名称</font></p>
</td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">类型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">说明</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">能存放整数值和实数值，并且可以定义精度和取值范围</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">BINARY_INTEGER</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">可存储带符号整数，为整数计算优化性能</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">DEC</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font face="宋体, MS Song" color="#000080" size="2">的子类型，小数</font></p>
<p></font><font face="宋体, MS Song" color="#000080" size="2">的子类型，小数</font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">DOUBLE PRECISION</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font face="宋体, MS Song" color="#000080" size="2">的子类型，高精度实数</font></p>
<p></font><font face="宋体, MS Song" color="#000080" size="2">的子类型，高精度实数</font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">INTEGER</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font face="宋体, MS Song" color="#000080" size="2">的子类型，整数</font></p>
<p></font><font face="宋体, MS Song" color="#000080" size="2">的子类型，整数</font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">INT</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font face="宋体, MS Song" color="#000080" size="2">的子类型，整数</font></p>
<p></font><font face="宋体, MS Song" color="#000080" size="2">的子类型，整数</font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMERIC</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，与</font><font face="Times New Roman">NUMBER</font><font face="宋体, MS Song">等价</font></font></font></p>
<p></font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，与</font><font face="Times New Roman">NUMBER</font><font face="宋体, MS Song">等价</font></font></font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">REAL</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，与</font><font face="Times New Roman">NUMBER</font><font face="宋体, MS Song">等价</font></font></font></p>
<p></font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，与</font><font face="Times New Roman">NUMBER</font><font face="宋体, MS Song">等价</font></font></font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">SMALLINT</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">数字型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">NUMBER</font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，取值范围比</font><font face="Times New Roman">INTEGER</font><font face="宋体, MS Song">小</font></font></font></p>
<p></font><font color="#000080"><font size="2"><font face="宋体, MS Song">的子类型，取值范围比</font><font face="Times New Roman">INTEGER</font><font face="宋体, MS Song">小</font></font></font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">VARCHAR2</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">字符型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">存放可变长字符串，有最大长度</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">CHAR</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">字符型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">定长字符串</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">LONG</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">字符型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080"><font size="2">变长字符串，最大长度可达<font face="Times New Roman">32,767</font></font></font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">DATE</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">日期型</font></p>
</td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">以数据库相同的格式存放日期值</font></p>
</td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">BOOLEAN</font></p>
<p></font></td>
<td valign="top" width="71">
<p align="justify"><font color="#000080" size="2">布尔型</font></p>
</td>
<td valign="top" width="359"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">TRUE OR FALSE</font></p>
<p></font></td>
</tr>
<tr>
<td valign="top" width="140"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">ROWID</font></p>
<p></font></td>
<td valign="top" width="71"><font face="Times New Roman">
<p align="justify"><font color="#000080" size="2">ROWID</font></p>
<p></font></td>
<td valign="top" width="359">
<p align="justify"><font color="#000080" size="2">存放数据库的行号</font></p>
</td>
</tr>
</tbody>
</table>
<p><font color="#000080" size="2">例子：<br/></font><font face="Times New Roman" color="#000080" size="2">DECLARE<br/>&nbsp;&nbsp;&nbsp; ORDER_NO NUMBER(3);<br/>&nbsp;&nbsp;&nbsp; CUST_NAME VARCHAR2(20);<br/>&nbsp;&nbsp;&nbsp; ORDER_DATE DATE;<br/>&nbsp;&nbsp;&nbsp; EMP_NO INTEGER:=25;<br/>&nbsp;&nbsp;&nbsp; PI CONSTANT NUMBER:=3.1416;<br/>BEGIN<br/>&nbsp; NULL;<br/>END;</font><font face="Times New Roman" size="1"><br/></font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/weastsea/archive/2004/10/22/144330.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

