4

我的任务是从第三方进度数据库中获取一些数据。问题是,一些表报告错误“表中的列<column><table>值超过其最大长度或精度(7864)”。

一些谷歌搜索提出这是数据库上 SQL 宽度的问题,运行 DBTool 可以解决此问题。http://progress.atgnow.com/esprogress/jsp/AnswerControls.jsp?directSolutionLink=1&tabs=true&docPropValue=p24496

问题是管理进度数据库的第三方不想知道——他们说这可能会损坏数据库。由于我对任何事情都知之甚少(尤其是进步),我无法反驳他们的论点。

对于问题:

  • 他们是否有反对不运行此工具的有效论据?
  • 如果他们维持自己的立场,我还有其他选择吗?请记住,我对 Progress 的第一件事一无所知。
4

1 回答 1

2

你的第三者是无知的。DBTool 是处理此问题的标准方法,并且已为此目的提供。运行 dbtool 非常常见,通常会自动偶尔运行(通常每月运行一次)。

他们可能会将其与“dbrpr”混淆。它可以重新格式化积木和其他有趣的东西,如果使用不当,肯定会给你带来麻烦。

几乎可以肯定,无论有没有他们的合作,您都可以自己运行它。您只需要 dba 用户 ID 和密码。我可能是错的,但 98% 的时间 dba 用户 ID 是“sysprogress”,并且很可能在 ODBC 连接中使用。如果您一直在设置这些密码,您可能知道密码(或者可以轻松获得)。

(如果他们不运行 dbtool,那么他们可能也没有运行 UPDATE STATISTICS,这可能意味着性能非常糟糕。Progress SQL 引擎使用基于成本的优化器,并且没有一些统计信息来提供它,它不会做一个非常干得好。但这是另一个问题的素材。)

于 2011-05-31T21:05:33.740 回答