我们需要使用 Java 应用程序中的存储过程来使用以下类型的数据更新 DB2 数据库。
ManId ManaFirstName ManLastName CubicleId Unit EmpId EmpFirstName EmpLastName
2345 Steeven Rodrigue 12345RT HR 2456 John Graham
45464 Peter Black
这里,与 Emp 相关的列(Emp Id 、 Emp First Name 和 Emp Last Name )实际上是数组,它可以为一个经理提供来 self 的前端应用程序的任意数量的员工。 我们需要将这些值传递到存储过程中并在 SP 中进行处理。但是,我在 db2 中找不到任何数组类型数据类型。
我知道我可以采取以下两种方法:- 1. 分隔值:- 具有 varchar 列,并借助分隔符附加所有值并在 SP 中拆分。
2456,John,Graham|45464,Peter,Black
2.拥有独立SP,批量调用。
但是,我正在寻找可以一次性传递它们和一些更多结构化数据类型的方法。 DB2 是否有像数组这样的数据类型来支持此功能或以任何方式创建自定义数据类型。
我在前端使用 Spring JDBCTemplate 来调用 SP(我可以灵活更改它)和 DB2 作为数据库。\
附注:- 公开查询对我来说不是选项,只需调用 SP。 该 SP 将直接从 java 调用,因此如果必须使用自定义数据类型,唯一的范围是在被调用的存储过程中定义它
最佳答案
由于 Emp Id 、Emp First Name 和 Emp Last Name 的数据类型可能不同,因此您应该使用 DB2 ROW
类型来包含它们,而不是 ARRAY
。在 Java 中,由 java.sql.Struct
表示。您还可以将 ROW
类型的 ARRAY
传递给存储过程。 Check the manual for details and examples.
关于java - 将多行数组从 java 传递到 DB2 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27482256/