返回信息流自己写了个存储过程如下:
DROP PROCEDURE SET_CALLCONGS_AND_RATE @
CREATE PROCEDURE SET_CALLCONGS_AND_RATE (IN cellid varchar(21),
IN date varchar(21),
IN time varchar(21),
IN ntch int,
IN traff double,
IN thtraff double,
IN callnum int,
IN congsnum int)
LANGUAGE SQL
BEGIN
update telephonetrafficdata
set callcongs=congsnum/callnum
where telephonetrafficdata.cellid=cellid and telephonetrafficdata.date=date and telephonetrafficdata.time=time and telephonetrafficdata.ntch=ntch;
update telephonetrafficdata
set rate=thtraff/traff
where telephonetrafficdata.cellid=cellid and telephonetrafficdata.date=date and telephonetrafficdata.time=time and telephonetrafficdata.ntch=ntch;
END @
创建没有问题,但是CALL调用的时候说“试图用零作除数”。“试图”很令人费解,难道说取值可能为0的变量都不能出现在除数位置?这个也太严格了吧~~~难道不能跳过吗?
求高人指点
这是一条镜像帖。来源:北邮人论坛 / database / #5613同步于 2011/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
关于DB2存储过程的一个问题,急~~~~
liuaner022
2011/5/22镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
好吧~~~SQL语句中千万不要出现除法,切记!!!!!!!!!!!!!
修改如下:
DROP PROCEDURE SET_CALLCONGS_AND_RATE @
CREATE PROCEDURE SET_CALLCONGS_AND_RATE (IN cellid varchar(21),
IN date varchar(21),
IN time varchar(21),
IN ntch int,
IN traff double,
IN thtraff double,
IN callnum int,
IN congsnum int)
LANGUAGE SQL
BEGIN
declare N int;
declare M double;
set N=congsnum/callnum;
set M=thtraff/traff;
update telephonetrafficdata
set callcongs=N
where telephonetrafficdata.cellid=cellid and telephonetrafficdata.date=date and telephonetrafficdata.time=time and telephonetrafficdata.ntch=ntch;
update telephonetrafficdata
set rate=M
where telephonetrafficdata.cellid=cellid and telephonetrafficdata.date=date and telephonetrafficdata.time=time and telephonetrafficdata.ntch=ntch;
END @