连接到Oracle数据库(ODP.net)时调用“.ctor”的异常

时间:2015-08-11 08:17:24

标签: oracle powershell powershell-v2.0 odp.net

这是我连接Oracle数据库的代码:

[Reflection.Assembly]::LoadFile("E:\oracle\product\11.2.0\ODP.NET\bin\2.x\Oracle.DataAccess.dll")
$constr = "User Id=system;Password=password;Data Source=SERVER\INST"
$conn= New-Object Oracle.DataAccess.Client.OracleConnection($constr)

第一行工作正常。我可以看到程序集正在加载, GAC 是真的。

直到第二行没有错误。

但是当它到达第3行时,我收到了这个错误:

  

New-Object:使用“1”参数调用“.ctor”的异常:“'Oracle.DataAccess.Client.Oracle Connection'的类型初始值设定项引发异常。   $ conn = New-Object<<<< Oracle.DataAccess.Client.OracleConnection($构造)     + CategoryInfo:InvalidOperation:(:) [New-Object],MethodInvocationException     + FullyQualifiedErrorId:ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand   “

任何人都可以就此提出建议。

Powershell版本是2。

更新

PS I:\> [Reflection.Assembly]::LoadFile("E:\oracle\product\11.2.0\ODP.NET\bin\2.x\Oracle.DataAccess.dll")

GAC    Version        Location
---    -------        --------
True   v2.0.50727     C:\Windows\assembly\GAC_64\Oracle.DataAccess\2.112.3.0__89b483f429c47342\Oracle.DataAccess.dll

1 个答案:

答案 0 :(得分:1)

<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <h:form prependId="false"> <p:dataTable id="dataTable" var="car" value="#{tableBean.cars}" paginator="true" rows="10" paginatorTemplate="CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"rowsPerPageTemplate="5,10,15"> <f:facet name="header"> Ajax Pagination </f:facet> <p:column> <f:facet name="header"> <h:outputText value="Brand" /> </f:facet> <h:outputText value="#{car.brand}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Year" /> </f:facet> <h:outputText value="#{car.year}" /> </p:column> <p:column> <f:facet name="header"> <h:outputText value="Color" /> </f:facet> <h:outputText value="#{car.color}" /> </p:column> </p:dataTable> </h:form> </h:body> </html> 是特定于体系结构的。这意味着您必须确保PowerShell进程和Oracle.DataAccess.dll程序集具有相同的位(32或64)。

我建议您使用与平台无关的Oracle managed driver吗?它比特定于Oracle客户端的Oracle.DataAccess.dll工作得更好。

另请参阅我的回答here