﻿<?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-Tom-随笔-随笔分类-DB</title><link>http://www.blogjava.net/43880800/category/17492.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 01 Dec 2007 14:53:28 GMT</lastBuildDate><pubDate>Sat, 01 Dec 2007 14:53:28 GMT</pubDate><ttl>60</ttl><item><title>ORACLE查询树型关系</title><link>http://www.blogjava.net/43880800/archive/2007/11/30/164248.html</link><dc:creator>Tom</dc:creator><author>Tom</author><pubDate>Fri, 30 Nov 2007 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/43880800/archive/2007/11/30/164248.html</guid><wfw:comment>http://www.blogjava.net/43880800/comments/164248.html</wfw:comment><comments>http://www.blogjava.net/43880800/archive/2007/11/30/164248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/43880800/comments/commentRss/164248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/43880800/services/trackbacks/164248.html</trackback:ping><description><![CDATA[<h3>ORACLE查询树型关系（connect by prior start with） </h3>
<table class="blog-content">
    <tbody>
        <tr>
            <td>
            <p>以下内容来自<a href="http://hi.baidu.com/suofang/blog/item/a58bdd5829d5e583800a1812.html" target="_blank">http://hi.baidu.com/suofang/blog/item/a58bdd5829d5e583800a1812.html</a>（其中的图片可到这个地址查看） <br />
            connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中，而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。 <br />
            典型的使用方法就是： <br />
            select * from table connect by prior cur_id=parent_id start with cur_id=??? <br />
            例如： <br />
            a &nbsp; b <br />
            1 &nbsp; 0 <br />
            2 &nbsp; 1 <br />
            3 &nbsp; 1 <br />
            4 &nbsp; 2 <br />
            5 &nbsp; 3 <br />
            如果想查找a=2及其下面的所有数据，则： <br />
            select * from table connect by prior a=b start with a=2 <br />
            a &nbsp; b <br />
            2 &nbsp; 1 <br />
            4 &nbsp; 2 <br />
            这些只是基础，皮毛。其实只要你灵活的构造查询语句。可以得出意想不到的结果。比如生成树每一个路径。 <br />
            但是这些记录组成的树必须正常才可以。如果有互为父子的情况，就会出现循环错误！ <br />
            示例： <br />
            <br />
            <div align="center"><img src="http://hiphotos.baidu.com/suofang/pic/item/4417de1b539427ddad6e7515.jpg" onload="if(this.width  alt="" />'800')this.width='800';if(this.height>'600')this.height='600';" border=0></div>
            <div align="center">表结构图</div>
            <div align="center"><img src="http://hiphotos.baidu.com/suofang/pic/item/9442dd130493be0a5aaf5310.jpg" onload="if(this.width  alt="" />'800')this.width='800';if(this.height>'600')this.height='600';" border=0></div>
            <div align="center">表数据</div>
            select * from tb_cus_area_cde <br />
            --子取父 <br />
            select * from tb_cus_area_cde a &nbsp; <br />
            CONNECT BY PRIOR &nbsp; a.c_snr_area=a.c_area_cde START WITH a.c_area_cde='1040101' <br />
            --父取子 <br />
            select * from tb_cus_area_cde a &nbsp; <br />
            CONNECT BY PRIOR &nbsp; a.c_area_cde=a.c_snr_area START WITH a.c_snr_area is null <br />
            <br />
            *************************自己总结 还是看CSDN吧，赛迪总是不好用<a href="http://writeblog.csdn.net/PostList.aspx" target="_blank">http://writeblog.csdn.net/PostList.aspx</a>********************************* <br />
            <div align="center"><font size="3"><font face='\"times\"'>ORACLE</font><font face='\"宋体\"'>查询树型关系（</font><font face='\"times\"'>connect by prior start with</font><font face='\"宋体\"'>）</font> <br />
            </font></div>
            <font face="宋体"><font size="3">有如下表结构：</font></font> <br />
            <font face="times"><font size="3">create table TVideoSort </font></font><br />
            <font face="times"><font size="3">(</font></font> <br />
            <font size="3"><font face='\"times\"'>FsysId &nbsp; &nbsp; &nbsp; NVARCHAR2(32 char) &nbsp; &nbsp; &nbsp; not null,</font></font> <br />
            <font size="3"><font face='\"times\"'>FSortName &nbsp; &nbsp; &nbsp; NVARCHAR2(32 char),</font></font> <br />
            <font size="3"><font face='\"times\"'>FSortTopId &nbsp; &nbsp; NVARCHAR2(32 char),</font></font> <br />
            <font size="3"><font face='\"times\"'>FSortAddress &nbsp; &nbsp; number,</font></font> <br />
            <font size="3"><font face='\"times\"'>FSortIsList &nbsp; &nbsp; char(1),</font></font> <br />
            <font size="3"><font face='\"times\"'>constraint PK_TVIDEOSORT primary key (FsysId)</font></font> <br />
            <font face="times"><font size="3">);</font></font> <br />
            <br />
            <font face="times"><br />
            </font><br />
            <font face="times"><font size="3"></font><br />
            <br />
            <font face='\"宋体\"'>数据如下：</font></font> <br />
            <font size="3"><br />
            <font face='\"times\"'></font></font><br />
            <br />
            <font size="3"><font face='\"times\"'>--</font><font face='\"宋体\"'>子查父（通过子节点向根节点追朔</font><font face='\"times\"'>.</font><font face='\"宋体\"'>）</font></font> <br />
            <font face="宋体"><font size="3">查询〔特下边〕的父节点</font></font> <br />
            <strong><font face="courier">select</font></strong><font face="courier"> FsysId,FSortName,FSortTopId,FSortAddress,FSortIsList <strong>from</strong> TVideoSort <br />
            <strong>start</strong> <strong>with</strong> FsysId=</font><font face="courier">'3703E5CD81E48D6BE040007F01001254'--</font><font face="宋体">这个是特下边的</font><font face="courier">fsysid</font><font face="courier"> <br />
            <strong>connect</strong> <strong>by</strong> <strong>prior</strong> </font><font face="courier">FSortTopId=FsysId </font><font face="courier"><br />
            <strong>order</strong> <strong>by</strong> FsortAddress <br />
            </font><br />
            <font face="宋体">结果</font><font face="courier"> <br />
            </font><br />
            <br />
            <font face="times"><font size="3"></font><br />
            <br />
            <font face='\"宋体\"'>――父查子（通过根节点遍历子节点</font><font face='\"times\"'>.</font><font face='\"宋体\"'>）</font></font> <br />
            <font face="宋体"><font size="3">查询〔特下边〕的子节点：结果</font></font> <br />
            <strong><font face="courier">select</font></strong><font face="courier"> FsysId,FSortName,FSortTopId,FSortAddress,FSortIsList <br />
            <strong>from</strong> TVideoSort <strong>start</strong> <strong>with</strong> FsysId=</font><font face="courier">'3703E5CD81E48D6BE040007F01001254'</font><font face="courier"> </font><font face="courier">--</font><font face="宋体">这个是特下边的</font><font face="courier">fsysid</font><font face="courier"> <br />
            <strong>connect</strong> <strong>by</strong> <strong>prior</strong> FsysId=FSortTopId <strong>order</strong> <strong>by</strong> FsortAddress <br />
            </font><br />
            <font face="courier"><br />
            </font><br />
            <font face="宋体"><font size="3">查询〔特长练习〕的子节点：结果</font></font> <br />
            <strong><font face="courier">select</font></strong><font face="courier"> FsysId,FSortName,FSortTopId,FSortAddress,FSortIsList <br />
            <strong>from</strong> TVideoSort <strong>start</strong> <strong>with</strong> FsysId=</font><font face="courier">'36AE4D68EC7D364CE040007F01000CA5'</font><font face="courier"> <br />
            <strong>connect</strong> <strong>by</strong> <strong>prior</strong> </font><font face="courier">FsysId=FSortTopId </font><strong><font face="courier">order</font></strong><font face="courier"> <strong>by</strong> FsortAddress</font> <br />
            <font face="courier"><br />
            </font><br />
            <br />
            <font face="times"><font size="3"></font><br />
            <br />
            <font face='\"宋体\"'>特别注意，两个查询只是</font></font><font face="courier">FsysId=FSortTopId</font><font size="3"><font face='\"宋体\"'>不同而已，即子查父则把</font><font face='\"courier\"'>FSortTopId</font><font face='\"宋体\"'>做为主表放前面，父查子则把</font><font face='\"courier\"'>FsysId</font><font face='\"宋体\"'>放前面作主表</font></font> <br />
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/43880800/aggbug/164248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/43880800/" target="_blank">Tom</a> 2007-11-30 13:51 <a href="http://www.blogjava.net/43880800/archive/2007/11/30/164248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Keep an eye on TOB, it will start a new generation of database sofwares</title><link>http://www.blogjava.net/43880800/archive/2007/01/26/96088.html</link><dc:creator>Tom</dc:creator><author>Tom</author><pubDate>Fri, 26 Jan 2007 02:02:00 GMT</pubDate><guid>http://www.blogjava.net/43880800/archive/2007/01/26/96088.html</guid><wfw:comment>http://www.blogjava.net/43880800/comments/96088.html</wfw:comment><comments>http://www.blogjava.net/43880800/archive/2007/01/26/96088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/43880800/comments/commentRss/96088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/43880800/services/trackbacks/96088.html</trackback:ping><description><![CDATA[Keep an eye on TOB, it will start a new generation of database sofwares<img src ="http://www.blogjava.net/43880800/aggbug/96088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/43880800/" target="_blank">Tom</a> 2007-01-26 10:02 <a href="http://www.blogjava.net/43880800/archive/2007/01/26/96088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MS SQL选择固定区间条数方法 </title><link>http://www.blogjava.net/43880800/archive/2007/01/23/95567.html</link><dc:creator>Tom</dc:creator><author>Tom</author><pubDate>Tue, 23 Jan 2007 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/43880800/archive/2007/01/23/95567.html</guid><wfw:comment>http://www.blogjava.net/43880800/comments/95567.html</wfw:comment><comments>http://www.blogjava.net/43880800/archive/2007/01/23/95567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/43880800/comments/commentRss/95567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/43880800/services/trackbacks/95567.html</trackback:ping><description><![CDATA[
		<div class="author">
				<a class="anchor" name="Top">楼主</a>wzg1976（吃了吗?）<input class="user1" title="一级用户 该版得分小于等于100分" type="button" />2004-01-06 11:19:05 在 MS-SQL Server / 基础类 提问</div>
		<p>比如，我查询的条件能返回100条记录，而我只要取得其中的第50~第60条，   <br />      请问如何处理? <span>问题点数：20、回复次数：4</span><a href="http://topic.csdn.net/t/20040106/11/2637517.html#">Top</a></p>
		<div class="tagad">
				<iframe style="DISPLAY: none" src="http://topic.csdn.net/Include/Board.htm?Tags=%E6%9F%A5%E8%AF%A2,%E8%AF%AD%E5%8F%A5,top,%E8%A1%A8,%E8%AE%B0%E5%BD%95,%E7%BB%93%E6%9E%9C,%E4%B8%BB%E9%94%AE,%E5%9C%B0%E5%8C%BA,%E6%96%B9%E6%B3%95,%E4%BD%BF%E7%94%A8" frameborder="0" scrolling="no">
				</iframe>
		</div>
		<h3>
				<strong>
						<a class="anchor" name="r_18315168">1 楼</a>zjcxc（邹建）<input class="diam4" title="四级钻石用户 该版得分小于等于1000000分，大于800000分" type="button" /></strong>
				<span>回复于 2004-01-06 11:28:38 得分 <em>20</em></span>
		</h3>
		<p>查询第X页,每页Y条记录   <br />    <br />  最基本的处理方法:   <br />    <br />  如果表中有主键(记录不重复的字段也可以),可以用类似下面的方法,当然x,y要换成具体的数字,不能用变量:   <br />    <br />  select   top   y   *   from   表   where   主键   not   in(select   top   (x-1)*y   主键   from   表)   <br />    <br />    <br />    <br />  如果表中无主键,可以用临时表,加标识字段解决.这里的x,y可以用变量.   <br />    <br />  select   id=identity(int,1,1),*     into   #tb   from   表   <br />  select   *   from   #tb   where   id   between   (x-1)*y   and   x*y-1   <br />    <br />  <a href="http://topic.csdn.net/t/20040106/11/2637517.html#">Top</a></p>
		<h3>
				<strong>
						<a class="anchor" name="r_18315180">2 楼</a>zjcxc（邹建）<input class="diam4" title="四级钻石用户 该版得分小于等于1000000分，大于800000分" type="button" /></strong>
				<span>回复于 2004-01-06 11:28:52 得分 0 </span>
		</h3>
		<p>/*--用存储过程实现的分页程序   <br />    <br />  显示指定表、视图、查询结果的第X页   <br />  对于表中主键或标识列的情况,直接从原表取数查询，其它情况使用临时表的方法   <br />  如果视图或查询结果中有主键,不推荐此方法   <br />  如果使用查询语句,而且查询语句使用了order   by,则查询语句必须包含top   语句   <br />    <br />  --邹建   2003.09--*/   <br />    <br />  /*--调用示例   <br />  exec   p_show   '地区资料'   <br />    <br />  exec   p_show   'select   top   100   percent   *   from   地区资料   order   by   地区名称',5,3,'地区编号,地区名称,助记码'   <br />  --*/   <br />    <br />  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_show]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)   <br />  drop   procedure   [dbo].[p_show]   <br />  GO   <br />    <br />  CREATE   Proc   p_show   <br />  @QueryStr   nvarchar(4000), --表名、视图名、查询语句   <br />  @PageSize   int=10, --每页的大小(行数)   <br />  @PageCurrent   int=1, --要显示的页   <br />  @FdShow   nvarchar   (4000)='', --要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段   <br />  @FdOrder   nvarchar   (1000)='' --排序字段列表   <br />  as   <br />  declare   @FdName   nvarchar(250) --表中的主键或表、临时表中的标识列名   <br />  ,@Id1   varchar(20),@Id2   varchar(20) --开始和结束的记录号   <br />  ,@Obj_ID   int --对象ID   <br />  --表中有复合主键的处理   <br />  declare   @strfd   nvarchar(2000) --复合主键列表   <br />  ,@strjoin   nvarchar(4000) --连接字段   <br />  ,@strwhere   nvarchar(2000) --查询条件   <br />    <br />    <br />  select   @Obj_ID=object_id(@QueryStr)   <br />  ,@FdShow=case   isnull(@FdShow,'')   when   ''   then   '   *'   else   '   '+@FdShow   end   <br />  ,@FdOrder=case   isnull(@FdOrder,'')   when   ''   then   ''   else   '   order   by   '+@FdOrder   end   <br />  ,@QueryStr=case   when   @Obj_ID   is   not   null   then   '   '+@QueryStr   else   '   ('+@QueryStr+')   a'   end   <br />    <br />  --如果显示第一页，可以直接用top来完成   <br />  if   @PageCurrent=1   <br />  begin   <br />  select   @Id1=cast(@PageSize   as   varchar(20))   <br />  exec('select   top   '+@Id1+@FdShow+'   from   '+@QueryStr+@FdOrder)   <br />  return   <br />  end   <br />    <br />  --如果是表,则检查表中是否有标识更或主键   <br />  if   @Obj_ID   is   not   null   and   objectproperty(@Obj_ID,'IsTable')=1   <br />  begin   <br />  select   @Id1=cast(@PageSize   as   varchar(20))   <br />  ,@Id2=cast((@PageCurrent-1)*@PageSize   as   varchar(20))   <br />    <br />  select   @FdName=name   from   syscolumns   where   id=@Obj_ID   and   status=0x80   <br />  if   @@rowcount=0 --如果表中无标识列,则检查表中是否有主键   <br />  begin   <br />  if   not   exists(select   1   from   sysobjects   where   parent_obj=@Obj_ID   and   xtype='PK')   <br />  goto   lbusetemp --如果表中无主键,则用临时表处理   <br />    <br />  select   @FdName=name   from   syscolumns   where   id=@Obj_ID   and   colid   in(   <br />  select   colid   from   sysindexkeys   where   @Obj_ID=id   and   indid   in(   <br />  select   indid   from   sysindexes   where   @Obj_ID=id   and   name   in(   <br />  select   name   from   sysobjects   where   xtype='PK'   and   parent_obj=@Obj_ID   <br />  )))   <br />  if   @@rowcount&gt;1 --检查表中的主键是否为复合主键   <br />  begin   <br />  select   @strfd='',@strjoin='',@strwhere=''   <br />  select   @strfd=@strfd+',['+name+']'   <br />  ,@strjoin=@strjoin+'   and   a.['+name+']=b.['+name+']'   <br />  ,@strwhere=@strwhere+'   and   b.['+name+']   is   null'   <br />  from   syscolumns   where   id=@Obj_ID   and   colid   in(   <br />  select   colid   from   sysindexkeys   where   @Obj_ID=id   and   indid   in(   <br />  select   indid   from   sysindexes   where   @Obj_ID=id   and   name   in(   <br />  select   name   from   sysobjects   where   xtype='PK'   and   parent_obj=@Obj_ID   <br />  )))   <br />  select   @strfd=substring(@strfd,2,2000)   <br />  ,@strjoin=substring(@strjoin,5,4000)   <br />  ,@strwhere=substring(@strwhere,5,4000)   <br />  goto   lbusepk   <br />  end   <br />  end   <br />  end   <br />  else   <br />  goto   lbusetemp   <br />    <br />  /*--使用标识列或主键为单一字段的处理方法--*/   <br />  lbuseidentity:   <br />  exec('select   top   '+@Id1+@FdShow+'   from   '+@QueryStr   <br />  +'   where   '+@FdName+'   not   in(select   top   '   <br />  +@Id2+'   '+@FdName+'   from   '+@QueryStr+@FdOrder   <br />  +')'+@FdOrder   <br />  )   <br />  return   <br />    <br />  /*--表中有复合主键的处理方法--*/   <br />  lbusepk:   <br />  exec('select   '+@FdShow+'   from(select   top   '+@Id1+'   a.*   from   <br />  (select   top   100   percent   *   from   '+@QueryStr+@FdOrder+')   a   <br />  left   join   (select   top   '+@Id2+'   '+@strfd+'     <br />  from   '+@QueryStr+@FdOrder+')   b   on   '+@strjoin+'   <br />  where   '+@strwhere+')   a'   <br />  )   <br />  return   <br />    <br />  /*--用临时表处理的方法--*/   <br />  lbusetemp:   <br />  select   @FdName='[ID_'+cast(newid()   as   varchar(40))+']'   <br />  ,@Id1=cast(@PageSize*(@PageCurrent-1)   as   varchar(20))   <br />  ,@Id2=cast(@PageSize*@PageCurrent-1   as   varchar(20))   <br />    <br />  exec('select   '+@FdName+'=identity(int,0,1),'+@FdShow+'   <br />  into   #tb   from'+@QueryStr+@FdOrder+'   <br />  select   '+@FdShow+'   from   #tb   where   '+@FdName+'   between   '   <br />  +@Id1+'   and   '+@Id2   <br />  )   <br />    <br />  GO   <br />  <a href="http://topic.csdn.net/t/20040106/11/2637517.html#">Top</a></p>
		<h3>
				<strong>
						<a class="anchor" name="r_18315251">3 楼</a>erigido（丰田村农民）<input class="user5" title="五级用户 该版得分小于等于5000分，大于2000分" type="button" /></strong>
				<span>回复于 2004-01-06 11:30:31 得分 0 </span>
		</h3>
		<p>收藏存储过程先<a href="http://topic.csdn.net/t/20040106/11/2637517.html#">Top</a></p>
		<h3>
				<strong>
						<a class="anchor" name="r_18315313">4 楼</a>sdhdy（大江东去...）<input class="star2" title="二星用户 该版得分小于等于30000分，大于10000分" type="button" /></strong>
				<span>回复于 2004-01-06 11:32:26 得分 0 </span>
		</h3>
		<p>--表里没有自增字段，才可以如下   <br />  select   identity(int,1,1)   FID,*   into   #temp   from   tablename   <br />  go   <br />  select   *   from   #temp   where   FID   between   50   and   60   <br />  go   <br />  drop   table   #temp</p>
<img src ="http://www.blogjava.net/43880800/aggbug/95567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/43880800/" target="_blank">Tom</a> 2007-01-23 16:19 <a href="http://www.blogjava.net/43880800/archive/2007/01/23/95567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL语句改进</title><link>http://www.blogjava.net/43880800/archive/2006/12/29/90698.html</link><dc:creator>Tom</dc:creator><author>Tom</author><pubDate>Fri, 29 Dec 2006 04:09:00 GMT</pubDate><guid>http://www.blogjava.net/43880800/archive/2006/12/29/90698.html</guid><wfw:comment>http://www.blogjava.net/43880800/comments/90698.html</wfw:comment><comments>http://www.blogjava.net/43880800/archive/2006/12/29/90698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/43880800/comments/commentRss/90698.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/43880800/services/trackbacks/90698.html</trackback:ping><description><![CDATA[效率低：<br />select a.a1 from table1 a where not exists (select a1 from talbe2 where a1=a.a1) <br /><br />效率高：<br />select *  from table1  a left join table2 b on a.a1=b.a1  where b.a1 is null <br /><img src ="http://www.blogjava.net/43880800/aggbug/90698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/43880800/" target="_blank">Tom</a> 2006-12-29 12:09 <a href="http://www.blogjava.net/43880800/archive/2006/12/29/90698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修复被优化大师干掉的oracle监听器</title><link>http://www.blogjava.net/43880800/archive/2006/11/20/82227.html</link><dc:creator>Tom</dc:creator><author>Tom</author><pubDate>Mon, 20 Nov 2006 04:43:00 GMT</pubDate><guid>http://www.blogjava.net/43880800/archive/2006/11/20/82227.html</guid><wfw:comment>http://www.blogjava.net/43880800/comments/82227.html</wfw:comment><comments>http://www.blogjava.net/43880800/archive/2006/11/20/82227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/43880800/comments/commentRss/82227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/43880800/services/trackbacks/82227.html</trackback:ping><description><![CDATA[    windows优化大师在优化注册表的时候帮我也把oracle多心优化了........导致无法找到监听器.<br /><br />解决办法如下:<br /><br />   1. 在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener<br />里面添加字符串ImagePath值为oracle下bin目录下的TNSLSNR.EXE. 这样就指向了监听文件.<br /><br />   2.直接运行bin目录下的TNSLSNR.EXE 也可启动监听器...不过有个黑窗口在桌面上毕竟不爽.建议用上面的方法修复.<br /><br /><img src ="http://www.blogjava.net/43880800/aggbug/82227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/43880800/" target="_blank">Tom</a> 2006-11-20 12:43 <a href="http://www.blogjava.net/43880800/archive/2006/11/20/82227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>