为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:centos
【CPU】:
【问题描述】*:
CREATE OR REPLACE FUNCTION fn_gettypecodebyindex(idx int)
RETURN text
as
i_mod int;
i_shang int;
i_array_length int;
iArrayIndex array_table :=array_table('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
BEGIN
i_array_length:=array_length(iArrayIndex,1);
raise notice '%',i_array_length;
if idx=0 THEN
return '';
end if;
i_mod=idx%i_array_length;
raise notice 'i_mod:%',i_mod;
i_shang=idx/i_array_length;
return fn_gettypecodebyindex(i_shang) || iArrayIndex[i_mod+1];
end;
我自定义了一个长度为36数组类型,上面的的函数应该如果改写
CREATE TYPE array_table AS VARRAY(36) OF text;
您看这个对您有帮助么:
https://eco.dameng.com/document/dm/zh-cn/pm/dm8_sql-data-types-operators.html#2.3.2.3%20%E6%95%B0%E7%BB%84%E7%B1%BB%E5%9E%8B