我发现Oracle.ManagedDataAccess.Client
driver library在我的.NET应用程序中比标准的ODP.NET 250mb + Oracle客户端库更容易使用和部署。
Oracle驱动程序的托管版本是否可以与SQL Server Integration Services(SSIS)一起使用?
我使用的是最新版本的ManagedDataAccess客户端(121.1.2)和SQL Server 2012.
答案 0 :(得分:0)
是的!我已经在SSIS中使用了托管ODP.NET提供程序和非托管ODP.NET提供程序。诀窍是在全球范围内(在GAC中)注册提供者,这将使使用者可以看到它们。以下步骤基于可下载here的Oracle 18.3 32位和64位客户端的安装。这些步骤可以适用于其他客户端版本(例如nuget版本)。我不确定nuget下载是否带有OraProvCfg.exe
实用程序;但基本上是在修改MACHINE.CONFIG
的各个部分。 config.bat
还运行了一系列OraProvCfg.exe
步骤。您应该能够下载完整的客户端并执行以下步骤,对对MACHINE.CONFIG
的更改进行反向工程,然后可以手动实施。祝你好运!
该脚本假定您的客户端已安装到以下目录:
C:\ Oracle \ Product \ 32BIT \ 18.0.0 \ client_1 \
C:\ Oracle \ Product \ 64BIT \ 18.0.0 \ client_1 \
您可能需要更新下面的路径引用以反映您的安装。
Oracle here提供了不错的文档(尽管不容易发现)。
打开提升权限的命令提示符并执行以下命令,检查每个输出是否成功。
托管32位
CD "C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x86\"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x86\configure true
如果使用LDAP,则需要这样告知提供者以及在何处寻找LDAP.ORA;否则,您无需执行以下语句
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x86\OraProvCfg /action:unconfig /product:odpm /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x86\OraProvCfg /action:config /product:odpm /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll" /set:settings\LDAP_ADMIN:"C:\Oracle\Product\32BIT\18.0.0\client_1\network\admin" /set:settings\NAMES.DIRECTORY_PATH:"(LDAP)"
托管64位
CD "C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x64\"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x64\configure true
如果使用LDAP,则需要这样告知提供者以及在何处寻找LDAP.ORA;否则,您无需执行以下语句
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x64\OraProvCfg /action:unconfig /product:odpm /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\x64\OraProvCfg /action:config /product:odpm /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll" /set:settings\LDAP_ADMIN:"C:\Oracle\Product\32BIT\18.0.0\client_1\network\admin" /set:settings\NAMES.DIRECTORY_PATH:"(LDAP)"
不受管理的32位
CD "C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v2.0.50727 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:config /product:odp /frameworkversion:v2.0.50727 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:gac /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
CD "C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:config /product:odp /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:gac /providerpath:"C:\Oracle\Product\32BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
非托管64位
CD "C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v2.0.50727 /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:config /product:odp /frameworkversion:v2.0.50727 /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\OraProvCfg.exe /action:gac /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
CD "C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:unconfig /product:odp /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:config /product:odp /frameworkversion:v4.0.30319 /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\OraProvCfg.exe /action:gac /providerpath:"C:\Oracle\Product\64BIT\18.0.0\client_1\ODP.NET\bin\4\Oracle.DataAccess.dll"
注册提供程序后,它们将显示在ADO.NET数据提供程序下,如下所示: