处理集合 / 更新整个集合 |
图: ROW 类型的 LIST 定义。
projects LIST( ROW( pro_name VARCHAR(15), pro_members SET(VARCHAR(20) NOT NULL) ) NOT NULL)
图: 访问 LIST 中的 ROW 类型。
CREATE PROCEDURE update_pro( mgr VARCHAR(30), pro VARCHAR(15) ) DEFINE p LIST(ROW(a VARCHAR(15), b SET(VARCHAR(20) NOT NULL) ) NOT NULL); DEFINE r ROW(p_name VARCHAR(15), p_member SET(VARCHAR(20) NOT NULL) ); LET r = ROW("project", "SET{'member'}"); SELECT projects INTO p FROM manager WHERE mgr_name = mgr; FOREACH cursor1 FOR SELECT * INTO r FROM TABLE(p) IF (r.p_name == 'Zephyr') THEN LET r.p_name = pro; UPDATE TABLE(p)(x) SET x = r WHERE CURRENT OF cursor1; EXIT FOREACH; END IF; END FOREACH UPDATE manager SET projects = p WHERE mgr_name = mgr; END PROCEDURE;