Question: Suppose I have the following query, which returns a filtered table:

```
select column1,column2,column3 from table1 where table1.column1 = 'dada'

```

Further, suppose I want to store the resulting values in a variable so that I can use the result later on.

I have read that I can store a single value like so:

```
declare:
   result varchar(20);
begin:
   select column1 into result from table1 where table1.column1 = 'dada';
end;

```

But what about multiple values? There doesn't seem to be a "TABLE" or "DICTIONARY" datatype.

Answer: 
I think you need to use collections in oracle. Below code can help you.

Sample Code:

```
    CREATE TABLE example
   ("S_ID" NUMBER(1,0) , 
    "S_NAME" VARCHAR2(8 CHAR)
   );

    Insert into example (S_ID,S_NAME) values (1,'A');
    Insert into example (S_ID,S_NAME) values (1,'B');
    Insert into example (S_ID,S_NAME) values (1,'C');
    Insert into example (S_ID,S_NAME) values (2,'A');
    Insert into example (S_ID,S_NAME) values (2,'B');
    Insert into example (S_ID,S_NAME) values (2,'C');
    Insert into example (S_ID,S_NAME) values (3,'A');
    Insert into example (S_ID,S_NAME) values (3,'B');

    commit;

    DECLARE
       TYPE type_name IS TABLE OF example%rowtype;
       var_type_name   type_name;
    BEGIN
         SELECT *
           BULK COLLECT INTO var_type_name
           FROM example;

           for r in var_type_name.first..var_type_name.last loop
              dbms_output.put_line(var_type_name(r).s_id||','||var_type_name(r).s_name);
           end loop;

    END;

```

Help link:
<https://blogs.oracle.com/oraclemagazine/working-with-collections>
```
create view tempTable as select column1,column2,... from table1 where
table1.column1 = 'dada'

```