![[26ai] Nuevas columnas %_TAB_PARTITIONS](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/dddb458a-8b58-4754-9321-2346cc9ecfe6.png)
En el artículo de hoy, vamos a ver una nueva mejora introducida en la vista %_TAB_PARTITIONS. Una mejora muy útil porque es una columna muy usada en el día a día aun siendo un campo de tipo long. Ya sabemos de las limitaciones de este campo y los quebraderos de cabeza que suele dar al manejar información en ese tipo de columnas.
Las dos nuevas columnas son HIGH_VALUE_CLOB y HIGH_VALUE_JSON, ambas columnas tiene la misma información que HIGH_VALUE.
SQL>
Select column_name, data_type
From dba_tab_cols
Where table_name = 'DBA_TAB_PARTITIONS'
And column_name like 'HIGH_VALUE%'
COLUMN_NAME DATA_TYPE
-------------------- -------------------------------------
HIGH_VALUE_CLOB CLOB
HIGH_VALUE_JSON JSON
HIGH_VALUE LONG
Creo que esto es un gran acierto, sobre todo el formato json. Cada vez más usado en los clientes el formato json, por las facilidades que da para manejar la información.
Para ver la información de estás nuevas columnas, vamos a definir una tabla particionado en nuestra base de datos.
SQL>
Create table test_nuevas_columnas (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
registro Date,
valor varchar2(100 Char)
)
partition by range (registro)
interval ( numtoyminterval(1,'MONTH'))
(
PARTITION P01 VALUES LESS THAN ( to_date('01-01-2026','dd/mm/yyyy')),
PARTITION P02 VALUES LESS THAN ( to_date('01-02-2026','dd/mm/yyyy')),
PARTITION P03 VALUES LESS THAN ( to_date('01-03-2026','dd/mm/yyyy')),
PARTITION P04 VALUES LESS THAN ( to_date('01-04-2026','dd/mm/yyyy')),
PARTITION P05 VALUES LESS THAN ( to_date('01-05-2026','dd/mm/yyyy')),
PARTITION P06 VALUES LESS THAN ( to_date('01-06-2026','dd/mm/yyyy')),
PARTITION P07 VALUES LESS THAN ( to_date('01-07-2026','dd/mm/yyyy')),
PARTITION P08 VALUES LESS THAN ( to_date('01-08-2026','dd/mm/yyyy')),
PARTITION P09 VALUES LESS THAN ( to_date('01-09-2026','dd/mm/yyyy'))
);
Procedemos a visualizar la información.
High_Value
Visualización clásica para versiones anteriores a 26ai.
SQL>
Select partition_name, high_value
From dba_tab_partitions
Where table_name = 'TEST_NUEVAS_COLUMNAS'
PARTIT_NAME HIGH_VALUE_JSON
------------ --------------------------------------------------
P01 TO_DATE(' 2026-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P02 TO_DATE(' 2026-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P03 TO_DATE(' 2026-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P04 TO_DATE(' 2026-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P05 TO_DATE(' 2026-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P06 TO_DATE(' 2026-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P07 TO_DATE(' 2026-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P08 TO_DATE(' 2026-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P09 TO_DATE(' 2026-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
High_Value_Json
Aquí podemos usar la función JSON_SERIALIZE o la función JSON_VALUE. Ambas funciones son válidas para revelar la definición de la partición.
SQL>
Select partition_name,
Json_Value(high_value_json,'$.high_value') high_value_json
from dba_tab_partitions
Where table_name = 'TEST_NUEVAS_COLUMNAS';
PARTITION_NAME HIGH_VALUE_JSON
--------------- --------------------------------------------------
P01 2026-01-01T00:00:00
P02 2026-02-01T00:00:00
P03 2026-03-01T00:00:00
P04 2026-04-01T00:00:00
P05 2026-05-01T00:00:00
P06 2026-06-01T00:00:00
P07 2026-07-01T00:00:00
P08 2026-08-01T00:00:00
P09 2026-09-01T00:00:00
SQL>
Select partition_name, json_serialize(high_value_json) high_value_json
From dba_tab_partitions
Where table_name = 'TEST_NUEVAS_COLUMNAS';
PARTIT_NAME HIGH_VALUE_JSON
------------ --------------------------------------------------
P01 {"high_value":"2026-01-01T00:00:00"}
P02 {"high_value":"2026-02-01T00:00:00"}
P03 {"high_value":"2026-03-01T00:00:00"}
P04 {"high_value":"2026-04-01T00:00:00"}
P05 {"high_value":"2026-05-01T00:00:00"}
P06 {"high_value":"2026-06-01T00:00:00"}
P07 {"high_value":"2026-07-01T00:00:00"}
P08 {"high_value":"2026-08-01T00:00:00"}
P09 {"high_value":"2026-09-01T00:00:00"}
Incluso podemos indicar el formato de salida que queremos mostrar.
SQL>
Select
partition_name,
Json_Value(high_value_json,'$.high_value' returning Date) high_value_json
From dba_tab_partitions where table_name = 'TEST_NUEVAS_COLUMNAS';
PARTITION_NA HIGH_VALUE_JSON
------------ -----------------------------------------
P01 01-01-2026 00:00:00
P02 02-01-2026 00:00:00
P03 03-01-2026 00:00:00
P04 04-01-2026 00:00:00
P05 05-01-2026 00:00:00
P06 06-01-2026 00:00:00
P07 07-01-2026 00:00:00
P08 08-01-2026 00:00:00
P09 09-01-2026 00:00:00
High_Value_Clob
Visualización de la información en formato clob.
SQL>
Select partition_name, high_value_clob
From dba_tab_partitions where table_name = 'TEST_NUEVAS_COLUMNAS'
PARTITION_NA HIGH_VALUE_CLOB
------------ --------------------------------------------------------------
P01 TO_DATE(' 2026-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P02 TO_DATE(' 2026-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P03 TO_DATE(' 2026-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P04 TO_DATE(' 2026-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P05 TO_DATE(' 2026-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P06 TO_DATE(' 2026-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P07 TO_DATE(' 2026-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P08 TO_DATE(' 2026-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
P09 TO_DATE(' 2026-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
Espero que os guste. ¡Nos vemos en el próximo artículo!
About the author
Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
Comments
Join the discussionNo comments yet. Be the first to comment.



