具有多个OUT参数的Java存储过程批处理

时间:2012-06-06 23:29:59

标签: java stored-procedures transactions batch-file

我正在使用Oracle DB。

我需要按顺序调用存储过程1000次。这个存储过程有几个params和out params。 目前我在一次交易中这样做。 只需使用java的for-each循环并在其中使用Spring的StoredProcedure。此事务大约需要4秒钟。而且它不是很酷。我需要加快这个交易时间。有没有办法做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:1)

编写一个包装器存储过程,调用所有其他的,将所有数据输入到包装器proc作为hashmap或类似的东西(参见http://docs.oracle.com/cd/B19306_01/java.102/b14355/oraarr.htm#g1072333),将输出存储在游标中并将其返回到Java。从Java调用包装器。然后让DB完成所有繁重工作,整个作业在一个DB tx中运行。

答案 1 :(得分:0)

您可以批量处理查询(如果是1000个不可预测的ID,则使用“in”)并每次返回一个光标而不是几个out参数?当然,如果每次调用的参数不同,这将不会那么容易。