Which two are reasons why you might set the bind variables of a view object at run time programmatically
rather than using the declarative features of the framework? (Choose two.)
A.
The framework can set only one bind variable declaratively on each view object query. Attempting to set
more bind variables requires a programmatic solution.
B.
After a bind variable is set using the declarative method, its value is immutable unless updated
programmatically.
C.
In all cases, ADF developers should code solutions rather than using declarative solutions.
D.
The bind variable is derived by calling a Java method rather than receiving the value from a user.
E.
The bind variable value entered by and understandable by a user must be modified using Java code to a
value that can actually be used in a query.
Explanation:
B: Whenever the WHERE clause of your query includes values that might change from execution to execution,
you can use named bind variables. These are place holders in the SQL string whose value you can easily
change at runtime without altering the text of the SQL string itself. Since the query doesn’t change, the
database can efficiently reuse the same parsed representation of the query across multiple executions which
leads to higher runtime performance of your application.
D: If you use a named bind variable in your SQL statement but have not defined it, you’ll receive an error like
this:
(oracle.jbo.SQLStmtException) JBO-27122: SQL error during statement preparation.
## Detail 0 ##
(java.sql.SQLException) Missing IN or OUT parameter at index:: 1
https://docs.oracle.com/cd/B31017_01/web.1013/b25947/bcquerying009.htm