这是我连接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
答案 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。