今天,一个存储过程遇到了一个奇怪的问题,没有任何的出错信息,但是更新的内容去没有写入表。单步调试也正常,DBMS输出的内容来看,参数内容没有问题,这是怎么一回事情呢?看了这篇文章:oracle存储过程中update不成功的一个原因
尝试着改变了变量名字,却不起作用,最后发现是传入参数的类型问题:
有一个参数是这样的类型:account varchar2
而update语句中直接使用了这个参数:...where desaccount=account;
而表中 desaccount是char(12)类型的,考虑到类型不一样,所以建立了一个临时变量:
as
t_account char(12);
Begin
t_account := account;
再试一下,就可以了,现在写出来作为备忘。