当我使用providex odbc驱动程序执行openquery select到链接服务器时,我收到此错误。我尝试连接的数据库建立在Progress上。
无法获取列" [MSDASQL] .IVD_PRICE"的当前行值。来自OLE DB提供程序" MSDASQL"对于链接服务器" FCEU"。转换失败,因为数据值溢出了提供程序使用的数据类型。
有解决方法吗?我无法访问我想要查询的服务器。
谢谢!
答案 0 :(得分:0)
Progress数据库将所有数据类型实现为可变长度。 “格式”只是默认显示目的的建议。进度应用程序通常会忽略该建议和“过度填充”字段。
这使得大多数SQL客户端都很适合。
治愈取决于Progress / OpenEdge的版本。
从版本9开始的所有版本的Progress都支持名为“dbtool”的实用程序,该实用程序将扫描数据库并调整已填充过的任何字段的“SQL-WIDTH”属性。您必须在服务器上运行它。 (或说服DBA去做。)
http://knowledgebase.progress.com/articles/Article/P24496
这是Progress数据库非常常见的常规程序。
您还可以使用-checkwidth参数来防止这些事情发生 - 但在您的情况下,马已经离开了谷仓,它可能会破坏应用程序。所以它现在可能对你没用。
从OpenEdge 11.5开始,有一些新功能可以在SQL客户端连接时自动处理宽度违规: