Answer Posted / anil
1.REF CURSOR is basically a data type. It is normally declared as type r_cursor is REF CURSOR.
CURSOR is not a datatype.
2.REF CURSOR is dynamic , CURSOR is static
3.REF CURSOR can be passed from one procedure to other procedure but CURSOR cant be passed from one procedure to other.
4. A ref cursor can not be used in CURSOR FOR LOOP, it must be used in simple CURSOR LOOP statement.
5. A ref cursor is defined at runtime and can be opened dynamically but a regular cursor is static and defined at compile time.
6. A ref cursor can be passed to another PL/SQL routine (function or procedure) or returned to a client. A regular cursor cannot be returned to a client application and must be consumed within same routine.
7) A ref cursor incurs a parsing penalty because it cannot cached but regular cursor will be cached by PL/SQL which can lead to a significant reduction in CPU utilization.
8) A regular cursor can be defined outside of a procedure or a function as a global package variable. A ref cursor cannot be; it must be local in scope to a block of PL/SQL code.
9) A regular cursor can more efficiently retrieve data than ref cursor. A regular cursor can implicitly fetch 100 rows at a time if used with CURSOR FOR LOOP. A ref cursor must use explicit array fetching.
| Is This Answer Correct ? | 7 Yes | 0 No |
Post New Answer View All Answers
how can we know the count/number of elements of an array? : Sql dba
what is sql in mysql? : Sql dba
How does stored procedure reduce network traffic?
What are the qualities of 2nf?
What is compute?
What is varchar sql?
What is a clob in sql?
What is bulk compiling in pl/sql.?
Can ddl statements be used in pl/sql?
What is on delete restrict?
what is the difference between where clause and having clause? : Sql dba
What is rownum?
What are two statement types in sql?
How do you run a query?
What do you mean by stored procedures?