Daily Archives: July 16, 2026

Immutable table in oracle database 19c

Why Do We Need Immutable Tables? In many applications, certain data should never be modified once it is stored. Traditional tables allow UPDATE and DELETE operations, which can accidentally or intentionally change critical records. Immutable tables solve this problem by allowing only INSERT operations and protecting data from modification or deletion until the configured retention period expires. Common use cases include: Audit logs Financial transactions Compliance records (SOX, HIPAA, GDPR) Healthcare data Legal and government records Immutable Tables in Oracle Database Immutable tables are insert-only relational structures that enforce immutability through system-managed retention controls at both the table and row levels. These controls prohibit UPDATE and DELETE operations until the retention period expires. While functionally similar to blockchain tables in terms of data immutability, immutable tables do not maintain cryptographic hash links between records. Oracle introduced immutable tables in Oracle Database 19c Release Update 19.11, and they are supported in all later releases. Prerequisites The COMPATIBLE initialization parameter must be set to the appropriate value before immutable tables can be used. [oracle@Primary ~]$ sqlplus / as sysdba NOTE: Verify the database version and apply the appropriate COMPATIBLE value accordingly. SQL> STARTUP SQL> ALTER SYSTEM SET compatible=’19.11.0′ SCOPE=SPFILE; System altered. SQL> SHUT IMMEDIATE; Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP ORACLE instance started. Oracle Version Requirements Immutable Tables were introduced in Oracle Database 19c RU 19.11. Oracle 19.11 contains a few known issues related to retention policy modifications. These issues are resolved in Oracle 19.12 and later releases, including Oracle 21.3. For production environments, Oracle recommends using the latest supported Release Update (RU).…

Read More

How to Configure Oracle Database Vault on an Oracle 19c CDB

Why Oracle Database Vault? In a traditional Oracle database, users with powerful privileges such as SYS or DBA can access sensitive application data. While these privileges are required for database administration, they can also pose security and compliance risks. Oracle Database Vault addresses this by enforcing separation of duties and restricting access to sensitive data, even for privileged users. Common use cases include: Protecting HR employee records Securing Finance and payroll data Meeting compliance requirements such as SOX, PCI-DSS, and HIPAA Restricting privileged users from accessing application data Step 1. Verify Current Database Vault and Oracle Label Security Status Start the database. SQL> STARTUP ORACLE instance started. Total System Global Area 1560278096 bytes Fixed Size                  9135184 bytes Variable Size             385875968 bytes Database Buffers         1157627904 bytes Redo Buffers                7639040 bytes Database mounted. Database opened. Connect to the CDB root. SQL> SHOW CON_NAME CON_NAME CDB$ROOT Verify whether Database Vault is enabled. SQL> SELECT value     FROM v$option     WHERE parameter = ‘Oracle Database Vault’; VALUE—– FALSE Verify whether Oracle Label Security is enabled. SQL> SELECT value     FROM v$option     WHERE parameter = ‘Oracle Label Security’; VALUE—–FALSE…

Read More

Create custom software image in OCI console

Introduction: A software image in Oracle Base Database Cloud Service serves as a preconfigured template containing a specific Oracle Database and Grid Infrastructure Release Update. By creating and managing software…

Read More

ORA-14656: Cannot Drop the Parent of a Reference-Partitioned Table – Root Cause and Resolution

Introduction Partitioning is one of Oracle Database’s most powerful features for managing large tables efficiently. Among the available partitioning methods, Reference Partitioning allows a child table to inherit its partitioning…

Read More