During replay, any error and data discrepancies between the replay system and the capture system are recorded as diverged calls.
To retrieve information about a diverged call—including its SQL identifier, SQL text, and bind values—call the GET_DIVERGING_STATEMENT
function using the following parameters:
Set the replay_id
parameter to the ID of the replay in which the call diverged
Set the stream_id
parameter to the stream ID of the diverged call
Set the call_counter
parameter to the call counter of the diverged call
To view these information about a diverged call, use the DBA_WORKLOAD_REPLAY_DIVERGENCE
view. The following example illustrates a function call:
DECLARE r CLOB; ls_stream_id NUMBER; ls_call_counter NUMBER; ls_sql_cd VARCHAR2(20); ls_sql_err VARCHAR2(512); CURSOR c IS SELECT stream_id, call_counter FROM DBA_WORKLOAD_REPLAY_DIVERGENCE WHERE replay_id = 72; BEGIN OPEN c; LOOP FETCH c INTO ls_stream_id, ls_call_counter; EXIT when c%notfound; DBMS_OUTPUT.PUT_LINE (ls_stream_id||''||ls_call_counter); r:=DBMS_WORKLOAD_REPLAY.GET_DIVERGING_STATEMENT(replay_id => 72, stream_id => ls_stream_id, call_counter => ls_call_counter); DBMS_OUTPUT.PUT_LINE (r); END LOOP; END; /
Oracle Database PL/SQL Packages and Types Reference for information about the DBMS_WORKLOAD_REPLAY
package