Skip to Main Content
Oracle PL/SQL for DBAs
book

Oracle PL/SQL for DBAs

by Arup Nanda, Steven Feuerstein
October 2005
Intermediate to advanced content levelIntermediate to advanced
454 pages
14h 44m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL for DBAs

Mixing but not Matching

Explicit and implicit cursors do not match up in the shared pool. What do I mean by that? I’ll explain with an example.

    DECLARE
      CURSOR get_region IS
      SELECT region_id FROM orders WHERE region_id = 2;
      v_region NUMBER;
    BEGIN
      OPEN get_region;
      FETCH get_region INTO v_region;
      CLOSE get_region;
      SELECT region_id INTO v_region FROM orders WHERE region_id = 2;
    END;

How many shared pool cursors does this produce? The answer is two.

    SQL_TEXT                       PARSE_CALLS EXECUTIONS
    ------------------------------ ----------- ----------
    SELECT REGION_ID FROM ORDERS W           1          1
    HERE REGION_ID = 2

    SELECT REGION_ID FROM ORDERS W           1          1
    HERE REGION_ID = 2

Even though these cursors look identical and share the same address in the shared pool, they differ just enough (perhaps the INTO clause?) for Oracle to store two separate ones. The moral is that you can’t assume that explicit and implicit cursors will match up in the shared pool. It’s best to stick with one way or the other.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Oracle PL/SQL Best Practices

Oracle PL/SQL Best Practices

Steven Feuerstein
Expert Oracle PL/SQL

Expert Oracle PL/SQL

Ron Hardman, Michael McLaughlin
Oracle PL/SQL For Dummies

Oracle PL/SQL For Dummies

Michael Rosenblum, Paul Dorsey

Publisher Resources

ISBN: 0596005873Supplemental ContentErrata Page