﻿<?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-飞鸟JAVA-文章分类-数据库</title><link>http://www.blogjava.net/yczz/category/20842.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 13 Sep 2007 18:45:58 GMT</lastBuildDate><pubDate>Thu, 13 Sep 2007 18:45:58 GMT</pubDate><ttl>60</ttl><item><title>ORACLE查询树型关系（connect by prior start with）</title><link>http://www.blogjava.net/yczz/articles/144455.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Wed, 12 Sep 2007 05:12:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/144455.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/144455.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/144455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/144455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/144455.html</trackback:ping><description><![CDATA[<div class="tit">ORACLE查询树型关系（connect by prior start with）</div>
<div class="date">2007年07月26日 星期四 上午 10:26</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt">
            <p>connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中，而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。</p>
            <p>典型的使用方法就是：<br />
            select * from table connect by prior cur_id=parent_id start with cur_id=???<br />
            例如：<br />
            a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b<br />
            1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
            2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
            3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
            4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br />
            5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</p>
            <p>如果想查找a=2及其下面的所有数据，则：<br />
            select * from table connect by prior a=b start with a=2<br />
            a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b<br />
            2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
            4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2</p>
            <p>这些只是基础，皮毛。其实只要你灵活的构造查询语句。可以得出意想不到的结果。比如生成树每一个路径。<br />
            但是这些记录组成的树必须正常才可以。如果有互为父子的情况，就会出现循环错误！</p>
            <p>示例：</p>
            <div align="center" forimg="1">C_AREA_CDE&nbsp; C_SNR_AREA<br />
            1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br />
            101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
            &nbsp;&nbsp;&nbsp;103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; <br />
            </div>
            <p align="center">表数据</p>
            <p>select * from tb_cus_area_cde</p>
            <p>--子取父<br />
            select * from tb_cus_area_cde a&nbsp;&nbsp;&nbsp;&nbsp;<br />
            CONNECT BY PRIOR&nbsp;&nbsp; a.c_snr_area=a.c_area_cde START WITH a.c_area_cde='1040101'</p>
            <p>--父取子<br />
            select * from tb_cus_area_cde a&nbsp;&nbsp;&nbsp;&nbsp;<br />
            CONNECT BY PRIOR&nbsp;&nbsp; a.c_area_cde=a.c_snr_area START WITH a.c_snr_area is null</p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/yczz/aggbug/144455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-09-12 13:12 <a href="http://www.blogjava.net/yczz/articles/144455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在windows下管理oracle9i 服务</title><link>http://www.blogjava.net/yczz/articles/123123.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Sat, 09 Jun 2007 16:04:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/123123.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/123123.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/123123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/123123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/123123.html</trackback:ping><description><![CDATA[<p><span class=NewsContent>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动。在Oracle 运行在Windows 下时，它会消耗很多资源，并且有些服务可能我们并不总是需要。你会发现不使用Windows 图形界面就可以快速、完全地关闭数据库会很有用。 </p>
<p>只要拥有管理员权限就可以通过net start 启动一个服务，或者通过net stop 命令停止一个服务，从而控制以下服务中的任何一个。在Windows XP 中，可以通过在控制面板的服务中改变想要禁用的服务（OracleOraHome...）的启动类型（Startup Type）参数，双击某个服务查看其属性，然后将启动类型属性从自动改为手动。
<p>使数据库在本地工作唯一需要运行的服务是OracleServiceORCL 服务（其中ORCL 是SID）。这个服务会自动地启动和停止数据库（使用shutdown 中断）。如果安装了一个数据库，它的缺省启动类型为自动。如果主要是访问一个远程数据库，那么可以把启动类型由自动改为手动。
<p>OracleOraHome92HTTPServer 服务（OraHome92 是Oracle Home 的名称）是在安装Oracle 时自动安装的Apache 服务器。一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面，比如说JSP 或者modplsql 页面。
<p>OracleOraHome92TNSListener 服务只有在数据库需要远程访问时才需要（无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问）。不用这个服务就可以访问本地数据库。
<p>OracleOraHome92ClientCache 服务缓存用于连接远程数据库的Oracle Names 数据。正常情况下该服务的启动类型是配置为手动的。然而，除非有一台Oracle Names 服务器，否则没有必要运行这个服务。
<p>有四个服务是Oracle 企业管理器所必须的（Oracle Enterprise Manager），这个服务分别为：OracleOraHome92Agent（智能代理），该服务监视数据库和企业管理器请求，缺省启动类型为自动。OracleOraHome92SNMPPeerEncapsulator 和OracleOraHome92SNMPPeerMasterAgent，处理安全网络管理协议服务。OracleOraHome92PagingServer 通过一个使用调制解调器的数字传呼机或者电子邮件发出警告。
<p>OracleMTSRecoveryService 是可选的，该服务允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务的资源管理器。
<p>如果只是偶尔使用一下数据库，那么可以创建一个简单的脚本任务来启动和关闭服务器，这样每次只要双击脚本就可以了，可以不使用图形界面。
<p>1. 保存一个快捷方式自动地装载这些文件。
<p>2. 将Oracle 服务设为手动避免在Windows 启动时启动。
<p>REM "dbstart.cmd"@echo offset ORAHOME="OraHome92"set ORASID="ORCL"net start OracleService%ORASID%REM net start Oracle%ORAHOME%HTTPServerREM net start Oracle%ORAHOME%TNSListenerREM net start Oracle%ORAHOME%ClientCacheREM net start Oracle%ORAHOME%AgentREM net start Oracle%ORAHOME%SNMPPeerEncapsulatorREM net start Oracle%ORAHOME%SNMPPeerMasterAgentREM net start Oracle%ORAHOME%PagingServerREM net start OracleMTSRecoverService
<p>REM "dbshut.cmd"@echo offset ORAHOME="OraHome92"set ORASID="ORCL"net stop OracleService%ORASID%REM net stop Oracle%ORAHOME%HTTPServerREM net stop Oracle%ORAHOME%TNSListenerREM net stop Oracle%ORAHOME%ClientCacheREM net stop Oracle%ORAHOME%AgentREM net stop Oracle%ORAHOME%SNMPPeerEncapsulatorREM net stop Oracle%ORAHOME%SNMPPeerMasterAgentREM net stop Oracle%ORAHOME%PagingServerREM net stop OracleMTSRecoverService</span></p>
<img src ="http://www.blogjava.net/yczz/aggbug/123123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-06-10 00:04 <a href="http://www.blogjava.net/yczz/articles/123123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OracleOraHome90Agent服务如果不能启动解决</title><link>http://www.blogjava.net/yczz/articles/123122.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Sat, 09 Jun 2007 15:56:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/123122.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/123122.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/123122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/123122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/123122.html</trackback:ping><description><![CDATA[症状：原来是能启动的，但是在我改了域名和机器名之后就不能启动:<br><br>解决：<br>1.删除%oracle_home%\network\agent\*.Q<br>2.重新启动服务即可<br>c:\agentctl start<br><br><br>解释：<br>OracleOraHome90Agent服务如果不能启动，则OIA也就不能运行，OIA不能运行则无法实现在OMS登陆后的Intelligent Agent节点搜索功能，如果不是Intelligent Agent自动搜索的节点，而是手动搜索配置的节点，则登陆OMS后无法使用诸多OMS提供的GUI功能，例如数据备份和数据导入/导出等。<br><br>而由于OracleOraHome90Agent服务的启动和Oracle安装时的机器名域名等密切相关，造成后来改动机器名后，OracleOraHome90Agent总是无法启动，疑惑了很久，查了很多资料，都没能解决这个问题，于是抱着试试看的心情，在Google上以&#8220;OracleOraHome92Agent&#8221;为关键字搜索，结果就出现了最上面所提供的解决方案，真是踏破铁鞋无觅处，得来全不费功夫阿！看了那些*.Q的二进制文件，估计是Agent在安装时的配置信息，在机器名发生变动后，启动OracleOraHome90Agent服务时，OracleOraHome90Agent要读取这些二进制文件中的配置信息，配置文件中的机器名与现在的机器名不符合，造成了OracleOraHome90Agent不能启动，将这些配置文件全部删除，然后用命令行agentctl start从新启动OracleOraHome90Agent，则会从新将现有的最新机器名写入到配置信息，并从新创建这些配置文件，因而问题得到解决。<br><br>总结：<br><br>Oracle对服务器机器名，域名等信息高度依赖，所以如无特殊要求，在Oracle数据库安装后，不要轻易修改机器名和域名等相关信息，不然可能会造成很多不必要的麻烦。
<img src ="http://www.blogjava.net/yczz/aggbug/123122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-06-09 23:56 <a href="http://www.blogjava.net/yczz/articles/123122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Orcale中文显示和字符编码</title><link>http://www.blogjava.net/yczz/articles/106475.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Mon, 26 Mar 2007 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/106475.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/106475.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/106475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/106475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/106475.html</trackback:ping><description><![CDATA[在国内外大中型数据库管理系统中，把ORACLE作为数据库管理平台的用户比较多。ORACLE   不论是数据库管理能力还是安全性都是无可非议的，但是，它在汉字信息的显示方面着实给中国用户带来不少麻烦，笔者多年从事ORACLE数据库管理，经常收到周围用户和外地用户反映有关ORACLE数据库汉字显示问题的求援信，主要现象是把汉字显示为不可识别的乱码，造成原来大量信息无法使用。本文将就这一问题产生的原因和解决办法进行一些探讨，供存在这方面问题的用户朋友参考。    <br />   <br />  ----   1、原因分析    <br />   <br />  ----   通过对用户反映情况的分析，发现字符集的设置不当是影响ORACLE数据库汉字显示的关键问题。那么字符集是怎么一会事呢？字符集是ORACLE   为适应不同语言文字显示而设定的。用于汉字显示的字符集主要有ZHS16CGB231280，US7ASCII，WE8ISO8859P1等。字符集不仅需在服务器端存在，而且客户端也必须有字符集注册。服务器端，字符集是在安装ORACLE时指定的，字符集登记信息存储在ORACLE数据库字典的V$NLS_PARAMETERS表中；客户端，字符集分两种情况，一种情况是sql*net   2.0以下版本，字符集是在windows的系统目录下的oracle.ini文件中登记的；另一种情况是sql*net   2.0以上（即32位）版本，字符集是在windows的系统注册表中登记的。要在客户端正确显示ORACLE   数据库汉字信息，首先必须使服务器端的字符集与客户端的字符集一致；其次是加载到ORACLE数据库的数据字符集必须与服务器指定字符集一致。因此，把用户存在的问题归纳分类，产生汉字显示异常的原因大致有以下几种：    <br />   <br />  ----   1.   1服务器指定字符集与客户字符集不同，而与加载数据字符集一致。    <br />   <br />  ----   这种情况是最常见的，只要把客户端的字符集设置正确即可，解决办法见2.1。    <br />   <br />  ----   1.   2服务器指定字符集与客户字符集相同,与加载数据字符集不一致。    <br />   <br />  ----   这类问题一般发生在ORACLE版本升级或重新安装系统时选择了与原来服务器端不同的字符集，而恢复加载的备份数据仍是按原字符集卸出的场合,以及加载从其它使用不同字符集的ORACLE数据库卸出的数据的情况。这两种情况中，不管服务器端和客户端字符集是否一致都无法显示汉字。解决办法见2.2。    <br />   <br />  ----   1.3服务器指定字符集与客户字符集不同,与输入数据字符集不一致。    <br />   <br />  ----   这种情况是在客户端与服务器端字符集不一致时，从客户端输入了汉字信息。输入的这些信息即便是把客户端字符集更改正确，也无法显示汉字。解决办法见2.3。    <br />   <br />  ----   2．解决办法    <br />   <br />  ----   下面将分别对上述三种情况给出解决办法。为了叙述方便，假设客户端使用WINDOWS95/98环境，并已成功地配置了TCP/IP协议，安装了ORACLE的sql*net，sql*pluse产品。    <br />   <br />  ----   2.1   设置客户端字符集与服务器端字符集一致    <br />   <br />  ----   假设当前服务器端使用US7ASCII字符集。    <br />   <br />  ----   （1）查看服务器端字符集    <br />   <br />  ----   通过客户端或服务器端的sql*plus登录ORACLE的一个合法用户，执行下列SQL语句：    <br />   <br />  　   SQL   &gt;   select   *   from   V$NLS_PARAMETERS    <br />  parameter　　　　　　　　　　　　value  <br />  NLS_LANGUAGE　　　　　　　　　   AMERICAN  <br />  NLS_TERRITORY　　　　　　　　　AMERICA  <br />  ….　　　　　　　　　　　　　　   ….  <br />  NLS_CHARACTERSET　　　　　　　   US7ASCII  <br />  NLS_SORT　　　　　　　　　　　   BINARY  <br />  NLS_NCHAR_CHARACTERSET　　　　   US7ASCII  <br />   <br />  ----   从上述列表信息中可看出服务器端ORACLE数据库的字符集为&amp;acute;US7ASCII&amp;acute;。    <br />   <br />  ----   （2）按照服务器端字符集对客户端进行配置    <br />   <br />  ----   配置方法有两种：    <br />   <br />  安装ORACLE的客户端软件时指定  <br />  ----   在安装ORACLE的客户端产品软件时，选择与ORACLE服务端一致的字符集（本例为US7ASCII）即可。    <br />   <br />  修改注册信息的方法  <br />  ----   根据ORACLE   客户端所选sql*net   的版本分为下列两种情况：    <br />   <br />  ----   a.   客户端为   sql*net   2.0   以下版本    <br />   <br />  ----   进入Windows的系统目录，编辑oracle.ini文件，用US7ASCII替换原字符集，重新启动计算机，设置生效。    <br />   <br />  ----   b.   客户端为   sql*net   2.0   以上版本    <br />   <br />  ----   在WIN98   下   运   行REGEDIT,第一步选HKEY_LOCAL_MACHINE,第二步选择SOFTWARE，   第三步选择   ORACLE，   第四步选择   NLS_LANG，   键   入   与服   务   器   端   相   同   的   字   符   集（本例为：AMERICAN_AMERICAN.US7ASCII）。    <br />   <br />  ----   2.2   强制加载数据字符集与服务器端字符集一致    <br />   <br />  ----   假设要加载数据从原ORACLE数据库卸出时的字符集为US7ASCII，当前ORACLE服务器字符集为WE8ISO8859P1。    <br />   <br />  ----   下面提供三种解决方法：    <br />   <br />  ----   （1）   服务器端重新安装ORACLE    <br />   <br />  ----   在重新安装ORACLE   时选择与原卸出数据一致的字符集（本例为US7ASCII）。    <br />   <br />  ----   加载原卸出的数据。    <br />   <br />  ----   这种情况仅仅使用于空库和具有同一种字符集的数据。    <br />   <br />  ----   （2）强行修改服务器端ORACLE当前字符集    <br />   <br />  ----   在用imp命令加载数据前，先在客户端用sql*plus登录system   DBA用户，执行下列SQL语句进行当前ORACLE数据库字符集修改：    <br />   <br />  SQL   &gt;   create   database　character   set   US7ASCII  <br />  *   create   database   character   set   US7ASCII  <br />  　　　ERROR   at   line   1:  <br />  ORA-01031:   insufficient   privileges  <br />   <br />  ----   你会发现语句执行过程中，出现上述错误提示信息，此时不用理会，实际上ORACLE数据库的字符集已被强行修改为US7ASCII，接着用imp命令装载数据。等数据装载完成以后，shutdown   数据库，再startup   数据库，用合法用户登录ORACLE数据库，在sql&gt;命令提示符下，运行select   *   from   V$NLS_PARAMETERS，可以看到ORACLE数据库字符集已复原，这时再查看有汉字字符数据的表时，汉字已能被正确显示。    <br />   <br />  ----   （3）利用数据格式转储，避开字符集限制    <br />   <br />  ----   这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下：    <br />   <br />  ----   先将数据加载到具有相同字符集的服务器上，然后用转换工具卸出为foxbase   格式或access格式数据库，再用转换工具转入到不同字符集的ORACLE数据库中，这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象power   builder5.0以上版本提供的pipeline，Microsoft   Access数据库提供的数据导入/导出功能等。转换方法参见有关资料说明。.    <br />   <br />  ----   2.3匹配字符集替换汉字    <br />   <br />  ----   对于1.3提到的情况，没有很好的办法，只能先把客户端与服务器端字符集匹配一致后，根据原输入汉字的特征码替换汉字字符部分。　   <img src ="http://www.blogjava.net/yczz/aggbug/106475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-03-26 17:49 <a href="http://www.blogjava.net/yczz/articles/106475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Weblogic 连接池 + Oracle + Servlet" 的无状态SessionBean 全攻略 </title><link>http://www.blogjava.net/yczz/articles/106386.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Mon, 26 Mar 2007 05:56:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/106386.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/106386.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/106386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/106386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/106386.html</trackback:ping><description><![CDATA[
		<p>jbuilder7 + welogic6.1+ Oracle8i</p>
		<p>一个无状态的Session bean<br />连接weblogic 数据库连接池<br />取 Oracle一个表的一个字段值<br />返回给客户端 （servlet)</p>
		<p>就这些，now整理成笔记。</p>
		<p>1. 确认安装好Oralce 和 Webligc 6.1 .Jbuilder7<br />   都是默认安装<br />2. 开始配置Jbuilder7 和Weblogic 的连接<br />   我参考了一篇Jbuilder6的配置 ，大同小异<br />   进入JB7<br />   a.打开Tools--&gt;Configue Servers--&gt; 选择weblogic6.x+ <br />                Enable Server 打勾<br />      选择正确的Weblgic 安装路径<br />    注意 显示器分辨率为1024*768 才能看到下面的OK 按钮<br />    在General页 的Home Dircetory 和 Work Directory一样 如：<br />    D:/bea/wlserver6.1<br />    在Custome页中填入weblogic 启动密码<br />    其他默认<br />  b.打开Tools--&gt; Enterprise Setup --&gt;CORBA <br />               new 一个 起名为Weblogic的项目<br />               在Path for ORB tools下加入Weblogic 的目录<br />               在Library for project 下加入 weblogic 6.x delopy 库<br />               在compiler command 填上 idcj.exe <br />               在Command ... for oupput Dircetory 填上一个你自己的输出路径<br />  c 最后确认 Projects--&gt; Default Projects Properties--&gt;Server<br />              选的Application Server 是Weblogic 6.x <a href="file://应/">file://应</a>该已经是了，再看看<br />  d 最后到我的电脑点右键去修改系统变量<br />              Temp 和Tmp<br />              因为默认得目录名有空格，JB7过敏这个，改为一个没空格的目录 <br />              如C:\temp 当然你得先建立这个目录<br />              <br /> 3.下来在Weblogic中建立Oracle的连接池<br />  . 在Weblogic 控制台<br />       Services --&gt;JDBC --&gt;Connection Pools--&gt; Configure a new JDBC Connection Pool<br />       在General属性页  <br />            Name :连接池名 <a href="file://我/">file://我</a>取名为testPool ,注意名字区分大小写<br />            URL: JDBC 连接字符串 <a href="file://Oracle/">file://Oracle</a>的 为： jdbc:oracle:thin:@xiw:1521:sdb<br />                                        xiw为服务器名 也可为IP地址<br />                                        sdb为数据库名<br />            Driver Classname： 填入 oracle.jdbc.driver.OracleDriver<br />            Properties(key=value): 填入 user=system  <a href="file://即/">file://即</a>Oracle的用户名，也可以在这里填入密码<br />            Password 先不填<br />            点击Apply // Weblogic 如果有图标闪动，表示需要重启动Webligoc设置才能生效 后面不在说明<br />            然后点击Password 输入数据库密码  <br />       在Connection 页 <br />             Initial Capacity : 1 <a href="file://初/">file://初</a>始连接数<br />             Maximum Capacity ：10 <a href="file://最/">file://最</a>大连接数<br />             Capacity Increment ：1 // 初始不够时，每次增加连接数<br />             Refresh Period: 5 <a href="file://防/">file://防</a>止网络意外中断时，每5分钟刷新一次连接，断了就自动恢复<br />             其他默认<br />       在testing 页<br />              Test Table Name：tab // Oracle 已经有了这个表 ，用其他Oracle系统表也行<br />              下面两项选中 打勾 表示启用意外端开时，自动刷新恢复连接<br />       图标闪动，表示需要重启动Webligoc <br />       重启后：<br />          在： Serviers --&gt;JDBC --&gt;Connection Pools--&gt;testPool页 <br />                target页 将myserver移到chosen 中 点Apply <a href="file://表/">file://表</a>示那个服务器启用这个池<br />                如果有错误，一般就是前面的URL错 或没有testing指定的那个表，我在这绊了很久 <br />          可能需要重启<br />          然后到Services--&gt;JDBC--&gt;Data Source <br />               Configure a new JDBC Data Source<br />               Name:自己起吧<br />                   JNDI Name: 起名为MyJNDI <a href="file://这/">file://这</a>个后面编程要用，区分大小写<br />                   Pool Name：testPool <a href="file://前/">file://前</a>面建的那个池的名字<br />                   然后点击Apply<br />             在target页，和前面一样，将myserver移到chosen Apply<br />             此时若有错误，一般为连接池名大小写问题   <br />        重启动Weblogic 完成<br />4 开始编程<br />  ·在JB7中新建一个空项目<br />  ·在New 的Enterprise 页Ejb2.0 bean designer<br />  ·在可视化设计窗口，右键，New Session bean ,起名字为testsqlBean  type为stateless <br />  ·启动Oralce <br />  ·添加一个表table3 字段名 A1 再加一条数据 'OKOK' <a href="file://最/">file://最</a>后在Servlet中返回OKOK就算成功<br />  ·在该项目中New一个Class ,作为返回结果用，该类进行了序列化<br />   该类取名为TestString  代码如下，较为粗糙，没有优化，其实可以直接返回值的，凑合看吧。<br />package testpool;<br />import javax.ejb.*;<br />import java.sql.*;<br />import javax.sql.*;<br />public class TestString implements java.io.Serializable{<br />        private String returnS;<br />        public TestString(String ss){<br />                returnS=ss;<br />        }</p>
		<p>        public String returnStr(){<br />          return returnS;<br />        }<br />        public String getA1(DataSource  ds, String sql)<br />        {String temp="nono"; <a href="file://默/">file://默</a>认为no  Servlet要是返回这个就是失败了<br />        try{<br />         Connection  conn=ds.getConnection();<br />         Statement stmt=conn.createStatement();<br />         stmt.executeQuery(sql);<br />         ResultSet rs=stmt.getResultSet();<br />         int i=rs.getRow(); <a href="file://没/">file://没</a>显示改值，调试时看了看<br />         if(rs.next())<br />           {temp=rs.getString(1); <br />           }<br />         rs.close();<br />         conn.close();<br />       }<br />        catch(Exception e)<br />        {<br />          e.printStackTrace();<br />        }<br />        return temp;<br />        }<br />}<br />  ·以下修改testsqlbean.java<br />  需要添加一些类<br />  import java.sql.*;<br />  import javax.sql.*;<br />  其他Home接口或Remote接口用到诸如ResultSet ,DataSource 得自己加入就行，不再复述<br />  添加几个属性<br />  String returnString;<br />  DataSource  ds;<br />  <br />  ·同时需要修改testsqlbean的ejbCreate代码为：<br />  public void ejbCreate() throws CreateException {<br />    try{<br />    Context  ctx=new  InitialContext();<br />    ds=(DataSource)ctx.lookup("MyJNDI"); // MyJNDI为前面配置的Weblogic的JDBC的JNDI名<br />    }<br />    catch(Exception e)<br />   { }<br />   }<br />  ·然后。在可视化设计窗口 testsqlBean上右键 add method 取名为getMyConn 返回类型为前面自建的TestString<br />   参数为String sql<br />   最后修改该函数代码如下：<br />   public TestString getMyConn(String sql) {<br />   TestString t1=new TestString(sql);<br />   String returnString=t1.getA1(ds,sql);<br />   return new TestString(returnString);<br />   }     <br />  .完成后 Make Project 一次编译通过后<br />  ·在项目文件列表上，点击web run<br />  此时不要人工启动Weblogic 让JB7去启动它<br />  如果没有错误，则EJB被自动部署到weblogic上，<br />  <br />  · 编一个Servlet作为客户端  <br />  用JB7的New 一个Servlet 起名为testpoolServlet<br />  全部代码如下<br />  package testpool;</p>
		<p>import javax.servlet.*;<br />import javax.servlet.http.*;<br />import java.io.*;<br />import java.sql.*;<br />import java.util.*;<br />import javax.naming.*;<br />import javax.ejb.*;<br />import java.rmi.RemoteException;<br />import java.rmi.Remote;<br />import testpool.testsql;<br />import testpool.testsqlHome;</p>
		<p>public class testpoolServlet extends HttpServlet {<br />  static final private String CONTENT_TYPE = "text/html; charset=GBK";<br />  TestVector myStr;</p>
		<p>  <a href="file://Initialize/">file://Initialize</a> global variables<br />  public void init() throws ServletException {<br />  }<br />  <a href="file://Process/">file://Process</a> the HTTP Get request<br />  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />    response.setContentType(CONTENT_TYPE);<br />    String sql="select * from table3"; <a href="file://客/">file://客</a>户端给EJB的sql语句<br />    PrintWriter out = response.getWriter();<br />    out.println("");<br />    out.println("");<br />    out.println("");<br />    out.println(" 
</p>
		<table>
				<tbody>
						<tr>");<br />    try {<br />      Context context=new  InitialContext();<br />      Object objref = context.lookup("testsqlBean");// EJB中那个SessionBean的名字<br />     testsqlHome home = (testsqlHome)javax.rmi.PortableRemoteObject.narrow(objref,testsqlHome.class);<br />      testsql servletsql=home.create(); <br />      TestString myTStr=servletsql.getMyConn(sql);<br />      String myStr=myTStr.returnStr();<br />      out.println(" 
<td>This is=="+myStr+"</td>");<br />    out.println("</tr>
				</tbody>
		</table>");<br />    out.println(" 
<p>The servlet has received a GET. This is the reply.</p>");<br />    out.println("");<br />    } catch (Exception e) {<br />        out.println("A problem has occurred with the servlet.");<br />    }<br />  } 
<p></p><p>  <a href="file://Clean/">file://Clean</a> up resources<br />  public void destroy() {<br />  }<br />}<br />      <br /> .完成后 Web Run Use "testpoolServlet"  <br /> <br /> 或者·手工启动Weblogic 输入<a href="http://localhost:7001/testpoolservlet">http://localhost:7001/testpoolservlet</a><br /> <br /> 最后结果应该显示为             <br />                This is==okok<br />                The servlet has received a GET. This is the reply<br />                <br /> 一般错误发生为：刚才Oracle插入数据时，没有Commit,所以查询不到。<br />                为这个问题，曾迷惑我半天，失败啊，哈哈<br />   <br />   JB7还是不错的，可以运行时单步调试EJB <br />   还可以为Bean中建一个testsqlBeanTestClient1，不用Servlet也很简单，作为测试用，不再赘述  </p><img src ="http://www.blogjava.net/yczz/aggbug/106386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-03-26 13:56 <a href="http://www.blogjava.net/yczz/articles/106386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL*PLUS常用命令</title><link>http://www.blogjava.net/yczz/articles/105360.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Wed, 21 Mar 2007 12:09:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/105360.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/105360.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/105360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/105360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/105360.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
				<tbody>
						<tr>
								<td class="main_ArticleTitle" style="WORD-BREAK: break-all" align="middle" height="35">SQL*PLUS常用命令：</td>
						</tr>
						<tr>
								<td class="main_ArticleSubheading" style="WORD-BREAK: break-all">
								</td>
						</tr>
						<tr>
								<td class="Article_tdbgall" align="middle" height="23">其它编程相关 更新时间：2006-11-9 15:21:29 <a title="收藏的网页将被永久地保存到新浪ViVi收藏夹http://vivi.sina.com.cn" href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(vivi=window.open('http://vivi.sina.com.cn/collect/icollect.php?pid=2008&amp;title='+escape(d.title)+'&amp;url='+escape(d.location.href)+'&amp;desc='+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes'));vivi.focus();"><img src="http://www.itnet8.com/images/vivi_coop1.gif" align="absMiddle" border="0" /></a></td>
						</tr>
						<tr>
								<td height="6">
								</td>
						</tr>
						<tr>
								<td id="fontzoom" height="300">
										<p>SQL*PLUS<font face="新細明體">常用命令：</font><br />SQL&gt; edit s&lt;<font face="新細明體">回车</font>&gt;<br /><font face="新細明體">若当前目录不存在</font>s.sql<font face="新細明體">文件，自动生成</font>s.sql<font face="新細明體">文件，</font><br /><br />SQL&gt; @s&lt;<font face="新細明體">回车</font>&gt;<br /><font face="新細明體">系统会自动查询当前用户下的所有表、视图、同义词。</font><br /><br />@@<font face="新細明體">文件名　　　　</font><font face="新細明體">在</font>.sql<font face="新細明體">文件中调用令一个</font>.sql<font face="新細明體">文件时使用</font><br /><br />save <font face="新細明體">文件名　　　将缓冲区的命令以文件方式存盘，缺省文件扩展名为</font>.sql<br />get <font face="新細明體">文件名　　　</font><font face="新細明體">调入存盘的</font>sql<font face="新細明體">文件</font><br />start <font face="新細明體">文件名　　</font><font face="新細明體">运行调入内存的</font>sql<font face="新細明體">文件</font><br /><br />spool <font face="新細明體">文件名　　</font><font face="新細明體">把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上，默认文件扩展名为</font>.lst<br />spool<font face="新細明體">　　　　　　显示当前的“假脱机”状态</font><br />spool off<font face="新細明體">　　　　停止输出</font><br /><br /><font face="新細明體">例：</font><br />SQL&gt; spool a<br />SQL&gt; spool<br /><font face="新細明體">正假脱机到</font> A.LST<br />SQL&gt; spool off<br />SQL&gt; spool<br /><font face="新細明體">当前无假脱机</font><br /><br />exit<font face="新細明體">　　　　　　</font><font face="新細明體">退出</font>SQL*PLUS<br />desc <font face="新細明體">表名　　　　显示表的结构</font><br />show user<font face="新細明體">　　　　显示当前连接用户</font><br />show error<font face="新細明體">　　　</font><font face="新細明體">显示错误</font><br />show all<font face="新細明體">　　　　</font><font face="新細明體">显示所有</font>68<font face="新細明體">个系统变量值</font><br />edit<font face="新細明體">　　　　　　</font><font face="新細明體">打开默认编辑器，</font>Windows<font face="新細明體">系统中默认是</font>notepad.exe<font face="新細明體">，把缓冲区中最后一条</font>SQL<font face="新細明體">语句调入</font>afiedt.buf<font face="新細明體">文件中进行编辑</font><br />edit <font face="新細明體">文件名　　　把当前目录中指定的</font>.sql<font face="新細明體">文件调入编辑器进行编辑</font><br /><br />clear screen<font face="新細明體">　　</font><font face="新細明體">清空当前屏幕显示<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></font></p>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/yczz/aggbug/105360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-03-21 20:09 <a href="http://www.blogjava.net/yczz/articles/105360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下如何彻底删除Oracle</title><link>http://www.blogjava.net/yczz/articles/105287.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Wed, 21 Mar 2007 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/105287.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/105287.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/105287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/105287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/105287.html</trackback:ping><description><![CDATA[
		<div>Windows下如何彻底删除Oracle</div>
		<div>NT下如何彻底删除Oracle？ <br /> <br />软件环境： <br />1、Windows 2000+ORACLE 8.1.7<br />2、ORACLE安装路径为：C:\ORACLE<br /> <br />实现方法： <br />1、 开始－＞设置－＞控制面板－＞管理工具－＞服务<br />停止所有Oracle服务。<br /> <br />2、 开始－＞程序－＞Oracle - OraHome81－＞Oracle Installation Products－＞<br />Universal Installer<br />卸装所有Oracle产品，但Universal Installer本身不能被删除<br /> <br />5、运行regedit，选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE，按del键删除这个入口。<br /> <br />6、运行regedit，选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services，滚动<br />这个列表，删除所有Oracle入口。<br /> <br />7、 运行refedit，<br />HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application，<br />删除所有Oracle入口。<br /> <br />8、 开始－＞设置－＞控制面板－＞系统－＞高级－＞环境变量<br />删除环境变量CLASSPATH和PATH中有关Oracle的设定<br /> <br />9、从桌面上、STARTUP（启动）组、程序菜单中，删除所有有关Oracle的组和图标<br /> <br />10、 删除\Program Files\Oracle目录<br /> <br />11、 重新启动计算机，重起后才能完全删除Oracle所在目录<br /> <br />12、删除与Oracle有关的文件，选择Oracle所在的缺省目录C:\Oracle，删除这个入<br />口目录及所有子目录，并从Windows 2000目录（一般为C:\WINNT）下删除以下文<br />件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。<br /> <br />13、 WIN.INI文件中若有[ORACLE]的标记段，删除该段<br /> <br />14、 如有必要，删除所有Oracle相关的ODBC的DSN<br /> <br />15、 到事件查看器中，删除Oracle相关的日志<br /> <br />说明：<br />如果有个别DLL文件无法删除的情况，则不用理会，重新启动，开始新的安装，<br />安装时，选择一个新的目录，则，安装完毕并重新启动后，老的目录及文件就可以删除掉了。</div>
		<div> </div>
		<div> </div>
		<div>
				<br />删除Oracle  1<br />软件环境：  1、Windows 2000+ORACLE 8.1.7<br />             2、ORACLE安装路径为：C:\ORACLE<br />实现方法：<br />1、开始－＞设置－＞控制面板－＞管理工具－＞服务，停止所有Oracle服务。<br />2、 开始－＞程序－＞Oracle - OraHome81－＞Oracle Installation Products－＞Universal Installer，卸装所有Oracle产品，但Universal Installer本身不能被删除<br />5、运行regedit，选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE，按del键删除这个入口。<br />6、运行regedit，选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services，滚动这个列表，删除所有Oracle入口。<br />7、 运行regedit， HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application，删除所有Oracle入口。<br />8、 开始－＞设置－＞控制面板－＞系统－＞高级－＞环境变量删除环境变量CLASSPATH和PATH中有关Oracle的设定<br />9、从桌面上、STARTUP（启动）组、程序菜单中，删除所有有关Oracle的组和图标<br />10、删除\Program Files\Oracle目录<br />11、重新启动计算机，重起后才能完全删除Oracle所在目录<br />12、删除与Oracle有关的文件，选择Oracle所在的缺省目录C:\Oracle，删除这个入口目录及所有子目录，并从Windows 2000目录（一般为C:\WINNT）下删除以下文件ORACLE.ini、oradim73.ini、oradim80.ini、oraodbc.ini等等。<br />13、WIN.INI文件中若有[ORACLE]的标记段，删除该段<br />14、如有必要，删除所有Oracle相关的ODBC的DSN<br />15、到事件查看器中，删除Oracle相关的日志<br />说明：<br />如果有个别DLL文件无法删除的情况，则不用理会，重新启动，开始新的安装，<br />安装时，选择一个新的目录，则，安装完毕并重新启动后，老的目录及文件就可以删除掉了。<br />删除Oracle 2<br />如果需要卸载Oracle，请运行安装光盘上的安装文件Setup.exe，在“欢迎”窗口中，选择“卸装产品”按钮，进入“Invertory 目录”窗口：在该窗口中选择需要删除的产品（在产品名称前面的方框内打上在标记√），然后单击“删除”按钮即可；或者直接在开始菜单中找到Oracle for NT程序组下的Oracle installer，同样可以卸载Oracle。<br />卸载Oracle产品后，在系统的注册表内仍然有相关信息，您可以参考以下方法进行手工删除。<br />注意：对注册表的操作可能对系统产生严重影响，请在操作前进行备份，以便在系统异常时恢复到原来的注册表。该操作请参考Windows系统的相关说明。<br />运行RegEdit，在“HKEY_CURRENT_USER\Software”、“HKEY_LOCAL_MACHINE\Software”、“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services”主键中删除所有的Oracle入口（如果找到的话），然后重新启动计算机，如一切正常，则修改完成，如启动有错误，可能您对注册表的修改出错，运行RegEdit，将备份的注册表项目导入；如果误删了注册表中的“Microsoft ODBC for Oracle”，可用以下方法恢复：<br />将“HKEY_LOCAL_MACHINE\software\Microsoft\DataAccess”中的Version的值由‘2.1.1a’改为‘1.1.1a’然后重新安装财务软件，安装程序会自动安装 MADC，并恢复“Microsoft ODBC for Oracle”。（对Windows95/98，请立即进入Dos方式，将备份的system.dat文件（如system.bak）复制回system.dat）；<br />（对Windows NT，如启动失败，请重新启动计算机，在提示下，按空格键启动“硬件配置文件/已知的最新正确配置”菜单，该菜单将注册表还原到稳定状态。按照屏幕上的指示操作，可以将注册表还原为上次成功启动时的状态。）</div>
		<div> </div>
		<div> </div>
		<div> </div>
		<div>『如何完整的删除NT下的oracle』<br />可以完整的删除Oracle products, Oracle services和注册表信息  <br /> <br />当然是很少情况下才想到删除oracle，只有确定真的不用的时候才做。  <br />如果需要请备份所有相关的文件。  <br />（下面操作假设是使用OFA结构）  <br />NT环境下：  <br />1、以NT的Administrator 登陆  <br />2、通过控制面版-〉服务，停掉所有ORACLE服务  <br />3、打开注册表（REGEDIT命令），删除  <br />    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE   <br />4、打开注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services <br /> <br />    删除以ORACLE开头的所有服务  <br />5、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\A <br />pplication下  <br />    以ORACLE开头的所有服务  <br />6、关闭REGEDIT  <br />7、打开控制面版-〉系统-〉环境变量  <br />8、如果ORACLE安装了JRE,就删除%ORACLE_HOME%\BIN和JRE路径。  <br />    比如 \ORACLE\ORA81\BIN;G: \Program Files\Oracle\jre\1.1.7\bin  <br />9、删除\Winnt\Profiles\All Users\Start Menu\Programs\Oracle 和  <br />    \Winnt\Profiles\All Users\Start Menu\Programs\Oracle   <br />10、删除\Program Files\Oracle   <br />11、重新启动机器  <br />12、删除所有ORACLE目录（在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORA <br />CLE_HOMES下）  <br /> <br />在 Windows 95 / Windows 98:  <br />      1. 打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.   <br />      2.删除前面步骤中的第3步中的ORACLE  <br />      3. 删除AUTOEXEC.BAT 中的 %ORACLE_HOME%\bin 和 JRE   <br />      4. 删除所有ORACLE目录  <br />      5. \Program Files\Oracle   <br />      6. \Windows\Start Menu\Programs\Oracle - &lt;HOME&gt;   <br />         \Windows\StartMenu\Programs\Oracle   <br />      7. 重新启动</div>
<img src ="http://www.blogjava.net/yczz/aggbug/105287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-03-21 15:48 <a href="http://www.blogjava.net/yczz/articles/105287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>