使用 ODBC 连接连接到 Sybase ASE 服务器时,我在 SSIS 中遇到一个奇怪的错误。我有几个DFT连接到同一台服务器,当我运行整个软件包时,其中几个中途失败,并显示以下错误消息。如果我一次运行一个 DFT,它们就会成功完成。我已经考虑过重组包以按顺序运行它们,但是我会失去并行执行的好处,更不用说这将是一项繁重的工作,因为它是一个大包。希望有人以前见过这个,因为谷歌还没有出现任何答案。
[ODBC 源 [14]] 错误:发生打开数据库连接 (ODBC) 错误。 状态:"08S01"。本机错误代码:30016。[系统数据库][ODBC 驱动程序]不良的 TDS 从服务器接收的响应流。 不支持的 TDS_INTN 长度:111
[ODBC 源 [14]] 错误:发生打开数据库连接 (ODBC) 错误。 状态:"08S01"。本机错误代码:30016。[系统数据库][ODBC 驱动程序]不良的 TDS 从服务器接收的响应流。收到的意外令牌类型:109。
[ODBC 源 [69]] 错误: 发生打开数据库连接 (ODBC) 错误。 状态:"01004"。本机错误代码:32007。[系统数据库][ODBC 驱动程序]字符串数据, 右截断
您面临的主要错误是
字符串数据的右截断
根据以下 Sybase 文档,此错误的可能原因是:
非空格字符在分配字符串数据时被截断。
建议
- 您必须增加使用的参数/字段/变量的大小
或
- 您可以将
string_rtruncation option
设置为Off
,以便在发生截断时不会引发异常。
基于此 Sybase 文档
如果截断的字符仅包含空格,则不会引发异常。"打开"的设置对应于 ANSI/ISO SQL/2008 行为。当此选项设置为 Off 时,不会引发异常,并且字符串将被静默截断。
字符串截断可能发生在多个位置。例如,如果声明的目标类型太短,则对变量使用 INSERT、UPDATE、CAST 或赋值可能会截断字符串。
类似问题链接
- 通过 ORACLE SQL*PLUS 查询 OPENEDGE 数据库中的数据时出现 ODBC 错误"字符串数据,右截断">