我的任务是从第三方进度数据库中获取一些数据。问题是,某些表报告错误“表 <column>
中的列 <table>
的值超过其最大长度或精度 (7864)”。
一些谷歌搜索提出这是数据库上 SQL 宽度的问题,运行 DBTool 可以解决这个问题。 http://progress.atgnow.com/esprogress/jsp/AnswerControls.jsp?directSolutionLink=1&tabs=true&docPropValue=p24496
问题是管理进度数据库的第三方不想知道——他们说这可能会损坏数据库。由于我对任何事情都不太了解(尤其是 Progress),因此我无法反驳他们的论点。
问题:
没有运行这个工具?
保持他们的位置,我有吗
我还有其他选择吗?请记住,我不知道关于 Progress 的第一件事。
最佳答案
你的第三者是无知的。 DBTool 是处理此问题的标准方法,并且正是为此目的而提供的。运行 dbtool 非常普遍,通常会自动偶尔运行(每月一次一般都不错)。
他们可能会将它与“dbrpr”混淆。它可以重新格式化块和其他有趣的东西,如果使用不当,肯定会给你带来麻烦。
无论是否与他们合作,您几乎都可以自己运行它。您只需要 dba 用户 ID 和密码。我可能是错的,但 98% 的 dba 用户 ID 是“sysprogress”,并且很可能在 ODBC 连接中使用。如果您一直在设置这些密码,您可能知道密码(或者可以轻松获取)。
(如果他们不运行 dbtool,那么他们可能也没有运行 UPDATE STATISTICS 这可能意味着性能真的很糟糕。Progress SQL 引擎使用基于成本的优化器,如果没有一些统计数据来提供它,它不会做得很好干得好。但这是另一个问题的素材。)
关于sql - Sql 宽度的进度 ODBC 问题(DBTool?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193275/