这个(Oracle)存储过程为什么插不进负值到数据库???数据库中的值总是在原值上 加上一个正值?????

cqxhhe 2001-12-20 09:35:10
这个(Oracle)存储过程为什么插不进负值到数据库???
create or replace procedure ord_attemper_p(
p_attemper varchar2,
p_cause_code varchar2,
p_customer varchar2,
p_item_code varchar2,
p_item_name varchar2,
p_flower_code varchar2,
p_stock_unit varchar2,
p_item_degree varchar2,
p_price numeric,
p_qty numeric )
as
begin
update ord_attemper X
set X.qty=X.qty+p_qty
where attemper = p_attemper and cause_code = p_cause_code and item_code=p_item_code;
if sql%rowcount = 0 then --no record updated
insert into ord_attemper
values (ord_attemper_nums.nextval,p_attemper,p_cause_code,p_customer,p_item_code,p_item_name,p_flower_code,p_stock_unit,p_item_degree,p_price,p_qty,p_price*p_qty,null);
end if;
end ord_attemper_p;
/

早JSP 中调用:
stmt =conn.prepareCall("{call ord_attemper2_p(?,?,?,?,?,?,?,?,?,?)}");
stmt.setString(1,HH_attemper);
stmt.setString(2,p_cause_code);
stmt.setString(3,p_customer);
stmt.setString(4,p_item_code);
stmt.setString(5,p_item_name);
stmt.setString(6,p_flower_code);
stmt.setString(7,p_stock_unit);
stmt.setString(8,p_item_degree);
stmt.setDouble(9,p_price);
//HH_qty=-HH_qty;
stmt.setDouble(10,HH_qty);

不管有没有 “HH_qty=-HH_qty“ 语句,数据库中的值总是在原值上 加上一个正值?????
这是怎么回事?????
各位大虾看一下 谢谢!!!
...全文
92 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝天 2001-12-21
  • 打赏
  • 举报
回复
是不是where语句限制掉了?你用SQLPLUS执行一下不就知道了吗?
蓝天 2001-12-21
  • 打赏
  • 举报
回复
单步执行一下,你的表中都有哪些数据阿?
cqxhhe 2001-12-21
  • 打赏
  • 举报
回复
大家看一下啊 到底是怎么回事 怎么会产生这样的错误??
cattiger 2001-12-20
  • 打赏
  • 举报
回复
各位大虾看一下啊 KingSunSha(弱水三千)兄 帮小弟看看这个ORACLE问题
cattiger 2001-12-20
  • 打赏
  • 举报
回复
各位大虾看一下啊 KingSunSha(弱水三千)兄 看看这个ORACLE问题!
cqxhhe 2001-12-20
  • 打赏
  • 举报
回复
大家看一下啊
cqxhhe 2001-12-20
  • 打赏
  • 举报
回复
大家看一下啊 急用!!
cqxhhe 2001-12-20
  • 打赏
  • 举报
回复
还有 如果存储过程中间的更新代码 改为
update ord_attemper X
set X.qty=X.qty- p_qty

update ord_attemper X
set X.qty=-X.qty- p_qty
结果还是一样。这该如何?????

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧