最近在工作中寫了一個供別人調用的Oracle的存儲過程接口,功能很簡單,就是根據傳入的幾個參數來更新表中的某些數據,但是在聯調過程中傳入的更新匹配條件和被更新的數據一致對不上,更新的數據會比匹配的三個條件的數據多,也不報錯。
最后發現是程序的入參變量名稱和表結構的列名重了!!!!
程序大概如下:
PROCEDURE proc_save_spty(cust_code IN VARCHAR2,
?? ??? ??? ??? ??? ??? ?busi_code IN VARCHAR2,
?? ??? ??? ??? ??? ??? ?operation_code IN VARCHAR2,
?? ??? ??? ??? ??? ??? ?in_area_code IN VARCHAR2,
?? ??? ??? ??? ??? ??? ?in_flow_no IN VARCHAR2,
?? ??? ??? ??? ??? ??? ?oi_flag OUT VARCHAR2,
?? ??? ??? ??? ??? ??? ?os_msg OUT VARCHAR2)IS
--uadate語句
UPDATE CMIS3.IMAGE_REQUISITION_REFERENCE p
?? ??? ?set p.FINAL_AREA_CODE=in_area_code,p.FLOW_NO=in_flow_no
?? ??? ?where p.ENTERPRISE_CODE=cust_code
?? ??? ? ?AND p.OPERATION_CODE=operation_code
?? ??? ? ?AND p.REQUISITION_CODE=busi_code;
commit;
END proc_save_spty;
入參的operation_code和表的列名OPERATION_CODE重了,導致這個匹配條件沒起作用!!!