Loading and Refreshing a Cache Group Using a WITH ID Clause
The WITH ID
clause of the LOAD CACHE GROUP
or
REFRESH CACHE GROUP
statement enables you to load or refresh a cache group
based on values of the primary key columns without having to use a WHERE
clause.
The WITH ID
clause is more convenient than the equivalent
WHERE
clause if the primary key contains more than one column. Using the
WITH ID
clause allows you to load one cache instance at a time. It also
enables you to roll back the transaction containing the load or refresh operation, if
necessary, unlike the equivalent statement that uses a WHERE
clause because
using a WHERE
clause also requires specifying a COMMIT EVERY
n
ROWS
clause.
The following example loads a cache group using a WITH ID
clause. A cache group recent_orders
contains a single cache table sales.orderdetails
with a primary key of (
orderid
, itemid
)
. If a customer calls about an item within a particular order, the information can be obtained by loading the cache instance for the specified order number and item number.
Load the sales.orderdetails
cache table in the recent_orders
cache group with the row whose value in the orderid
column of the sales.orderdetails
cached Oracle Database table is 1756 and its value in the itemid
column is 573:
LOAD CACHE GROUP recent_orders WITH ID (1756,573);
The following is an equivalent LOAD CACHE GROUP
statement that uses a WHERE
clause:
LOAD CACHE GROUP recent_orders WHERE orderid = 1756 and itemid = 573 COMMIT EVERY 256 ROWS;
A LOAD CACHE GROUP
or REFRESH CACHE GROUP
statement issued on a cache group with autorefresh cannot contain a WITH ID
clause unless the cache group is dynamic.
You cannot use the COMMIT EVERY
n
ROWS
clause with the WITH ID
clause.