0

我在我的 Windows 7 x64 Professional 机器上使用 OleLoad 创建了一个 MLOAD 作业。它将数据从 Oracle 11g 加载到 Teradata 14 中。当我在本地运行它时,一切都很好。当我将它复制到远程 Windows Server 2003 SP2 机器并运行它时,它失败并显示错误代码 12 和以下消息:

**** 07:30:57 UTY4203 试图访问字段中超出范围的输入数据
     'LOCATION_CODE',文件'myjob.amj',记录号'1'。
**** 07:30:57 UTY4023 访问模块警告“33”期间收到
     “PreserveRestartInfo”操作:“附件无法识别属性名称
     是'

我在远程机器上打开了我的 .amj 文件,看看如果我使用 OleLoad 的 UI 重新生成它会是什么样子。之后在 Beyond Compare 中比较两个 .amj 文件时,我惊讶地发现新的 .amj 非常不同。VARCHAR(214) 更改为 FLOAT,VARCHAR(30) 更改为 VARCHAR(10) 等。

远程机器上的所有 TTU 14 组件都与我在本地安装的组件相匹配。我注意到的唯一区别是 OleLoad 似乎正在使用的 Oracle DLL 版本。Connection Info当我点击我的 Oracle 连接时,OleLoad 在我的机器上显示以下内容:

Provider
    Name:   OraOLEDB11.dll
    Version:    11.2.0.1.0
DBMS
    Name:   Oracle
    Version:    11.2.0.3.0

在 Windows Server 2003 机器上:

Provider
    Name:   OraOLEDB.dll
    Version:    9.0.1.0.1
DBMS
    Name:   Oracle
    Version:    11g

现在,在任何人面对“嗯,DUH!这是你的问题!”之前,我要补充一点,如果我不得不在我的本地机器上安装新版本的 Oracle,因为我有很多我为个人实用程序创建的 MLOAD 文件(如果您愿意,可以在业务需要临时报告时加载帮助程序)。我无法升级远程服务器上的内容,因为我冒着破坏在那里运行的所有其他 MLOAD 作业的风险。

我只是想提及所有这些以防万一,但我希望这实际上不是问题,并且有一种方法可以让我当前的文件工作而无需卸载/重新安装/升级任何东西。

4

1 回答 1

0

我相信在我的 OP 末尾提出的理论已经得到证实。我能够找到一台安装了 Oracle 客户端 11 的机器并将我的工作迁移到那里。他们完美地工作,所以这肯定是 Oracle 9 客户端 vs 11 的问题。

于 2014-03-20T14:19:44.387 回答