<?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>Read ERN &#187; Oracle</title>
	<atom:link href="http://www.readern.com/tag/oracle/feed" rel="self" type="application/rss+xml" />
	<link>http://www.readern.com</link>
	<description>生命不息折腾不止</description>
	<lastBuildDate>Sun, 29 Aug 2010 12:25:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.readern.com/wordpress/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>[重发]Pro*C实现导出Oracle表为文本文件</title>
		<link>http://www.readern.com/export-oracle-table-to-flat-text-in-proc.html</link>
		<comments>http://www.readern.com/export-oracle-table-to-flat-text-in-proc.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 00:49:32 +0000</pubDate>
		<dc:creator>ern</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[导出]]></category>
		<category><![CDATA[文本文件]]></category>

		<guid isPermaLink="false">http://www.readern.com/?p=157</guid>
		<description><![CDATA[旧文重发，原文刊载于2006年6月8日。 近日工作需要，要大批量导出数据，开始用SQL*Plus的SPOOL功能。结果老是提示“xrealloc: cannot reallocate XXX bytes”。而且每次发生的时间还不同，有时候是到文件1G就出错，有时候是2G多出错。怀疑是32位Linux问题，换到Solaris 8上还是如故。客户端都是9201的，到Metalink上搜索没有结果。郁闷之余到Oracle-l上发了个邮件，收到一位高手的指点，说可能是内存泄露问题，SQL*Plus的开发人员估计也不会想到有人会导出如此大量数据。在邮件往复之间，那位高手提醒可以用UTL_FILE来导出。忽然想起Tom的两本书里都有提到用PL/SQL来导出，于是翻出书里的那个网址http://asktom.oracle.com/~tkyte/flat/index.html，进去一看，PL/SQL的效率比SQL*Plus要高，缺点是生成的文件必须在主机上。SQL*Plus可以调整arraysize来提高效率（当然经我实践大数据量时还有内存泄露之虞）。Pro*C是高效的方法，缺点是需要写程序、编译。 硬着头皮看Pro*C咯，好在Tom给了原始代码，抓下来放到一台Linux的机器上proc报错，应该是proc配置include库的问题，找到一个makefile，倒是没啥问题了，但是最后链接失败，报无法识别&#8217;sqlca&#8217;。到网上一搜，和我一样晕的人还有，要修改代码，多include进，但是看Tom的帖子似乎没提到这个问题，不知道为什么。 下面是修改后的源代码，我顺便在里面修改了会话的一些参数，以处理中文和时间格式： #include #include #include #include #define MAX_VNAME_LEN     30 #define MAX_INAME_LEN     30 static char *   USERID = NULL; static char *   SQLSTMT = NULL; static char *   ARRAY_SIZE = "10"; #define vstrcpy( a, b ) \ (strcpy( a.arr, b ), a.len = strlen( a.arr ), a.arr) EXEC SQL [...]]]></description>
		<wfw:commentRss>http://www.readern.com/export-oracle-table-to-flat-text-in-proc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[重发]如何真正NOLOGGING</title>
		<link>http://www.readern.com/oracle-nologging.html</link>
		<comments>http://www.readern.com/oracle-nologging.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 00:40:18 +0000</pubDate>
		<dc:creator>ern</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[nologging]]></category>

		<guid isPermaLink="false">http://www.readern.com/?p=152</guid>
		<description><![CDATA[旧文重发，原文发表于2007年2月1日。 从前几天bigboar要做一个大表更新的项目引发的讨论，CTAS还是INSERT产生redo多。后来在fsm启发下又复习了遍Tom的结论。具体内容就不翻译了，转贴一下： Table Mode    Insert Mode     ArchiveLog mode      result &#8212;&#8212;&#8212;&#8211;   &#8212;&#8212;&#8212;&#8212;-   &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;    &#8212;&#8212;&#8212;- LOGGING       APPEND          ARCHIVE LOG          redo generated NOLOGGING     APPEND          ARCHIVE LOG          no redo LOGGING       no append       &#8220;&#8221;                   redo generated NOLOGGING     no append       &#8220;&#8221;                   redo generated LOGGING       APPEND          noarchive log mode   no redo NOLOGGING     APPEND          noarchive log mode   no redo LOGGING       no append       noarchive [...]]]></description>
		<wfw:commentRss>http://www.readern.com/oracle-nologging.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[重发]分组连接列字符串方法</title>
		<link>http://www.readern.com/oracle-group-by-connect-string.html</link>
		<comments>http://www.readern.com/oracle-group-by-connect-string.html#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:53:19 +0000</pubDate>
		<dc:creator>ern</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sys_connect_by_path]]></category>

		<guid isPermaLink="false">http://www.readern.com/?p=135</guid>
		<description><![CDATA[又翻了一把，顺便转自己文章一篇过来。原文发表于2007年6月20日 共享一个Oracle技巧吧。在以前一篇blog里我写过自定义聚集函数——一条语句将多行的列中字符串连接起来，技术总是在进步的。在这一期的Oracle Magazine中的AskTom，学到了一个不错的方法。从8i开始Oracle增加了分析函数，从9iR1开始，又有了SYS_CONNECT_BY_PATH函数，于是，产生了下面一个更加简单的方法。 CREATE TABLE test AS SELECT rownum office, chr(ascii(&#8216;a&#8217;) + rownum &#8211; 1) staff FROM all_objects WHERE rownum &#60; 10; INSERT INTO test SELECT rownum, chr(ascii(&#8216;o&#8217;) + rownum &#8211; 1) FROM all_objects WHERE rownum &#60; 10; SELECT * FROM test; 1 a 2 b 3 c 4 d 5 e 6 f 7 [...]]]></description>
		<wfw:commentRss>http://www.readern.com/oracle-group-by-connect-string.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>雪豹～～～</title>
		<link>http://www.readern.com/upgrade-to-snow-leopard.html</link>
		<comments>http://www.readern.com/upgrade-to-snow-leopard.html#comments</comments>
		<pubDate>Sun, 30 Aug 2009 13:13:25 +0000</pubDate>
		<dc:creator>ern</dc:creator>
				<category><![CDATA[咬口苹果]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[MAC OS X]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://www.readern.com/?p=121</guid>
		<description><![CDATA[今天的时间一半花在值班处理故障，一半花在升级雪豹处理后续问题上。上午升级完成后最惊险的是，发现无法打开Oracle了，提示无法加载libodm10.dylib。开始差点以为是SL的升级脚本有冲突，把Oracle的库文件干掉了，后来仔细琢磨琢磨，终于发现是Oracle安装目录的权限变掉了，手工把整个目录修改成oracle:dba所有就OK了。 此外，还有个rc.common也改成了系统原来的，之前所做的修改会丢失，重新改一次咯。 另外，华为的3G网卡也需要特殊处理，MobileConnect这个软件挂掉了，自己显示包内容然后装那个驱动包之后，就直接在网络偏好设置里添加华为网卡的接口，其他就没有区别啦，呵呵。 总体上，32位环境下，兼容性不错的，可以看看这里。但是我死活进不了64位，郁闷死了。进入64位的方法大致有三种： 开机时候按住键盘上的“6&#8243;和“4&#8243;； 开启：sudo nvram boot-args=&#8221;arch=x86_64&#8243;；恢复：sudo nvram boot-args=&#8221;arch=x86_32&#8243; 修改/Library/Preferences/SystemConfiguration/com.apple.Boot.plist，把文本里面的&#60;key&#62;Kernel Flags&#60;/key&#62;&#60;string&#62;&#60;/string&#62;替换成&#60;key&#62;Kernel Flags&#60;/key&#62;&#60;string&#62;arch=x86_64&#60;/string&#62; 判断是否64位EFI的方法倒是简单，命令行运行： ioreg -l -p IODeviceTree &#124; grep firmware-abi 哎，反正我的466还是进不去，郁闷……不过其实，我想进去，也就是看看能不能启动Oracle，哈哈。 要说雪豹的使用，还是不错的，很多细节上有了改进，比如堆栈可以滚动了，只是堆栈的图标也太大了，不是很爽。手写输入一开始还不适应，后来掌握了技巧，舒服多了，不过我还是觉得我打字够快了。自带的中文输入很不错的，还发现原来有些英文软件和中文输入法有冲突的，现在好像都没问题了，比如PersonalBrain。当然也有些bug，比如CPU.menu没法用了。 总体来说，还是很不错的一次大更新，虽然功能上没有多出很多，估计等再更新几个版本就更稳定顺畅了。还是期待64位内核啊……]]></description>
		<wfw:commentRss>http://www.readern.com/upgrade-to-snow-leopard.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLDeveloper的一些bug</title>
		<link>http://www.readern.com/sqldeveloper-bugs-and-tricks.html</link>
		<comments>http://www.readern.com/sqldeveloper-bugs-and-tricks.html#comments</comments>
		<pubDate>Wed, 06 May 2009 13:18:53 +0000</pubDate>
		<dc:creator>ern</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[SQLDeveloper]]></category>
		<category><![CDATA[导入]]></category>
		<category><![CDATA[导出]]></category>

		<guid isPermaLink="false">http://www.readern.com/?p=52</guid>
		<description><![CDATA[虽然不搞数据库了，不过最近做些分析的时候还是祭出了Oracle这把牛刀，顺便用了下Oracle的这款官方工具。我用的最新版本是1.5.4，出乎意料的强大。唯一不好是基于Java的，对大数据量导入导出想必是不行的（除非有超大内存做后盾）。过程中也发现了不少bug，不过到官方论坛瞄了瞄，还是有开发人员重视的。 导出结果为Excel（XLS文件）可能遇到ORA－00936。似乎问题是出在解析语句上，如果你的SELECT中存在比如a.*的别名前缀，那么就会触发这个bug。暂时的解决方法有两个，一是重写你的语句，去掉别名前缀（两表关联时候有点麻烦了）；再就是把你的结果建成一张表，到时候直接导出表就可以了。 与中文输入法偶有冲突。在用QIM，如果进入SQLDeveloper时是英文输入，打开程序才切换到中文输入，似乎就一切OK；如果打开前就是中文输入，很大机会只能输入英文了，无法输入中文。 导入Excel文件时要注意，首行可以冻结，但是不能筛选，否则认不到整个表格。 不支持导入导出LONG一类的字段。这个大概算功能问题吧，倒也不能完全说是bug。 另外还有一个始终萦绕非Windows系统的字符集问题。在我的MAC OS X 10.5.6上推荐保存导出的Excel和SQL脚本为UTF－8，否则和文本编辑器（比如TextWrangler）可能有些冲突。导出的UTF－8文件在Windows Office 2007是可以正常打开的。]]></description>
		<wfw:commentRss>http://www.readern.com/sqldeveloper-bugs-and-tricks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
