I just want to know how oracle process these following statement
CURSOR C IS SELECT * FROM INVM;
C--CURSOR NAME
INVM-TABLE NAME;
Usaullly if you execute any select statement , oracle tries to find out whether the corresponding blocks are there in buffer cache , if not then it read from the files into the buffer cache, this process is same for cursors also or something different.
1) what is the PGA role while executing the cursor
2)If we perform any dml operation, the changes will be applied directly to the buffers in buffer cache or first it will apply in pga(correct me if iam wrong)

I know every statement is being executed by oracle through either implict or explicit, but i have got confused with the role of pga.