Re: ORA-04031: unable to allocate 312 bytes of shared memory ("shared pool","unknown object","CCursor","kglob")

PCursor = Parent Cursor
CCursor = Child Cursor

SQL text(statement) is stored as parent - child cursor combination.
They have one to many relationship. PCursor : CCursor = 1 : M

For instance, let's assume that ...
User A submits "select * from tab_a".
User B submits "select * from tab_a".
Same sql text, but different sql cursor.

In this case, we have one parent cursor whose sql text is "select * from
tab_a",
and 2 child cursors whose execution plans are different.

The area that execution plan is stored is called "sql area".

Hope this clarifies the terms.

Other related posts: