使用 Spring 批处理通过 Progress 求解最大长度或精度
Solve max length or precision with Progress using Spring Batch
我正在使用 spring 批处理,我需要从使用进度数据库的遗留系统查询数据。
但是我有这个例外java.sql.SQLException:[DataDirect][OpenEdge JDBC Driver][OpenEdge] table PUB.Agenda 中的 Ag-Obs-conf 列有值超过其最大长度或精度。
我能够使用 select 中的 SUBSTR 部分解决这个问题,但我需要数据库中的所有数据。
而且我无法以任何方式更改数据库。
谁能告诉我如何解决这个问题?
谢谢
OpenEdge 数据库将所有数据存储为可变长度。应用程序通常 "overstuff" 字段超出声明的 "SQL Width" 属性,这是导致您看到的错误的原因。
在 OpenEdge 11.6 之前,使用 dbtool 是调整 SQL 宽度的标准方法。快速、安全、有效:
http://knowledgebase.progress.com/articles/Article/P24496
从 OpenEdge 版本 11.6 开始,引入了一个新的数据库启动参数:
-SQL宽度更新开启
可以自动固定 SQL 字符数据类型的宽度。
可在此处找到有关此新功能的更多信息:
https://community.progress.com/community_groups/openedge_rdbms/f/18/t/19534
11.6+ 中还有一些选项可以自动截断返回的数据,如果您喜欢的话:
我正在使用 spring 批处理,我需要从使用进度数据库的遗留系统查询数据。
但是我有这个例外java.sql.SQLException:[DataDirect][OpenEdge JDBC Driver][OpenEdge] table PUB.Agenda 中的 Ag-Obs-conf 列有值超过其最大长度或精度。
我能够使用 select 中的 SUBSTR 部分解决这个问题,但我需要数据库中的所有数据。
而且我无法以任何方式更改数据库。
谁能告诉我如何解决这个问题?
谢谢
OpenEdge 数据库将所有数据存储为可变长度。应用程序通常 "overstuff" 字段超出声明的 "SQL Width" 属性,这是导致您看到的错误的原因。
在 OpenEdge 11.6 之前,使用 dbtool 是调整 SQL 宽度的标准方法。快速、安全、有效:
http://knowledgebase.progress.com/articles/Article/P24496
从 OpenEdge 版本 11.6 开始,引入了一个新的数据库启动参数:
-SQL宽度更新开启
可以自动固定 SQL 字符数据类型的宽度。
可在此处找到有关此新功能的更多信息:
https://community.progress.com/community_groups/openedge_rdbms/f/18/t/19534
11.6+ 中还有一些选项可以自动截断返回的数据,如果您喜欢的话: