最近在工作中写了一个供别人调用的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重了,导致这个匹配条件没起作用!!!