This figure shows DBMS_SQL
execution flow, starting with OPEN_CURSOR
and PARSE
calls and ending with a CLOSE_CURSOR
call:
Flow goes from OPEN_CURSOR
to PARSE
.
After the PARSE
call is a decision point: Are bind variables used?
Depending on whether bind variables are used:
If bind variables are used, call BIND_VARIABLE
. Loop to call it as many times as necessary according to the number of bind variables.
If bind variables are not used, do not call BIND_VARIABLE
.
Then comes another decision point: Is the statement a query?
The following steps describe the remaining flow if the statement is not a query:
Call EXECUTE
.
After the EXECUTE
call is a decision point: Is the statement a PL/SQL block?
Depending on whether it is a PL/SQL block:
If it is a PL/SQL block, call VARIABLE_VALUE
if necessary for any bind variables. Loop to call it as many times as necessary according to the number of bind variables.
If it is not a PL/SQL block, do not call VARIABLE_VALUE
.
The flow is then shown to loop back up to the PARSE
call, the "Use bind variables?" decision point, or the "Query?" decision point as appropriate.
At the end of the flow, call CLOSE_CURSOR
.
The following steps describe the remaining flow if the statement is a query:
Call DEFINE_COLUMN
. Loop to call it as many times as necessary.
Call EXECUTE
.
Call FETCH_ROWS
.
Call COLUMN_VALUE
and VARIABLE_VALUE
. Loop to call them as many times as necessary.
After the COLUMN_VALUE
and VARIABLE_VALUE
calls, the flow is shown to loop back up to the EXECUTE
call or the FETCH_ROWS
call as appropriate.
At the end of the flow, call CLOSE_CURSOR
.
End of description.