首页 > 解决方案 > 如何在过程的 where 子句中使用数组?

问题描述

我必须选择表演示的数据行,其中指定列值与数组的任何一个元素匹配。我在代码的“位置”部分遇到问题。如何比较数组和指定列的值?

CREATE OR REPLACE TYPE array_collection IS VARRAY(100) OF VARCHAR2(50);
--
declare
--Initialization 
var_array array_collection:=array_collection();
f VARCHAR2(100);
begin
  ---Storing 3 elements
 var_array.extend(3);
 var_array(1):= 'Software Engineer';
 var_array(2):= 'Account Manager';
 var_array(3):= 'Operations Team Leader';


select full_name into f from demo where designation member of var_array;


end;

我希望选择表演示中指定为“软件工程师”、“客户经理”、“运营团队负责人”的所有行。

标签: sqlarraysoraclestored-procedures

解决方案


CREATE OR REPLACE TYPE array_collection IS VARRAY(100) OF VARCHAR2(50);
--
declare
--Initialization 
var_array array_collection:=array_collection();
f VARCHAR2(100);
begin
  ---Storing 3 elements
 var_array.extend(3);
 var_array(1):= 'Software Engineer';
 var_array(2):= 'Account Manager';
 var_array(3):= 'Operations Team Leader';


select full_name into f from demo where designation in (select * from table(var_array));


end;

推荐阅读