Posts

Oracle 26ai — Enhancements to Data Dictionary Views for Partitioning

  In data dictionary views related to partitioning, the HIGH_VALUE column is one of the most frequently used attributes. However, its datatype is LONG , which comes with several limitations and restrictions. To address these limitations, Oracle AI Database 26ai introduces two additional columns, HIGH_VALUE_CLOB and HIGH_VALUE_JSON , allowing partition high values to be represented in more convenient formats. The following example creates an interval-partitioned table: SQL > create table tb( 2 id number, 3 date_ date 4 ) 5 partition by range ( date_ ) 6 interval ( numtoyminterval( 1 , 'YEAR' )) 7 ( 8 PARTITION p2022 VALUES LESS THAN (TO_DATE( '2023/01/01' , 'YYYY/MM/DD' )), 9 PARTITION p2023 VALUES LESS THAN (TO_DATE( '2024/01/01' , 'YYYY/MM/DD' )), 10 PARTITION p2024 VALUES LESS THAN (TO_DATE( '2025/01/01' , 'YYYY/MM/DD' )) 11 ); Table created To display partition ...

Oracle 26ai(23.26.2): WAIT and NOWAIT Support for DELETE, UPDATE, INSERT, and MERGE Statements

  Rows modified by DML statements are locked and, if another session attempts to modify the same row, that session must wait until the row becomes available. In previous Oracle Database releases, the WAIT clause was supported only by the SELECT FOR UPDATE statement, enabling users to specify how long to wait for a row lock before the statement is rolled back. For example: Connected to Oracle Database 19 c Enterprise Edition Release 19.0 .0 .0 .0 SQL > select * from tbl for update wait 10 ; ORA -30006 : resource busy; acquire with WAIT timeout expired Similarly, the NOWAIT clause can be used to instruct the database to return immediately if the requested row is locked by another transaction: SQL > select * from tbl for update nowait; ORA -00054 : resource busy and acquire with NOWAIT specified or timeout expired If neither WAIT nor NOWAIT is specified, Oracle retains its default behavior and waits indefinitely for the row lock to become available: SQL > s...

Restoring a PDB Backup into a New CDB

According to Oracle Backup and Recovery documentation, restoring a Pluggable Database (PDB) normally requires access to the backup of the Container Database (CDB) that originally hosted the PDB. Without the source CDB metadata, restoring a standalone PDB backup is generally not possible. However, there is an alternative approach that can sometimes be used to recover a PDB backup and plug it into a different CDB. Although this method is not guaranteed to work in every scenario, it is a useful technique to be aware of when designing backup and recovery strategies. In this example, we will back up a PDB named RMANPDB, transfer the backup to another server, and restore it into a completely new CDB. Backing Up the PDB First, verify that the PDB exists and is open: Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- -----------------------------...

Oracle 26ai — Enhancements to Data Dictionary Views for Partitioning

  In data dictionary views related to partitioning, the HIGH_VALUE column is one of the most frequently used attributes. However, its datatype is LONG , which comes with several limitations and restrictions. To address these limitations, Oracle AI Database 26ai introduces two additional columns, HIGH_VALUE_CLOB and HIGH_VALUE_JSON , allowing partition high values to be represented in more convenient formats. The following example creates an interval-partitioned table: SQL > create table tb( 2 id number, 3 date_ date 4 ) 5 partition by range ( date_ ) 6 interval ( numtoyminterval( 1 , 'YEAR' )) 7 ( 8 PARTITION p2022 VALUES LESS THAN (TO_DATE( '2023/01/01' , 'YYYY/MM/DD' )), 9 PARTITION p2023 VALUES LESS THAN (TO_DATE( '2024/01/01' , 'YYYY/MM/DD' )), 10 PARTITION p2024 VALUES LESS THAN (TO_DATE( '2025/01/01' , 'YYYY/MM/DD' )) 11 ); Table created To display partition ...