[英]PL/SQL Member of with multicolumn record
如何將member of
與多列集合一起使用?
試過這個:
declare
TYPE t_ref_by_email_rec IS RECORD (
email varchar(100)
, ref number
);
TYPE t_ref_by_email IS TABLE OF t_ref_by_email_rec INDEX BY BINARY_INTEGER;
v_ref_by_email t_ref_by_email := t_ref_by_email();
begin
if 'email@domain.com' member of v_ref_by_email.email then
-- Do something
end if;
end;
不
MEMBER OF
運算符僅對集合數據類型有效。TYPE identifier IS TABLE OF type1 INDEX BY type2
不是一個集合; 它是一個關聯數組。TYPE identifier IS TABLE OF type1
是您定義集合的方式。 但是,即使那樣,您也不能在集合的部分屬性上使用MEMBER OF
; 您需要使用它來匹配整個集合元素(並且它似乎不適用於記錄)。
相反,您可以使用循環:
DECLARE
TYPE t_ref_by_email_rec IS RECORD (
email varchar(100)
, ref number
);
TYPE t_ref_by_email IS TABLE OF t_ref_by_email_rec;
v_ref_by_email t_ref_by_email := t_ref_by_email(
t_ref_by_email_rec( 'a@b', 1 ),
t_ref_by_email_rec( 'c@d', 2 ),
t_ref_by_email_rec( 'e@f', 3 ),
t_ref_by_email_rec( 'g@h', 4 )
);
BEGIN
FOR i IN 1 .. v_ref_by_email.COUNT LOOP
IF 'e@f' <> v_ref_by_email(i).email THEN
CONTINUE;
END IF;
DBMS_OUTPUT.PUT_LINE( 'Found' );
END LOOP;
END;
/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.