Chinaunix

标题: DB2自定义函数为何不能运行? 问题见贴! [打印本页]

作者: tomjacksun    时间: 2005-07-22 10:30
标题: DB2自定义函数为何不能运行? 问题见贴!
问题是,DB2 版本是8.2的 我在开发中心 构建成功自己写好的自定义函数 getprice
但是回到 db2cmd 的模式下就不能调用了,说是找不到这个函数的名字.所以请问各位 ,构建成功后还需要设置别的什么吗?
db2cmd   执行
db2  values(getprice('参数1','参数2'))

报错 :说未找到类型"Function" 命为"getprice"  ^^^^^  
运行的时候需要在function 文件夹中注册什么吗??
恳请告知!
作者: faceDragon    时间: 2005-07-22 20:23
标题: DB2自定义函数为何不能运行? 问题见贴!
建时所用的模式和执行时所用的模式不同,执行时就没有权限。
或者参数类型传错了。
无非也就这两个原因。
作者: markmahw    时间: 2005-07-23 01:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: tomjacksun    时间: 2005-07-26 14:04
标题: DB2自定义函数为何不能运行? 问题见贴!
感谢上述儿位回答:
但是我觉得有点蹊跷

F1: BEGIN ATOMIC
      DECLARE PRICE  DECIMAL(14, 6) ;
      IF  WHSE_ID ='37010001'   THEN
            SET PRICE  = (SELECT MIN(SUM_PLANBOD)  FROM        TEST_DAYS WHERE  DATE1 = SEARCHDATE
                                    AND TEST_DAYS.WHSE_ID  = WHSE_ID);
      END IF;
      IF  WHSE_ID ='37010002'   THEN
             SET PRICE = (SELECT SUM_PLANBOD FROM TEST_DAYS WHERE DATE1 = SEARCHDATE
                                    AND TEST_DAYS.WHSE_ID  = WHSE_ID);
      END IF;  
RETURN PRICE;
END  

把参数输入'37010002' , '20050623'   每个id 一个日期对应一条记录
就出这个错误,可是根据参数查出来的只有一条记录这是怎么回事?
SQL0811N  标量全查询、SELECT INTO 语句或 VALUES INTO 语句的结果有多行。
SQLSTATE=21000

所以我将
(SELECT MIN(SUM_PLANBOD) 加了个min()
把参数输入'37010001' , '20050623'
这才返回数值 ,帮忙看看这是怎么回事!多谢!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2