【发布时间】:2016-08-25 18:03:56
【问题描述】:
我创建了一个类型如下:
create type colist_array as table of varchar(3);
创建函数:
create or replace function sel_tst(colm_lst colist_array)
return colist_array
as
--Declaration and Initialization
a colist_array := colist_array();
begin
for i in 1..colm_lst.count
loop
a.extend;
a(i):= colm_lst(i);
end loop;
return (a);
end;
现在调用时,它会抛出错误 -
参数数量错误
这里有任何建议。
select sel_tst('XXY') from dual; -- Not working
select sel_tst('XXY,SDD,DFS') from dual; -- Not working
select sel_tst('XXY','YDY') from dual; -- Not working
【问题讨论】:
-
您的函数需要一个 single 参数(它是一个数组)。您使用 两个 参数调用它。
-
另外你应该使用
varchar2而不是varchar -
@vercelli:没关系。
varchar是varchar2的别名 -
来自 Oracle Docs:“VARCHAR 数据类型与 VARCHAR2 数据类型同义。为避免可能的行为变化,请始终使用 VARCHAR2 数据类型存储可变长度字符串。”
-
感谢您做出如此精彩的解释。我的问题不是我的类型是否正确。我的问题与选择有关,我想这里的一位绅士已经很好地回答了它。再次感谢