0
我有以下Oracle PL/SQL調用,它工作完全正常:擴展Spring的StoredProcedure有IN和OUT參數
declare
dummy number;
begin
my.proc(a => 89561,
b => 1,
c => 1,
d => '',
e => 1,
f => 1,
g => 1,
h => 1,
i => 1,
j => 1,
k => 1,
l => 1,
m => 1,
n => 1,
o => 1,
p => 1,
q => dummy);
end;
我想以編程方式調用它,爲了這個,我創建的延伸組織的類。 springframework.jdbc.object.StoredProcedure。類如下:
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.object.StoredProcedure;
public class MySP extends StoredProcedure {
private static final String PROC_NAME = "my.proc";
public MySP(DataSource ds) {
super(ds,PROC_NAME);
compile();
}
public void execute() {
Map<String, Object> params = new HashMap<>();
params.put("a", 89561L);
params.put("b", 1L);
params.put("c", 1L);
params.put("d", "");
params.put("e", 1L);
params.put("f", 1L);
params.put("g", 1L);
params.put("h", 1L);
params.put("i", 1L);
params.put("j", 1L);
params.put("k", 1L);
params.put("l", 1L);
params.put("m", 1L);
params.put("n", 1L);
params.put("o", 1L);
params.put("p", 1L);
params.put("q", 0L);
super.execute(params);
}
}
當我運行他的代碼,我在歌廳以下Oracle錯誤:
PLS-00306:錯號碼或類型的呼叫「PROC」
參數我敢肯定,錯誤來自我傳遞「q」參數的方式......但無法找到另一種傳遞方式。
有什麼想法?