在包含Insert和Update查询的Java批处理中调用Oracle过程(语句)
我正在从事一个基于Java的项目,项目的实现方式如下
- 有一些类别(A、B、C、D……)将具有键的哈希映射作为整数,值作为字符串的数组列表。arraylist中的每个字符串元素都是Oracle SQL查询(插入或更新)
- 这些类的方法(A、B、C、D…)在地图中循环。使用JDBC语句(
**stmt.addBatch(String)**
)将特定键的所有SQL查询添加到批处理中。对于每个唯一的密钥,都会创建并执行一个单独的批处理李> - 有许多类(X,Y,Z…)正在填充此映射和字符串的arraylist以放置不同的INSERT和UPDATE查询
现在,我需要为一些键添加一个Oracle过程调用,因此应该为相应的键添加到字符串Arraylist中
我尝试添加以下字符串来调用过程,但似乎没有人适合我
1. EXEC INSERT_AUTONUMBER_DATA(......)
2. BEGIN INSERT_AUTONUMBER_DATA(........) END;
我不想修改大部分代码,因为它可能会影响其他方面
我可以在批处理中添加一个可调用语句,但为此,我需要修改负责准备批处理的所有方法和类,这些方法和类在我的项目中大约有15个(项目设计不是很好),此外,我还必须编写一个识别过程调用的条件,因此,我将准备一个可调用语句,而不是一个语句
在不改变执行批处理的类的情况下,还有其他方法吗
# 1 楼答案
我尝试在批处理中添加以下call语句
此字符串被添加到具有以下逻辑的语句中,并且可以正常工作
因此,这里我可以通过java调用一个过程。sql。批处理语句