【发布时间】:2015-11-02 23:57:11
【问题描述】:
嘿,我有一个函数,该函数的一部分是确保所选值在传入的 varchar2s 表中。首先,我声明一个 varchar2 表类型,如下所示。
create or replace type Varchar2Table is table of varchar2(200)
然后我有一个函数,它接受嵌套表参数并在它们上有一个 select 语句。
function SelectPeople(inputNames Varchar2Table) return People
begin
--stuff
select * from person_table where name in inputNames; --line of interest
--more stuff
end;
这似乎不起作用,我收到以下错误:
ORA-00932:不一致的数据类型:得到预期的 NUMBER ENGSPL5.VARCHAR2TABLE
有什么建议吗?
【问题讨论】:
-
您是否在此处收到错误消息?如果是这样,是什么?如果没有,会发生什么?
-
错误是“ORA-00932:不一致的数据类型:预期的 NUMBER 得到了 ENGSPL5.VARCHAR2TABLE”。不知道为什么当我在两边都传递一个 varchar2 时它会显示预期的数字。
-
尽管您没有在双方都传递 VARCHAR2,但您要求它将 VARCHAR2 列转换为它没有重载的用户定义类型。我认为 NUMBER 一定是它的默认猜测。