当前位置: 首页 > 知识库问答 >
问题:

从java向DB2存储过程传递多个行或数组

萧鸿轩
2023-03-14

我们需要使用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)实际上是数组,它可以从我的前台应用程序中为任意数量的员工分配一个经理。我们需要在SP的存储过程和进程中传递这些值。然而,我在db2中找不到任何数组类型的数据类型。

我知道我可以采取以下两种方法:-1。分隔值:-有varchar列并在分隔符的帮助下附加所有值并在SP中拆分。

                     2456,John,Graham|45464,Peter,Black

2.有单独的SP,批量调用。

但是,我正在寻找可以一次性传递它们的方法和一些更结构化的数据类型。DB2是否有类似数组的数据类型来支持这种或任何创建自定义数据类型的方法。

我在前端使用Spring JDBCTemplate调用SP(我可以灵活地进行更改)和DB2作为数据库\

P、 S.:-我不选择打开查询,只需调用SP即可。这个SP将直接从java调用,所以如果必须使用自定义数据类型,唯一的作用域是在被调用的存储过程中定义它

共有1个答案

吕自怡
2023-03-14

由于Emp Id、Emp First Name和Emp Last Name的数据类型可能不同,因此应该使用DB2行类型来包含它们,而不是数组类型。在Java中,由Java表示。sql。结构。还可以将行类型的数组传递给存储过程。查看手册中的详细信息和示例。

 类似资料:
  • 我正在从Spring中调用一个存储过程,但是我需要向存储过程传递一个字符串数组。然而,到目前为止,我遇到了一个又一个错误。你知道哪里出了问题吗? 我尝试运行以下测试。 这是我得到的stacktrace。

  • 我试图使用RazorSQL客户端在DB2数据库中创建一个存储过程,但遇到了以下错误: 块引用错误:字符、标记或子句无效或丢失。DB2SQL错误:SQLCODE=-104, SQLSTATE=42601, SQLERRMC=SELECT 存储过程代码为:

  • 如果你有什么建议,我很想听听! 谢谢:)

  • 我正在使用 db2 和 S 松鼠 SQL 我试图创建一个存储过程,其中包含一个简单的select语句。当我省略下面的select语句并运行代码时,过程就创建好了。这个过程也可以被删除和调用。 当我添加select语句时,我得到错误:DB2 SQL错误:SQLCODE=-102,SQLSTATE=42601,... 如果你去IBM iseries信息中心,它会说: SQL0104 SQLCODE-1

  • 问题内容: 我有一个具有以下属性的类: 现在,我有一个包含这样的对象的对象, 我需要将此数组列表传递给sql服务器存储过程,并将学生对象数据插入表中。如何在Java中最好地实现这一目标?我需要有一个存储过程。 Java版本8,Sql Server 2014(如果有任何用途)。 问题答案: 使用Mark Rotteveel提供的输入,我能够做到。谢谢马克,肖恩也感谢您的输入。这是可能对您有用的任何人

  • com.microsoft.sqlserver.jdbc.sqlserverexception:操作数类型冲突:nvarchar与com.microsoft.sqlserver.jdbc.sqlserverexception.makefromdatabaseerror(sqlserverexception.java:196)com.microsoft.sqlserver.jdbc.sqlserve