PreparedStatement调用存储过程的问题
存储过程如下:
PROCEDURE Query_org_increment(Errbuf OUT NOCOPY VARCHAR2,
Retcode OUT NOCOPY NUMBER,
p_Record_Set OUT Record_Set,
p_start_date VARCHAR2,
p_end_date VARCHAR2)
用PreparedStatement调用此存储过程时按顺序赋参数值时会出错:参数个数或类型不匹配
PreparedStatement stmt = new PreparedStatement();
for (int i=0;i<params.length;i++)
stmt.setObject(i + 1, params[i]);
但当我把存储过程入口参数放在前面时,就不会报错了
PROCEDURE Query_org_increment(
p_start_date VARCHAR2,
p_end_date VARCHAR2
Errbuf OUT NOCOPY VARCHAR2,
Retcode OUT NOCOPY NUMBER,
p_Record_Set OUT Record_Set,
)
我估计PreparedStatement给参数赋值的方法是把所有存储过程的参数都当作是入口参数,不会区分是否是IN还是OUT类型。如果存储过程的入口参数的顺序是错乱的,我怎么去赋值呢