我有这个外部oracle存储过程,它以INTEGER,CLOB,VARCHAR作为参数,并在执行时将记录插入到表中。这将使用由JAVA + Spring组成的dao层调用。
我被要求使用相同的程序插入多个记录(1000s)。所以我正在考虑编写一个pl / sql块,它接受String或Clob,并在调用该过程的循环中对值进行子串。为此,我必须为每个记录追加一个带有删除计的字符串,并将其作为参数传递,或者我可以从该字符串创建一个CLOB并将其作为参数传递。
例如:String param ="value1,value2,value3 | value1,value2,value3 | value1,value2,value3 ..etc"
我的问题是:
有没有比我想的更好的解决方案(因为我认为最好将它循环到数据库服务器而不是在DAO层循环并进行1000次数据库调用)?
如果我继续使用我的解决方案会有限制阻止我的努力,例如我可以传递给pl / sql块的数据大小?