表达式是错误的类型-Oracle错误

时间:2015-10-06 10:50:02

标签: oracle plsql

我想检查一个值是否是数组的成员。 我尝试了以下How to check if an array contains a particular string?

中的示例代码
DECLARE
TYPE v_array IS TABLE OF VARCHAR2(200);
ais_array v_array ;

BEGIN
ais_array := ('Lb1','Lb2','Lb3','Lb613');
IF 'Lb1' member of ais_array THEN
   dbms_output.put_line('found');
END IF;
END;
/

但是我收到以下错误:

ORA-06550: line 5, column 16:
PLS-00382: expression is of wrong type

1 个答案:

答案 0 :(得分:2)

您应该添加构造函数调用以进行初始化,请尝试下面的代码

declare
   type v_array is table of varchar2(200);
   ais_array v_array;

begin
   ais_array := v_array('Lb1', 'Lb2', 'Lb3', 'Lb613');
   if 'Lb1' member of ais_array then
      dbms_output.put_line('found');
   end if;
end;

我添加了ais_array := v_array('Lb1', 'Lb2', 'Lb3', 'Lb613');