ly5577 发表于 2005-10-18 12:48

ids7.3和ids10.0的procedure问题, 够诡异.

ids7.3是在SCO5.05上的
ids10.0在redhat linux AS4

从ids7.3的库dbexport出来后,到ids10.0 dbimport
发现原来的procedure好多都建不了.

例如:
create procedure concat(s1 varchar(255), s2 varchar(255))
returning varchar(255);
      return to_string(substr(s1,1,length(s1)))||
                         to_string(substr(s2,1,length(s2)));
end procedure;

提示:
   673: Another routine (concat) with same signature already exists in databas

但执行:
drop procedure concat;

却提示:
   674: Routine (concat) can not be resolved.
   111: ISAM error:no record found.

如果把procedure名concat改成concat1,又可以建!

以为是系统保留字的问题.
但类似:
  p_get_ensure_items这样的名也出现上面的错误..
改成p_get_ensure_items1又可以了...

好奇怪.
有人碰到过类似的问题吗?

winter0703 发表于 2005-10-18 13:58

ids7.3和ids10.0的procedure问题, 够诡异.

你贴出来的create跟你导出来的文件完全一致?

ly5577 发表于 2005-10-18 18:03

ids7.3和ids10.0的procedure问题, 够诡异.

应该是:
create procedure "account01".concat(s1 varchar(255), s2 varchar(255))
returning varchar(255);
      return to_string(substr(s1,1,length(s1)))||
                         to_string(substr(s2,1,length(s2)));
end procedure;

不成功后单独用dbaccess来执行时把用户名去掉了,还是不成功.

lpz 发表于 2005-10-20 11:05

ids7.3和ids10.0的procedure问题, 够诡异.

做个假0级备份后再drop一下看看。

daidai8910 发表于 2009-07-21 11:24

老兄解决了吗?

我也是遇到这个问题,困扰了一天多,终于有答案了,原来是低版本的informix没concat这些函数,而高版本的se中已经由系统提供了这些函数,所以才导致创建失败。删除这些函数的定义吧,祝你好运
页: [1]
查看完整版本: ids7.3和ids10.0的procedure问题, 够诡异.