使用ODBC连接连接到Sybase ASE服务器时,我在SSIS中收到奇怪的错误。我有几个DFT连接到同一台服务器,当我运行整个软件包时,其中几个在中途失败并显示下面的错误消息。如果我一次运行一个DFT,它们就会成功完成。我已经考虑过重新组合包以按顺序运行它们,但是我会失去并行执行的好处,更不用说它将是一项很大的工作,因为它是一个很大的包。希望有人之前见过这个,因为谷歌没有找到任何答案。
[ODBC Source [14]]错误:发生了打开数据库连接(ODBC)错误。 州:' 08S01'。本机错误代码:30016。[Sybase] [ODBC驱动程序]错误的TDS 从服务器收到的响应流。 TDS_INTN的长度不受支持:111
[ODBC Source [14]]错误:发生了打开数据库连接(ODBC)错误。 州:' 08S01'。本机错误代码:30016。[Sybase] [ODBC驱动程序]错误的TDS 从服务器收到的响应流。收到意外的令牌类型:109。
[ODBC Source [69]]错误:发生了打开数据库连接(ODBC)错误。 州:' 01004'。本机错误代码:32007。[Sybase] [ODBC驱动程序]字符串数据, 右截断
答案 0 :(得分:1)
您面临的主要错误是
字符串数据的右截断
根据以下Sybase documentation,此错误的可能原因是:
在分配字符串数据时,非空格字符被截断。
<强>建议强>
OR
string_rtruncation option
设置为Off
,以便在发生截断时不会引发异常。 如果截断的字符仅由空格组成,则不会引发异常。 On的设置对应于ANSI / ISO SQL / 2008行为。如果将此选项设置为Off,则不会引发异常,并且会以静默方式截断字符串。
字符串截断可能发生在几个地方。例如,如果声明的目标类型太短,则使用INSERT,UPDATE,CAST或赋值给变量可能会截断字符串。
类似问题链接