Progress Providex数据库openquery SQL错误

时间:2016-07-27 20:53:34

标签: sql-server openedge openquery progress-db

当我使用providex odbc驱动程序执行openquery select到链接服务器时,我收到此错误。我尝试连接的数据库建立在Progress上。

无法获取列" [MSDASQL] .IVD_PRICE"的当前行值。来自OLE DB提供程序" MSDASQL"对于链接服务器" FCEU"。转换失败,因为数据值溢出了提供程序使用的数据类型。

有解决方法吗?我无法访问我想要查询的服务器。

谢谢!

1 个答案:

答案 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客户端连接时自动处理宽度违规:

http://knowledgebase.progress.com/articles/Article/How-to-enable-Authorized-Data-Truncation-in-a-JDBC-or-ODBC-connection