1
我正在將存儲過程代碼從Oracle遷移到DB2,我需要找到一種測試數組成員資格的方法(Oracle有MEMBER OF
運算符)。在DB2 SQL中測試數組成員資格PL
存儲過程除其他外還使用了一個用戶數組(通過JDBC從Java代碼接收的參數)。我想找到在數組中進行成員資格測試的最有效方法。使用Oracle,我會做:
FOR r IN (SELECT * FROM acls WHERE acls.id = curid) LOOP
IF r.user MEMBER OF users THEN
RETURN 1;
END IF;
END LOOP;
但是我沒有找到的MEMBER OF
在DB2等價物:
FOR r AS SELECT * FROM acls WHERE acls.id = curid DO
IF r.user ????? users THEN
RETURN 1;
END IF;
END FOR;
我看到兩個選擇:
- 做一套內環的所有數組元素都可以「手動」進行測試。
- 不要使用數組,而是使用單個字符串並使用基於
LIKE
的模式匹配。
有沒有更好的方法?請記住,該數組來自外部代碼,不能作爲我可以JOIN
或任何相關的表傳遞。
謝謝,我想沒有什麼神奇然後回答。 – 2013-03-19 14:07:29