﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-WEB开发 de  点滴-随笔分类-Sql</title><link>http://www.blogjava.net/sanwish/category/35810.html</link><description>by sanwish</description><language>zh-cn</language><lastBuildDate>Wed, 11 Feb 2009 16:06:53 GMT</lastBuildDate><pubDate>Wed, 11 Feb 2009 16:06:53 GMT</pubDate><ttl>60</ttl><item><title>windows2003server下安装oracle8.1.7</title><link>http://www.blogjava.net/sanwish/archive/2009/02/10/254087.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Tue, 10 Feb 2009 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2009/02/10/254087.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/254087.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2009/02/10/254087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/254087.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/254087.html</trackback:ping><description><![CDATA[
		<p>有一个问题先提出来，安装oracle必须<strong>直接</strong>在系统上安装，不能通过远程桌面或者终端服务安装，否则会报“ORA-12560: TNS: 协议适配器错误”。还有一点，oracle8.1.7有一个补丁程序PATCH_SET_FOR_ORACEL_DATA_8174_WINNT.zip，以前从来没有见过，这次是从教育网里花了一天时间下载下来的，不知道是不是在win2003上安装必须的（下周即可见分校晓）。</p>
		<p>1、如果你的oracle8.1.7是原始版的，检查<br />/stage/Components/oracle.swd.jre/<br />1.1.7.30/1/DataFiles/Expanded/jre/win32/bin下的symcjit.dll文件，改名或者直接删除。<br />/stage/Components/oracle.omb.jdk/1.1.8/1/DataFiles/Expanded/jdk118_nt/bin路径下的symcjit.dll文件做同样处理。</p>
		<p>2、如果遇到点击setup.exe无反应，在install目录下打开文件’oraparam.ini’把参数 JRE_MEMORY_OPTIONS改为</p>
		<p>RE_MEMORY_OPTIONS = -nojit -ms16m -mx32m 即可。<br /><br />3、执行本地硬盘install\win32\setup.exe目录下的Setup.exe文件。此时调用的是修改过的参数文件oraparam.ini。 <br /> <br />4、安装时选择自定义模式，并且不创建数据库。 <br />   具体参照&lt;<a href="/Files/sanwish/windows+oracle8.1.7.rar">windows+oracle8 install manual</a>&gt;<br /><br /></p>
<img src ="http://www.blogjava.net/sanwish/aggbug/254087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2009-02-10 15:00 <a href="http://www.blogjava.net/sanwish/archive/2009/02/10/254087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查看oracle某个表的所有字段名</title><link>http://www.blogjava.net/sanwish/archive/2008/12/03/244074.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Wed, 03 Dec 2008 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2008/12/03/244074.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/244074.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2008/12/03/244074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/244074.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/244074.html</trackback:ping><description><![CDATA[sql1：select   column_name   from   <font style="BACKGROUND-COLOR: #ff0000">all</font>_tab_columns   where   table_name='table1'; <br />sql2：select   column_name   from   <font style="BACKGROUND-COLOR: #ff0000">user</font>_tab_columns   where   table_name='table1'; <br /><br /><br />我在运行sql1的时候碰到，如果数据库中有相同用户的话，会检索出重复的字段名。<br />后来把用户的dba权限去掉了就好了。<br />revoke dba from user1;<br /><br />运行sql2，虽然不出现重复的，但是客户说最终工程所用的DB用户和表的所有者不是一个，所以不能用user_table_columns。<br />oracle知识太缺乏，不明白客户说的意思<br /><br />关于sql1重复的问题，还是不清楚，具体的参照权限应该怎么取消？取消dba太大了吧。<img src ="http://www.blogjava.net/sanwish/aggbug/244074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2008-12-03 09:48 <a href="http://www.blogjava.net/sanwish/archive/2008/12/03/244074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）用 ANY、SOME 或 ALL 修改的比较运算符</title><link>http://www.blogjava.net/sanwish/archive/2008/11/10/239604.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Mon, 10 Nov 2008 02:02:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2008/11/10/239604.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/239604.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2008/11/10/239604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/239604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/239604.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sanwish/archive/2008/11/10/239604.html'>阅读全文</a><img src ="http://www.blogjava.net/sanwish/aggbug/239604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2008-11-10 10:02 <a href="http://www.blogjava.net/sanwish/archive/2008/11/10/239604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）SQL中decode函数的用法</title><link>http://www.blogjava.net/sanwish/archive/2008/11/10/239603.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Mon, 10 Nov 2008 02:00:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2008/11/10/239603.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/239603.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2008/11/10/239603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/239603.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/239603.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sanwish/archive/2008/11/10/239603.html'>阅读全文</a><img src ="http://www.blogjava.net/sanwish/aggbug/239603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2008-11-10 10:00 <a href="http://www.blogjava.net/sanwish/archive/2008/11/10/239603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转）Oracle PL/SQL语言初级教程之操作和控制语言</title><link>http://www.blogjava.net/sanwish/archive/2008/11/10/239601.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Mon, 10 Nov 2008 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2008/11/10/239601.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/239601.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2008/11/10/239601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/239601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/239601.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sanwish/archive/2008/11/10/239601.html'>阅读全文</a><img src ="http://www.blogjava.net/sanwish/aggbug/239601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2008-11-10 09:56 <a href="http://www.blogjava.net/sanwish/archive/2008/11/10/239601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转）ORACLE 中ROWNUM用法总结!</title><link>http://www.blogjava.net/sanwish/archive/2008/11/10/239600.html</link><dc:creator>sanwish</dc:creator><author>sanwish</author><pubDate>Mon, 10 Nov 2008 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/sanwish/archive/2008/11/10/239600.html</guid><wfw:comment>http://www.blogjava.net/sanwish/comments/239600.html</wfw:comment><comments>http://www.blogjava.net/sanwish/archive/2008/11/10/239600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sanwish/comments/commentRss/239600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sanwish/services/trackbacks/239600.html</trackback:ping><description><![CDATA[
		<span class="javascript" style="FONT-SIZE: 12px">
				<font face="Verdana">对于 Oracle 的 rownum 问题，很多资料都说不支持&gt;,&gt;=,=,between...and，只能用以上符号(&lt;、&lt;=、!=)，并非说用&gt;,&gt;=,=,between..and 时会提示SQL语法错误，而是经常是查不出一条记录来，还会出现似乎是莫名其妙的结果来，其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇，同样是伪列，rownum 与 rowid 可有些不一样，下面以例子说明<br /><br />假设某个表 t1(c1) 有 20 条记录<br /><br />如果用 select rownum,c1 from t1 where rownum &lt; 10, 只要是用小于号，查出来的结果很容易地与一般理解在概念上能达成一致，应该不会有任何疑问的。<br /><br />可如果用 select rownum,c1 from t1 where rownum &gt; 10 (如果写下这样的查询语句，这时候在您的头脑中应该是想得到表中后面10条记录)，你就会发现，显示出来的结果要让您失望了，也许您还会怀疑是不谁删了一些记录，然后查看记录数，仍然是 20 条啊？那问题是出在哪呢？<br /><br />先好好理解 rownum 的意义吧。因为ROWNUM是对结果集加的一个伪列，即先查到结果集之后再加上去的一个列 (强调：先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1，而有其他大于1的值。所以您没办法期望得到下面的结果集：<br /><br />11 aaaaaaaa<br />12 bbbbbbb<br />13 ccccccc<br />.................<br /><br />rownum &gt;10 没有记录，因为第一条不满足去掉的话，第二条的ROWNUM又成了1，所以永远没有满足条件的记录。或者可以这样理解：<br /><br />ROWNUM 是一个序列，是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1，第二条为2，依次类推。如果你用&gt;,&gt;=,=,between...and这些条件，因为从缓冲区或数据文件中得到的第一条记录的rownum为1，则被删除，接着取下条，可是它的rownum还是1，又被删除，依次类推，便没有了数据。<br /><br />有了以上从不同方面建立起来的对 rownum 的概念，那我们可以来认识使用 rownum 的几种现像<br /><br />1. select rownum,c1 from t1 where rownum != 10 为何是返回前9条数据呢？它与 select rownum,c1 from tablename where rownum &lt; 10 返回的结果集是一样的呢？<br />因为是在查询到结果集后，显示完第 9 条记录后，之后的记录也都是 != 10,或者 &gt;=10,所以只显示前面9条记录。也可以这样理解，rownum 为9后的记录的 rownum为10，因条件为 !=10，所以去掉，其后记录补上，rownum又是10，也去掉，如果下去也就只会显示前面9条记录了<br /><br />2. 为什么 rownum &gt;1 时查不到一条记录，而 rownum &gt;0 或 rownum &gt;=1 却总显示所以的记录<br />因为 rownum 是在查询到的结果集后加上去的，它总是从1开始<br /><br />3. 为什么 between 1 and 10 或者 between 0 and 10 能查到结果，而用 between 2 and 10 却得不到结果<br />原因同上一样，因为 rownum 总是从 1 开始<br /><br />从上可以看出，任何时候想把 rownum = 1 这条记录抛弃是不对的，它在结果集中是不可或缺的，少了rownum=1 就像空中楼阁一般不能存在，所以你的 rownum 条件要包含到 1 <br /><br />但如果就是想要用 rownum &gt; 10 这种条件的话话就要用嵌套语句,把 rownum 先生成，然后对他进行查询。<br />select * <br />from (selet rownum as rn，t1.* from a where ...)<br />where rn &gt;10<br /><br />一般代码中对结果集进行分页就是这么干的。<br /><br />另外：rowid 与 rownum 虽都被称为伪列，但它们的存在方式是不一样的，rowid 可以说是物理存在的，表示记录在表空间中的唯一位置ID，在DB中唯一。只要记录没被搬动过，rowid是不变的。rowid 相对于表来说又像表中的一般列，所以以 rowid 为条件就不会有 rownum那些情况发生。<br />另外还要注意：rownum不能以任何基表的名称作为前缀。</font>
		</span>
<img src ="http://www.blogjava.net/sanwish/aggbug/239600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sanwish/" target="_blank">sanwish</a> 2008-11-10 09:55 <a href="http://www.blogjava.net/sanwish/archive/2008/11/10/239600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>