如何在 Oracle 中批量收集到自定义类型的 table

How to bulk collect in Oracle into a table of custom type

我有这个:

TYPE record_flags IS RECORD (   
      is_delete    map_calculation.is_delete%TYPE,
      is_editable  map_calculation.is_editable%TYPE   
   );
TYPE table_flags IS TABLE OF record_flags INDEX BY PLS_INTEGER;
BEGIN
SELECT IS_DELETE, IS_EDITABLE BULK COLLECT INTO table_flags.is_delete, table_flags.is_editable
FROM (table and where clause...)

查询returns 2 行总是准确的。一行有 2 个字段。我需要将它们全部保存到变量中。但是 Oracle 因这种语法而对我发誓(在单词 bulk 之前加下划线)。希望很清楚我想要实现的目标。这里的正确语法是什么?

像下面这样声明table_flags并尝试

 table_flags1 table_flags;

 SELECT IS_DELETE, IS_EDITABLE BULK COLLECT INTO table_flags1
 FROM your_table