Document Type | Troubleshooting
Category | Administration
Applicable Product Version | Tibero 7.2.3
Error Code | TBR-12111
Document Number | TADTS071
Issue
When using APPEND and then immediately performing an APPEND insert on the same table, the TBR-12111 error may occur.
Example
/* TR TR_RE_01 */ INSERT /*+ APPEND */ INTO TAML_ODM_TRUST_EVENT_RULE (CUST_ID,RULE_ID,STND_DATE,CRET_DATE) (SELECT A.CUST_NUM AS CUST_ID, 'TR_RE_01' AS RULE_ID , ... /* TR TR_RE_02 */ INSERT /*+ APPEND */ INTO TAML_ODM_TRUST_EVENT_RULE (CUST_ID,RULE_ID,STND_DATE,CRET_DATE) ( SELECT CUST_ID, ...
- Loading After HWM:
APPEND hintwrites data directly to the area after the High Water Mark (HWM) of the table that has not been allocated. - Data Inaccessibility: Until the HWM moves to officially include the new data area, no session, including the session that inserted the data (current transaction), can access the newly inserted data.
- Violations: If a second
INSERT /*+ APPEND */is attempted, or if aSELECTor otherDMLis attempted after insertion, the system considers this an attempt to access an invalid data area and blocks it by raising theERROR_ACCESS_AFTER_DPL_VIOLATIONerror. - Transaction Limitation: Direct Insert requires the **transaction to be completed (COMMIT or ROLLBACK)** for the HWM to move and the data to be finalized, after which it becomes accessible by other sessions and the session itself.
Note
Error Information about TBR-12111; ERROR_ACCESS_AFTER_DPL_VIOLATION
- /*
- * err: -12111
- * name: ERROR_ACCESS_AFTER_DPL_VIOLATION
- * desc: Unable to read or modify an object after modifying it with DPL/DPI. Description: After modifying an object with DPL/DPI, it cannot be read or modified.
- * cause: An attempt was made to read or modify a table which was already modified with DPL/DPI in the current transaction. Cause: There was an attempt to read or modify a table already modified with DPL/DPI in the current transaction.
- * action: This command cannot be executed.; Action: This command cannot be executed.
- */
Cause
For direct inserts using Append, the same transaction limitations apply.
(The characteristic that you cannot see the data you modified until commit)
Since direct inserts write data to an area after the high water mark that has not yet been allocated, no session (including itself) can access the data via select or DML.
Therefore, if there is logic that restricts select or DML before commit/rollback, this error occurs.
Solution
It is recommended to perform commit sequentially after each query completes.