0

我有一个 SSIS 包 ( Archive.dtsx ) 和一个配置文件 ( ArchiveConfig.dtsConfig )。该包使用 Oracle 连接,在设计器中可以正常工作。但是,一旦从命令行部署和执行,包就无法验证 Oracle 连接。包中的所有其他东西都运行良好,MS SQL 数据流功能正常,是 Oracle 数据流导致了问题,我相信它与配置文件有关。

我正在使用的命令:

dtexec /f "g:\SSIS\Archive.dtsx" /conf "g:\SSIS\ArchiveConfig.dtsConfig" /set "\Package.Variables[User::date].Value";"MAY_2004"

以及配置代码:

<?xml version="1.0"?>
<DTSConfiguration>
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo 
            GeneratedDate="5/2/2012 1:25:21 PM" 
            GeneratedFromPackageID="{AA679926-1E5C-42ED-B805-450A3E7AE555}" 
            GeneratedFromPackageName="Archive" 
            GeneratedBy="davenport"/>
    </DTSConfigurationHeading>
    <Configuration ValueType="String" Path="\Package.Connections[Oracle].Properties[ConnectionString]" ConfiguredType="Property">
        <ConfiguredValue>
            Data Source=ORACLE;User ID=userName;Persist Security Info=True;Unicode=True;
        </ConfiguredValue>
    </Configuration>
    <Configuration ValueType="String" Path="\Package.Connections[Oracle].Properties[Password]" ConfiguredType="Property">
        <ConfiguredValue>
            password
        </ConfiguredValue>
    </Configuration>
    <Configuration ValueType="String" Path="\Package.Connections[Oracle].Properties[ServerName]" ConfiguredType="Property">
        <ConfiguredValue>
            ORACLE
        </ConfiguredValue>
    </Configuration>
    <Configuration ValueType="String" Path="\Package.Connections[Oracle].Properties[UserName]" ConfiguredType="Property">
        <ConfiguredValue>
            userName
        </ConfiguredValue>
    </Configuration>
</DTSConfiguration>
4

2 回答 2

2

无需修改配置文件。

请检查以下步骤。

在部署包之前。您应该将 Oracle 客户端安装到您的系统中。并且您必须在安装后从以下位置打开 .TNS 文件:

C:\Oracle\product\11.1.0\client_1\Network\Admin

之后,您必须从同一位置复制源系统 TNS 文件并使用凭据更新系统 TNS 文件中的详细信息。

如果连接成功,您可以使用网络管理器测试连接,那么您就在正确的道路上。

于 2012-05-17T08:58:31.953 回答
1

您需要安装 oracle 客户端并编辑tnsnames.ora文件

这是一个例子:

ORACLE=
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = your_port)))
  (CONNECT_DATA =
  (SERVICE_NAME = your_service_name)
  )
)
于 2012-05-17T12:03:53.600 回答