我将一些数据记录从表中插入到集合类型表中,然后我想从集合中删除一些不满足条件的记录。
虽然从pl-sql集合中删除记录的唯一选择是使用DELETE方法,但我怎么能这样做呢?
答案 0 :(得分:0)
假设您有一个名为myCollection
的关联数组,由binary_integer
索引,它应该如下所示:
DECLARE
i BINARY_INTEGER;
BEGIN
i := myCollection.FIRST;
WHILE (i IS NOT NULL) LOOP
IF (myCollection(i) ...) THEN
myCollection.DELETE(i);
END IF;
i := myCollection.NEXT(i);
END LOOP;
END;
/
答案 1 :(得分:-1)
我不确定您的数据库的确切语法是否正确,但您可以使用子查询来选择满足您条件的项目的ID。
DELETE FROM "Table"
WHERE "Table"."ID" IN (( -- notice double parentheses
SELECT "ID" -- this subquery returns the IDs for the rows you want to delete
FROM "Table" -- which are then tested in the IN () statement
WHERE "Table"."ConditionField" = 'Condition Satisfied'
))