plsql连接多个数据库设置
前一段时间在网上看到O r acle Clien tDriv er是微软出的连接N h iber nate和Oracle的字符串。而OracleData Clien tDriv er是Or acle自己出的。有很多的地方O racleData Clien tDriv er比OracleClientDriver要优秀。而且微软规定以后可能要废弃Ora cleClientDriver。所以要将项目中用到的O r acle Clien tDriv e r改为O r acle DataC lient Drive r。当然这时会报错的然后将O racle.DataAc cess .dll”拷贝到网站的bin目录下。
再次运行程序,会抛出“无法将类型为“Oracle.DataAc cess.Client.Oracle Conne ction”的对象强制转换为类型“S ystem.Data.Common.DbConn ectio n”。”异常。引发这个异常的是“NHibernate\T ool\hbm2ddl\SuppliedCon nectionPro vider Conne ction Helpe r.cs”。第25行:“connec tion= (DbConn ectio n)provid er.GetConnection();”。有一个方法可以绕过这行代码的执行,就是在hib ernat l里增加一行“<proper ty name="hbm2dd l.keywords">none</proper ty>”。
在此运行提示缺少Ora Ops10.dll---这个问题一直困扰小弟。最后在师兄的提醒下。在自己的机器上安装了O r acle的精简版。是10.2.0的版本然后缺少Ora Ops10.dll的问题解决了(原因是自己的机器上没有安装Ora cle的部分dll造成的)。
正当小弟欣喜之时。问题在此降临。我发现自己原先的NHiberna te连接O r acle的字符串有问题。运行T
est后发现竟然连不上了。暴怒之下上网搜资料。发现是原先自己制作的客户端跟现在安装的Or acle的精简版在端口上冲突了。考虑再三。将原先配置的O racle客户端和环境变量。以及现在安装的Orac le精简版全部删掉。没想到。用360和微软自带的添加删除程序竟然不到O racle的程序。幸好orac le碰上克星了---删除Orac le的方法:先在服务里面将Orac le的4个服务停掉。然后将Ora c e的安装文件删掉。然后去注册表里将带Or acle的文件删掉,当然。这时候要小心了vs2008自带的O racle连接字符串不要删。可能有几个Oracle删不掉。没有关系我们下一个优化大师。点击清理注册表。清理完后。在注册表里点击搜索Or acle已经没有东西了。---
删完之后重启电脑。然后重新安装O racle。----这是在运行T est。哈哈---可以将VS2008跟O r acl e连上了。然后在路径F:\Simple C\OracleXE\app\oracle\produc t\10.2.0\server\NETWORK\ADMIN下面到sq lnet.ora文件在字段--
XE =
(DESCRI PTION =
(ADDRES S = (PROTOC OL = TCP)(HOST = yinfuq ing)(PORT = 1521))
(CONNEC T_DAT A =
(SERVER = DEDICA TED)
(SERVIC E_NAM E = XE)
)
)
的后面加上
YANKUA NG=
(DESCRI PTION =
(ADDRES S_LIS T =
(ADDRES S = (PROTOC OL = TCP)(HOST = 202.194.254.198)(PORT = 1521))
)
(CONNEC T_DAT A =
(SERVIC E_NAM E = yankua ng.sys)
)
)
保存后运行T est。晕了。不但连不上了。连连接Ora cleXE版本的也不行了。提示无法解析指定的连接标识符
没办法在上网查资料发现原来我加的字符串前面有空格。可能这个问题大家不是很明白。我放大一下
空格+YANKUA NG=
(DESCRI PTION =
(ADDRES S_LIS T =
(ADDRES S = (PROTOC OL = TCP)(HOST = 202.194.254.198)(PORT = 1521))
)
(CONNEC T_DAT A =
(SERVIC E_NAM E = yankua ng.sys)
)
)
然后我将空格去掉我们可以用Editplus来打开。可以清楚的看到前面有空格。去掉之后问题解决了。现在不但自己机器上的精简版可用。远程的Ora cle也可以连上了
问题终于完成了。现在的连接代码小弟将他们贴出来供大家参考:
这是tnsn ames.ora的代码:
XE =
(DESCRI PTION =
(ADDRES S = (PROTOC OL = TCP)(HOST = yinfuq ing)(PORT = 1521))
(CONNEC T_DAT A =
(SERVER = DEDICA TED)
(SERVIC E_NAM E = XE)
)
)
YANKUA NG=
(DESCRI PTION =
(ADDRES S_LIS T =
(ADDRES S = (PROTOC OL = TCP)(HOST = 202.194.254.198)(PORT = 1521))
)
(CONNEC T_DAT A =
(SERVIC E_NAM E = yankua ng.sys)
)
)
EXTPRO C_CON NECTI ON_DA TA =
(DESCRI PTION =
(ADDRES S_LIS T =
(ADDRES S = (PROTOC OL = IPC)(KEY = EXTPRO C_FOR_XE))
)
(CONNEC T_DAT A =
(SID = PLSExt Proc)
(PRESEN TATIO N = RO)
)
)
ORACLR_CONN ECTIO N_DAT A =
(DESCRI PTION =
(ADDRES S_LIS T =
(ADDRES S = (PROTOC OL = IPC)(KEY = EXTPRO C_FOR_XE))
)
(CONNEC T_DAT A =
(SID = CLRExt Proc)
(PRESEN TATIO N = RO)
)
)
这是hibe rnatl的代码:
<?xml versio n="1.0" encodi ng="utf-8" ?>
<config urati on>
<config Secti ons>
<sectio n name="hibern ate-config urati on"
type="NHiber nate.Cfg.Config urati onSec tionH andle r, NHiber nate" />
</config Secti ons>
<hibern ate-config urati on xmlns="urn:nhiber nate-config urati on-2.2" >
<sessio n-factor y>
<proper ty
name="connec tion.driver_clas s">NHiber nate.Driver.Oracle DataC lient Drive r</proper ty> <proper ty name="connec tion.connec tion_strin g">
<!--Data Source=yankua ng;User ID=yankua nguse r;Passwo rd=yankua nguse r-->
Data Source=XE;User ID=system;Passwo rd=sdie?!3406
</proper ty>
安装plsql<proper ty name="show_s ql">false</proper ty>
<!--<proper ty name="dialec t">NHiber nate.Dialec t.MsSql2005Di alect</proper ty>-->
<proper ty name="dialec t">NHiber nate.Dialec t.Oracle10gDi alect</proper ty>
<proper ty name="use_ou ter_j oin">true</proper ty>
<proper ty name="comman d_tim eout">10</proper ty>
<proper ty name="hbm2dd l.keywor ds">none</proper ty>
<proper ty name="query.substi tutio ns">true 1, false0, yes 'Y', no 'N'</proper ty>
<proper ty name="proxyf actor y.factor y_cla ss">NHiber nate.ByteCo de.Castle.ProxyF actor yFact ory, NHiber nate.ByteCo de.Castle</proper ty>
<mappin g assemb ly="Yalta.Core"/>
</sessio n-factor y>
</hibern ate-config urati on>
</config urati on>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论