CREATE OR REPLACE FUNCTION FUN_LYZZ_MESSAGE
(
 RECEIVERID_ IN TAB_MESSAGE.RECEIVERID%TYPE,
 TOLOCATION_ IN TAB_MESSAGE.TOLOCATION%TYPE
) RETURN NUMBER--返回-1为有误,1为成功
IS
  ID_ TAB_MESSAGE.ID%TYPE;
BEGIN
     SELECT ID INTO ID_ FROM TAB_MESSAGE WHERE RECEIVERID=RECEIVERID_ AND TOLOCATION=TOLOCATION_;
     IF ID_  IS NOT NULL THEN
        UPDATE TAB_MESSAGE SET STATUS=1 WHERE ID=ID_;
     END IF;
     RETURN(1);
     EXCEPTION
              WHEN OTHERS THEN
                   ROLLBACK;
                   RETURN(-1);
END;
java中调用代码如下:
imp.prepareCall("{call ?:=sybj.FUN_LYZZ_MESSAGE(?, ?)}", "out@Integer@#in@varchar@"+receiverId+"#in@varchar@"+tolocation);
其中,传入的receiverId是“830”,tolocation是“inform.do?method=getInfo&&flag=mod&&id=1080”

select id from TAB_MESSAGE WHERE RECEIVERID=830 AND TOLOCATION='inform.do?method=getInfo&&flag=mod&&id=1080'
执行速度很快,就一条记录