我的任务是从第三方进度数据库中获取一些数据。问题是,某些表报告错误“表<column>
中的列<table>
的值超过其最大长度或精度(7864)”。
一些谷歌搜索提出这是数据库中SQL宽度的问题,运行DBTool可以解决这个问题。 http://progress.atgnow.com/esprogress/jsp/AnswerControls.jsp?directSolutionLink=1&tabs=true&docPropValue=p24496
问题在于管理进度数据库的第三方不想知道 - 他们说这可能会损坏数据库。由于我对任何事情都不太了解(特别是进步),我无法反驳他们的论点。
问题:
答案 0 :(得分:2)
你的第三方无知。 DBTool是处理此问题的标准方法,并且已经为此目的提供。运行dbtool非常常见,通常可以自动运行(每月通常很好)。
他们可能会将其与“dbrpr”混淆。哪些可以重新格式化块和其他有趣的东西,如果使用不当肯定会让你遇到麻烦。
无论是否合作,您几乎可以自己运行它。您只需要dba用户ID和密码。我可能是错的,但有98%的时间dba用户标识是“sysprogress”,它很可能在ODBC连接中使用。如果你一直在设置它们,你可能知道密码(或者可以很容易地获得它)。
(如果他们不运行dbtool那么他们可能还没有运行UPDATE STATISTICS,这可能意味着性能非常差.Progress SQL引擎使用基于成本的优化器而没有一些统计信息来提供它不会做得很好。但那是另一个问题的补充。)