我有以下程序以避免重复插入:
create or replace
PROCEDURE spCheckDuplicate
(in_price IN VARCHAR2(20),
in_drug IN VARCHAR2(20), ,
out_count OUT NUMBER)
IS
BEGIN
out_count :=0;
BEGIN
SELECT count(*) into out_count
FROM DRUG_TABLE where DRUGNAME=in_drug and PRICE=in_price ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
out_count := 0;
END;
IF (out_count = 0)
THEN
INSERT INTO DRUG_TABLE(DRUGNAME,PRICE)
VALUES(in_drug,in_price )
END;
END IF;
END ;
我需要从我的j2ee应用程序调用此存储过程,使用iBatis,我无法检索存储过程返回的out参数(返回药物+价格组合的数量)。
**Ibatis xml**
<procedure id="avoidDuplicateInsert"
parameterClass="DrugVO" resultClass="DrugVO">
{ call spCheckDuplicate( #price#,#drug#,#count#)}
</procedure>
这不起作用,无法计算。虽然类似的程序只适用于IN参数。
**JavaDAO class**
result = (DrugVO) this.queryForObject("avoidDuplicateInsert",DrugVO);
System.out.println("result count" + result.getCount());
我在这里得到一个nullpointer