Rows that are closed in transaction time provide a history of all modifications and deletions on tables that have a transaction-time column. The automatic history that tables with transaction time provide can be used for regulatory compliance auditing, so these rows are generally inaccessible to DML modifications. Because NONTEMPORAL DML statements can modify closed rows, the special NONTEMPORAL privilege is required. For more information on the NONTEMPORAL privilege, see Usage Notes.
The positional assignment list or named list of the INSERT statement can specify the valid-time and transaction-time column values. The values must be assignable to the appropriate columns or the system reports an error.
The following rules apply to the transaction-time column value in an INSERT statement:
- The beginning bound must not be greater than the value read from the system clock during the insert.
- The ending bound must be UNTIL_CLOSED or must be less than or equal to the value read from the system clock during the insert.
The SELECT statement of a nontemporal INSERT SELECT is executed as a nonsequenced SELECT in both the valid-time and transaction-time dimensions. The result rows of the SELECT are inserted into the target table.