miércoles, 6 de mayo de 2026

Comunicado: 4 de mayo de 2026 Actualizaciones mensuales de parches de seguridad críticos (CSPU) de Oracle a partir del 28 de mayo de 2026

 

Oracle presenta una nueva periodicidad de lanzamiento mensual para ayudar a los clientes a abordar las vulnerabilidades de seguridad críticas con mayor rapidez y reducir el riesgo de exposición.
Oracle ha enviado el siguiente correo a todos sus clientes:
A partir del 28 de mayo de 2026, Oracle publicará una Actualización de parches de seguridad críticos (CSPU) cada mes. Las CSPU están diseñadas para proporcionar correcciones de seguridad específicas y de alta prioridad en un formato más conciso y específico, lo que facilita su aplicación con mínimas interrupciones.

Estimado cliente de Oracle:

-21 de julio de 2026 (CPU)Tras el lanzamiento inicial de mayo, las CSPU se publicarán mensualmente de forma continua, coincidiendo con el tercer martes de cada mes, de acuerdo con el modelo de lanzamiento de seguridad establecido por Oracle.

Este nuevo enfoque complementa las Actualizaciones trimestrales de parches críticos (CPU) de Oracle, que continuarán publicándose de forma acumulativa. Las actualizaciones de seguridad de Oracle (CSPU) permiten a los clientes implementar correcciones específicas para vulnerabilidades críticas con mayor rapidez, sin tener que esperar al siguiente ciclo trimestral.
Las próximas cuatro fechas de lanzamiento de actualizaciones de seguridad son:
  • 28 de mayo de 2026 (CSPU)
  • 16 de junio de 2026 (CSPU)
  • 18 de agosto de 2026 (CSPU)
¿Qué significa esto para usted? • Acceso más rápido a correcciones de seguridad críticas • Actualizaciones más pequeñas y específicas • Menor riesgo y aplicación de parches simplificada para entornos gestionados por el cliente

Oracle mantiene su compromiso de ayudar a los clientes a mantener una sólida postura de seguridad mediante la entrega oportuna de actualizaciones de seguridad de alta calidad. 

Así termina el correo, pero que no se dice en el correo.? 

Es casi un 100% seguro, que para poder instalar estos CSPU's, vas a tener que contar con una versión de R.U. reciente. Al menos con el actuar de Oracle en los últimos años, sería al último CPU y eso si nos pone contra la pared tanto frente a la certificación de aplicaciones propias de Oracle, como de terceros, sin dejar de lado, el riesgo que implica hacer una instalación de CPU hoy en día, apenas esté es liberado.

Para muestra un botón con lo sucedido este trimestre. También estamos con un cambio en la aplicación de los CPUs, que voy a explicar en otro posteo, pero como dicen en el beisbol, "Dígale Adiós al OPatch".

MOS aplica requisito de contraseñas para realizar descargar de R.U. a nivel de la base de datos.

 

Dando seguimiento al tema de los cambios realizados de manera progresiva en el MOS, toca ahora, hablar de la necesidad de crear un SR, para obtener una contraseña para la descarga de los R.U. anteriores al último liberado.

Observé algunas publicaciones que son los R.U. a partir del 19.29 y verifiqué dicha información y es 100% correcta. Ya para este parche requiere la contraseña.
Antes de poder crear el SR, debes pasar un asistente de IA que tiene un coeficiente intelectual de un "lagarto cornudo" - si tienes dudas pregunta a tu IA de preferencia cuál es-, que al preguntarle que necesitas una contraseña para descargar un parche que esta protegido con contraseña, te indica que revise antes la información del README.txt, ya que no existe indicaciones de que se requiera una contraseña para descargarlo. Lógico, porque el parche fue liberado antes de la implementación y quién entreno el modelo, no sabía ese pequeño detalle.
Ahora, realmente están poniendo a pruebas nuestra paciencia.!!!
Una vez que realizas unas 5 interacciones con el asistente, el mismo se cansa y te recomienda crear un SR y te brinda la oportunidad de iniciar el flujo.

Nota curiosa, el documento de SLAs para los SR, ya no esta disponible publicamente, por lo que creo esta siendo modificada y adaptánse también para estos cambios.

Esto al menos me pareció un poco más inteligente y las primeras 3 preguntas de las 12 que realiza, las autorellena con la información que le brindaste al asistente. Luego te hace tantas preguntas, que desde mi experiencia con las versiones anteriores y para lo que se necesita concretamente en este caso, son bastante inútiles. Incluso debes agregar el OCID del ambiente en donde deseas aplicar el parche.
Con este asistente, no te permite asignar el nivel del tiquete, por lo que pienso, que le asigna un nivel 4, o sea, baja nivel de criticidad.

La notificación de la creación del SR si llegó al correo, pero aquí viene la otra parte. La creación de SR previo a este fin de semana anterior, se gestionaban por 4 niveles de criticidad. Yo podía configurar el nivel en el rango de 2 a 4. Ya para un SR nivel 1, había que escalarlo o bien escoger que era un ambiente productivo, con afectación total de los servicios.

Yo he llegado a experimentar hasta 7 días de atraso antes de obtener una respuesta. Así que la experiencia de usuario en MOS, es cada vez más difícil de defender. Hoy MOS es más burocrático y enredado de utilizar, y sinceramente, añoro la interfaz clásica que nos acompañó durante tantos años. Al finalizar de escribir esta nota, han pasado 45 minutos desde la creación del SR y aún no existe actividad alguna por parte del equipo del MOS.
Les prometo pasar el chisme de cuánto se duró, para obtener una respuesta.

Oracle hace un cambio de paradigma- con respecto al manejo de la seguridad, introduciendo la IA aplicada a ciberseguridad.

 


Oracle hace un cambio importante -comercialmente hablando sería algo así como un cambio de paradigma- con respecto al manejo de la seguridad, introduciendo -como es la moda actual- la IA aplicada a ciberseguridad.

Oracle crea los "Parches de actualización de seguridad crítica" CSPU periódicamente liberados mensualmente.

Diferencias entre los CPU y los CSPU.
  • Frecuencia: Las CPU son trimestrales (enero, abril, julio, octubre), mientras que las CSPU se publican los meses restantes.
  • Contenido: Las CSPU contienen arreglos específicos para fallos de severidad crítica; las CPU trimestrales son acumulativas e incluyen todos los parches anteriores.
  • Aplicación: En servicios de nube gestionados por Oracle, estas actualizaciones se aplican de forma automática y continua. En entornos locales (on-premises), el cliente es responsable de su instalación.

Con la introducción de los CSPU, Oracle cambia su modelo tradicional de seguridad, pasando de ser reactivo (parches después de encontrado un problema) a uno model proactivo (detención anticipada con IA).

Para poder aplicar este nuevo modelo, Oracle ha tomado la decisión de utilizar LLM para análisis de código, buscando reducir el tiempo de exposición, integrando explícitamente, modelos de OpenAI y Claude de Anthropic, creando un enfoque multi-model de seguridad con IA, introduciendo capacidades de: razonamiento de código, detección de patrones e inferencia de vulnerabilidades, que corresponde al proceso de deducir, predecir o identificar debilidades de seguridad en un sistema, red o aplicación basándose en información indirecta, comportamientos observados o el análisis de características conocidas, en lugar de depender únicamente de escaneos automáticos de vulnerabilidades conocidas (CVEs).

Es necesario este cambio.? La respuesta corta y clara es si. La IA también ha servido para generar exploits más rápidamente, además de automatizar la ingeniería social y hacer un escaneo más inteligente de la superficie de ataque, exponenciando el AI-driven cyber warfare (carrera armamentista tecnológica). 

Si antes los equipos de ataque estaban en relación de centenas o miles a 1, ahora esta relación se ha incrementado aún más. Antes la capacidad de respuesta estaba limitado por la cantidad de recursos humanos disponibles ahora la limitación con este nuevo enfoque, es de capacidad de cómputo. Nos guste o no, la IA elimina el "tiempo humano" como cuello de botella en los sistemas, pero cuidado, recordemos que aún estamos usando pañales y en ocasiones un pañal mal puesto, puede provocar una cascada de caca.

Si quieren leer el comunicado oficial, lo pueden hacer en el link:https://lnkd.in/eVtThx4H

miércoles, 29 de abril de 2026

El caso de la longitud de las contraseñas en Oracle AI Database 26ai: “Toda verdad técnica expresada sin contexto tiende a parecer absoluta; al añadir sus condiciones, se revela relativa dentro de un sistema.”

 

En Oracle Database un VARCHAR2(4000) puede almacenar hasta 4000 bytes o hasta 4000 caracteres, dependiendo de cómo fue definida la columna y del parámetro NLS_LENGTH_SEMANTICS.

Pero lo que si estamos casi de acuerdo, es que serían un poco más o menos de 4000 bytes. Esto es una verdad absoluta que no permite discusión, cierto? Pues no.

Filosóficamente, podrías usar este caso para ilustrar la diferencia entre verdad absoluta, verdad formal y verdad contextual.

La afirmación dogmática sería:
“Un campo VARCHAR2(4000) almacena 4000.”

Presentada así, parece una verdad absoluta, casi axiomática. Pero en realidad es una proposición incompleta, porque omite la naturaleza de la unidad medida.

La verdad formal en Oracle sería: “Un VARCHAR2(4000) almacena hasta 4000 unidades de longitud definidas como BYTE o CHAR.”

Y la verdad contextual añade: “En un charset multibyte, 4000 caracteres pueden requerir muchos más bytes; por tanto, la capacidad efectiva en caracteres puede reducirse incluso a una cuarta parte.”

Ejemplo con AL32UTF8 y caracteres de 4 bytes (como muchos emojis): límite declarado: 4000 bytes
cada carácter consume 4 bytes, por tanto la capacidad real: 4000/4=10004000 / 4 = 10004000/4=1000, es decir, solo una cuarta parte de “caracteres” respecto a ASCII.

Desde la filosofía del lenguaje, esto recuerda a Ludwig Wittgenstein:

el significado depende del “juego del lenguaje”

“4000” no significa nada por sí mismo si no se especifica si hablamos de bytes o caracteres.

Desde Aristóteles, sería un problema de sustancia y accidente:
  • sustancia: la columna tiene límite 4000.
  • accidente: cómo se representa cada símbolo.
Desde Immanuel Kant, el “4000” sería el fenómeno percibido; la “cosa en sí” está condicionada por el charset.

Y desde una crítica al absolutismo epistemológico:

“Toda verdad técnica expresada sin contexto tiende a parecer absoluta; al añadir sus condiciones, se revela relativa dentro de un sistema.”

En la base de datos de Oracle AI Database 26ai,

SQL> select BANNER_FULL from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0

SQL>
 
Existen 15 tablas con el nombre de la columna "PASSWORD".
  

SQL> select count(*) from dba_tab_columns
  2  where column_name='PASSWORD';

  COUNT(*)
----------
        15

Dos de los objetos más relevantes en donde se encuentra la columna "PASSWORD", si haz seguido mis lecturas durante estos años, son SYS.USER$ y DBA_USERS. En ambos objetos, el valor de precisión para la columna "PASSWORD" es de 4000 BYTES. Recuerden que ya para el set de caracteres que utilizamos normalmente en Latinoamérica las bases de datos modernas hacen una conversión de caracters a bytes.


SQL> desc sys.USER$
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USER#                                     NOT NULL NUMBER
 NAME                                      NOT NULL VARCHAR2(128)
 TYPE#                                     NOT NULL NUMBER
 PASSWORD                                           VARCHAR2(4000)
 DATATS#                                   NOT NULL NUMBER
 TEMPTS#                                   NOT NULL NUMBER
 CTIME                                     NOT NULL DATE
 PTIME                                              DATE
 EXPTIME                                            DATE
 LTIME                                              DATE
 RESOURCE$                                 NOT NULL NUMBER
 AUDIT$                                             VARCHAR2(38)
 DEFROLE                                   NOT NULL NUMBER
 DEFGRP#                                            NUMBER
 DEFGRP_SEQ#                                        NUMBER
 ASTATUS                                   NOT NULL NUMBER
 LCOUNT                                    NOT NULL NUMBER
 DEFSCHCLASS                                        VARCHAR2(128)
 EXT_USERNAME                                       VARCHAR2(4000)
 SPARE1                                             NUMBER
 SPARE2                                             NUMBER
 SPARE3                                             NUMBER
 SPARE4                                             VARCHAR2(1000)
 SPARE5                                             VARCHAR2(1000)
 SPARE6                                             DATE
 SPARE7                                             VARCHAR2(4000)
 SPARE8                                             VARCHAR2(4000)
 SPARE9                                             NUMBER
 SPARE10                                            NUMBER
 SPARE11                                            TIMESTAMP(6)
 SPARE12                                            NUMBER
 SPARE13                                            NUMBER
 SPARE14                                            NUMBER
 SPARE15                                            DATE
 SPARE16                                            VARCHAR2(4000)

SQL> desc sys.DBA_USERS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                  NOT NULL VARCHAR2(128)
 USER_ID                                   NOT NULL NUMBER
 PASSWORD                                           VARCHAR2(4000)
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
 LOCK_DATE                                          DATE
 EXPIRY_DATE                                        DATE
 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
 LOCAL_TEMP_TABLESPACE                              VARCHAR2(30)
 CREATED                                   NOT NULL DATE
 PROFILE                                   NOT NULL VARCHAR2(128)
 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(128)
 EXTERNAL_NAME                                      VARCHAR2(4000)
 PASSWORD_VERSIONS                                  VARCHAR2(17)
 EDITIONS_ENABLED                                   VARCHAR2(1)
 AUTHENTICATION_TYPE                                VARCHAR2(8)
 PROXY_ONLY_CONNECT                                 VARCHAR2(1)
 COMMON                                             VARCHAR2(3)
 LAST_LOGIN                                         TIMESTAMP(9) WITH TIME ZONE
 ORACLE_MAINTAINED                                  VARCHAR2(1)
 INHERITED                                          VARCHAR2(3)
 DEFAULT_COLLATION                                  VARCHAR2(100)
 IMPLICIT                                           VARCHAR2(3)
 ALL_SHARD                                          VARCHAR2(3)
 EXTERNAL_SHARD                                     VARCHAR2(3)
 PASSWORD_CHANGE_DATE                               DATE
 MANDATORY_PROFILE_VIOLATION                        VARCHAR2(3)
 PROTECTED                                          VARCHAR2(3)
 READ_ONLY                                          VARCHAR2(3)
 DICTIONARY_PROTECTED                               VARCHAR2(3)
 CLOUD_MAINTAINED                                   VARCHAR2(3)
 APPLICATION                                        VARCHAR2(3)
 MFA                                                VARCHAR2(9)

SQL>

Pero si revisamos la documentación oficial en Oracle.com, en Oracle AI Database 26ai, la longitud máxima del password es de 1024 bytes.

La columna esta definida para un tamaño más grande, pero sólo se pueden crear contraseñas con el tamaño máximo de 1024 bytes.

Veamos un ejemplo:

SQL> alter user seguro_seguro identified by EsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoS;

User altered.


SQL> alter user seguro_seguro identified by EsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSuper;
alter user seguro_seguro identified by EsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSilodiceconsolturasonaraarmoniosoSupercalifragilisticoexpialidosoEsSupercalifragilisticoexpialidosoaunquesueneextravaganteraroyespantosoSuper
                                       *
ERROR at line 1:
ORA-28218: password length more than 1024 bytes
Help: https://docs.oracle.com/error-help/db/ora-28218/

Ven porque toda la explicación "innecesaria" que hice al puro principio de la publicación.?

“Toda verdad técnica expresada sin contexto tiende a parecer absoluta; al añadir sus condiciones, se revela relativa dentro de un sistema.”


martes, 28 de abril de 2026

Tip rápido en Oracle Linux: Borraste archivos pero no logras ver el espacio disponible.?


[oracle@serverdb_01_prod]$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
devtmpfs                             126G     0  126G   0% /dev
tmpfs                                126G  726M  125G   1% /dev/shm
tmpfs                                126G  2.6G  124G   3% /run
tmpfs                                126G     0  126G   0% /sys/fs/cgroup
/dev/sda3                            5.9T  2.6T  3.3T  44% /
/dev/sda1                            200M  7.4M  193M   4% /boot/efi
tmpfs                                 26G     0   26G   0% /run/user/1000
172.24.4.79:/FileSystem-RespaldosDB  8.0E  1.4T  8.0E   1% /respaldos
s3fs                                  64P     0   64P   0% /opt/app/respaldos_archive
tmpfs                                 26G     0   26G   0% /run/user/994

Ejecuta el comando SYNC y vuelve a validar.

[oracle@serverdb_01_prod]$ sync

[oracle@serverdb_01_prod]$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
devtmpfs                             126G     0  126G   0% /dev
tmpfs                                126G  726M  125G   1% /dev/shm
tmpfs                                126G  2.6G  124G   3% /run
tmpfs                                126G     0  126G   0% /sys/fs/cgroup
/dev/sda3                            5.9T  2.6T  3.3T  44% /
/dev/sda1                            200M  7.4M  193M   4% /boot/efi
tmpfs                                 26G     0   26G   0% /run/user/1000
172.24.4.79:/FileSystem-RespaldosDB  8.0E  758G  8.0E   1% /respaldos
s3fs                                  64P     0   64P   0% /opt/app/respaldos_archive
tmpfs                                 26G     0   26G   0% /run/user/994

sábado, 25 de abril de 2026

Cómo crear embeddings desde SQL en Oracle AI Database 26ai usando modelos ONNX?





Para implementar modelos de Machine Learning en Oracle Database 23ai On-premises, el enfoque más moderno y potente es la importación de modelos en formato ONNX para habilitar AI Vector Search.

Qué es ONNX?
Significa Open Neural Network Exchange y corresponde un formato abierto y estándar para representar modelos de Machine Learning e Inteligencia Artificial, diseñado para que un modelo entrenado en una herramienta pueda ejecutarse en otra.

Si haces una conexión a tu base de datos y ejecutas el siguiente comando y no recibes ningún registro de vuelta, es que no tienes ningún modelo cargado en tu base de datos.

SELECT model_name, mining_function, algorithm 
FROM user_mining_models

Al ejecutar la siguiente consulta buscando crear un embedding para una línea de texto, vas a recibir un error ORA-40284 indicando que el modelo no existe.

SQL> SELECT VECTOR_EMBEDDING(MI_MODELO_EMBEDDINGS USING 'Hola, esto es una prueba' AS DATA) AS vector
FROM DUAL;  2
FROM DUAL
     *
ERROR at line 2:
ORA-40284: model does not exist
Help: https://docs.oracle.com/error-help/db/ora-40284/

Así que vamos a preparar nuestra base de datos para poder crear a través de la función VECTOR_EMBEDDING, una representación vectorial de un texto.

Lo primero, vamos a brindar los permisos necesarios al esquema en el cuál vamos a trabajar.
En este caso he escogido el esquema de ejemplo de SH.

GRANT DB_DEVELOPER_ROLE TO SH;
GRANT CREATE MINING MODEL TO SH;

Luego vamos a crear un directorio en nuestro servidor de base de datos, que va a hacer referencia a un punto en el sistema operativo, en donde vamos a descargar el modelo que queremos importar dentro de la base de datos.

create directory models as '/u01/app/oracle/models';

En este caso, el directorio "MODELS" apuntará a la ruta indicada a nivel de sistema operativo.

Ahora vamos a brindar permisos de lectura y escritura sobre el directorio creado a nuestro esquema SH.

grant read,write on directory models to sh;

Para este ejemplo es elegido el modelo all-MiniLM-L12-v2 que es uno de los modelos de embeddings más usados por su equilibrio entre tamaño, velocidad y precisión.

El modelo all_MiniLM_L12_v2.onnx es una versión exportada a ONNX del modelo Sentence Transformers sentence-transformers/all-MiniLM-L12-v2, utilizado principalmente para generar embeddings semánticos de texto. Es uno de los modelos que Oracle ha recomendado para integrarlo con AI Vector Search en Oracle AI Database 26ai.

Características técnicas principales

CaracterísticaValor aproximado
Arquitectura baseMiniLM (Transformer liviano)
Número de capas12 layers
Parámetros~33 millones
Dimensión del embedding384
Longitud máxima de tokens256 tokens (algunas implementaciones 128/256)
Tipo de salidaVector denso normalizado
Similaridad recomendadaCOSINE
FormatoONNX
LicenciaApache 2.0


¿Qué hace exactamente?

Convierte frases, párrafos o documentos cortos en vectores de 384 dimensiones donde: textos con significado similar → vectores cercanos textos distintos → vectores alejados

Ejemplo:
"Oracle Database 26ai supports vector search"
"Oracle AI DB includes semantic search"
ambos producirán embeddings cercanos.

Casos de uso típicos
Este modelo funciona bien para:

Semantic Search
Buscar documentos “por significado” y no por coincidencia exacta.

RAG (Retrieval-Augmented Generation)
Buscar fragmentos relevantes antes de enviar contexto a un LLM.

Clustering de texto
Agrupar tickets, incidentes, logs, correos.

Detección de similitud
Comparar preguntas/respuestas.

Clasificación semántica
Asignar categorías por cercanía vectorial.



Ventajas

Comparado con modelos más grandes como MPNet o BERT-base:
  • Más rápido en CPU.
  • Menor consumo de RAM.
  • Menor tamaño en disco (~90MB a ~130MB dependiendo de exportación).
  • Ideal para ejecutarse dentro de Oracle Database.
Ahora, será necesario que hagamos la descarga del modelo que hemos escogido para utilizar.

[oracle@oracle-server-26ai models]$ pwd
/u01/app/oracle/models

[oracle@oracle-server-26ai models]$ wget -O all_MiniLM_L12_v2.onnx \
"https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/iPX9W0MZeRkwJKWdFmdJCemmN-iKAl_bFvNGYLW7YqIrw4kKsukL24J2q93Beb9S/n/adwc4pm/b/OML-ai-models/o/all_MiniLM_L12_v2.onnx"

--2026-04-25 14:17:09--  https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/iPX9W0MZeRkwJKWdFmdJCemmN-iKAl_bFvNGYLW7YqIrw4kKsukL24J2q93Beb9S/n/adwc4pm/b/OML-ai-models/o/all_MiniLM_L12_v2.onnx
Resolving adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com (adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com)... 134.70.32.1, 134.70.28.1, 134.70.24.1
Connecting to adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com (adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com)|134.70.32.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 133322334 (127M) []
Saving to: ‘all_MiniLM_L12_v2.onnx’

all_MiniLM_L12_v2.onnx                      100%[========================================================================================>] 127.15M   310MB/s    in 0.4s

2026-04-25 14:17:09 (310 MB/s) - ‘all_MiniLM_L12_v2.onnx’ saved [133322334/133322334]

[oracle@oracle-server-26ai models]$ ls -lat
total 130200
drwxr-xr-x.  2 oracle oinstall        36 Apr 25 14:17 .
drwxrwx---. 10 oracle oinstall       118 Apr 25 14:15 ..
-rw-r--r--.  1 oracle oinstall 133322334 Oct  7  2025 all_MiniLM_L12_v2.onnx

Listo ya tenemos descargado nuestro modelo y ahora es necesario que carguemos el modelo dentro de la base de datos.

BEGIN
  DBMS_VECTOR.LOAD_ONNX_MODEL(
    directory => 'models',
    file_name => 'all_MiniLM_L12_v2.onnx',
    model_name => 'MI_MODELO_EMBEDDINGS'
  );
END;
/

Luego podemeos validar que el modelo efectivamente ha sido cargado.

SELECT model_name, mining_function, algorithm 
FROM user_mining_models

MODEL_NAME           MINING_FUNCTION                ALGORITHM
-------------------- ------------------------------ ------------------------------
MI_MODELO_EMBEDDINGS EMBEDDING                      ONNX

Ahora probemos a ver si es posible crear nuestro vector.

SELECT VECTOR_EMBEDDING(MI_MODELO_EMBEDDINGS USING 'Hola, esto es una prueba' AS DATA) AS vector
FROM DUAL;

[1.3900646E-003,6.4947255E-002,-3.41739021E-002,3.00823897E-002,-1.3453302E-002,-1.87666081E-002,-4.35688905E-002,4.46249396E-002,6.3403599E-002,-4.62511182E-002,3.3260759E-002,-1.44735333E-002,-2.21015308E-002,1.40913026E-002,7.5034E-002,3.59462239E-002,6.43426031E-002,1.98624283E-002,1.90574955E-002,-2.13727448E-002,7.24871606E-002,6.8553783E-002,-2.48328503E-002,2.43773255E-002,-2.34660842E-002,-5.5200249E-002,3.9385803E-002,7.0384331E-002,-5.28017692E-002,-5.48376963E-002,-1.94696989E-002,4.1839987E-002,7.37491548E-002,-2.21404079E-002,-5.96100725E-002,-4.02953289E-002,7.35913664E-002,-9.62668285E-002,1.56864934E-002,1.2650843E-001,-8.29633791E-003,-5.34933135E-002,-6.29290864E-002,-4.25488316E-002,2.33139982E-003,-1.02485389E-001,-3.00091389E-003,8.56035948E-002,7.16768205E-002,2.89637297E-002,2.96710469E-002,-4.93476242E-002,-3.28859203E-002,1.27376709E-002,4.25983733E-003,5.24660461E-002,7.47554079E-002,-9.9608168E-002,-6.88042492E-002,8.87526199E-002,-1.80443178E-003,2.61041019E-002,3.81092168E-002,6.49420405E-003,-7.15156458E-003,3.77375836E-004,6.56677037E-002,-5.78824989E-002,-2.22714376E-002,4.38990667E-002,3.11253797E-002,-1.50656011E-002,4.09434102E-002,5.47525883E-002,2.77292971E-002,-7.04061687E-002,1.6800079E-003,-9.08812806E-002,-8.92041251E-003,5.46105094E-002,-2.05046106E-002,-1.2373329E-001,-3.45300809E-002,-4.78763729E-002,-8.85539651E-002,-7.20430613E-002,-1.7484704E-002,4.76256311E-002,-3.64556946E-002,-6.55404404E-002,-5.06183552E-003,1.35141434E-002,-3.6078237E-002,-4.76635993E-004,3.7716683E-002,3.38687003E-002,-6.03729934E-002,-4.40221317E-002,1.00445992E-003,6.26754761E-002,1.9100951E-002,-4.17933352E-002,7.84236044E-002,-6.76141009E-002,-1.58108363E-003,8.11111853E-002,5.22661954E-002,3.96392047E-002,-7.88598787E-003,1.40044698E-002,-1.8102048E-002,-5.93436025E-002,-4.04904895E-002,4.09404673E-002,-3.24861035E-002,-1.36348559E-002,-7.20573664E-002,-3.92829888E-002,-7.74733722E-002,-6.04367889E-002,1.48849776E-002,-2.17362046E-002,-1.37405088E-002,-1.40654035E-002,5.28604463E-002,-8.58230144E-002,8.2690537E-002,-1.5872702E-002,2.59843729E-002,-1.89039744E-002,-4.1163303E-003,-3.26678306E-002,-5.90283051E-002,1.78802516E-002,-1.49752768E-002,6.13624938E-002,-2.13406868E-002,4.18959334E-002,-2.84545049E-002,2.55872235E-002,-1.41871767E-002,-7.05784326E-003,7.58661628E-002,5.12781693E-003,2.65482161E-002,-2.98756734E-002,6.20706081E-002,6.97502196E-002,-4.34035808E-002,6.63504153E-002,-1.63700934E-002,2.19134353E-002,-4.25044447E-002,-4.44938778E-004,-8.99366662E-002,-4.5101922E-002,-2.94682924E-002,6.38995096E-002,1.22462576E-002,-7.70974485E-003,-5.87149225E-002,3.07904016E-002,7.1540691E-002,-9.26405471E-003,3.59040033E-003,2.65567563E-003,-1.45466123E-002,3.51659209E-002,-6.44643903E-002,3.22895348E-002,-3.17530781E-002,8.62621609E-003,4.65120748E-002,-5.58609096E-003,-3.77367511E-002,4.18439917E-002,9.31436718E-002,-3.05033475E-002,-9.26166251E-002,1.64704993E-002,-2.0406669E-002,4.81320225E-004,-9.45158228E-002,-6.67981952E-002,-8.91887397E-002,2.49027461E-002,-6.48279041E-002,-4.72947806E-002,2.46572159E-002,5.50275706E-002,2.57982686E-002,-4.67213206E-002,-2.69834343E-002,8.45892653E-002,-5.38872145E-002,6.37916997E-002,5.9427578E-002,5.21879494E-002,-1.48437489E-002,-2.74545904E-002,-1.90172456E-002,2.9384179E-002,-8.22653249E-002,-2.33890284E-002,7.54830614E-002,-6.06272332E-002,5.65813715E-003,8.76496881E-002,-4.60354798E-002,-4.1076811E-003,2.31930427E-002,2.79998016E-002,-2.04425808E-002,1.55423552E-001,5.11384718E-002,1.07636675E-001,6.04426637E-002,1.50089845E-001,-5.39999828E-002,1.02401003E-001,3.16832936E-003,-6.32362515E-002,2.88271345E-002,-1.32585654E-032,1.38411419E-002,-5.69943376E-002,3.07825487E-002,-6.2084619E-002,4.73874994E-003,-5.29002324E-002,-6.90745264E-002,8.36086571E-002,7.66877756E-002,3.37841697E-002,-6.46747053E-002,-5.57038672E-002,7.92162195E-002,-8.3183445E-002,6.84358031E-002,1.10465817E-005,-4.53029294E-003,-2.83081327E-002,-2.04892661E-002,-9.35557634E-002,-5.7014741E-002,2.72388998E-002,7.82605112E-002,-1.20674539E-002,6.11994267E-002,9.75737348E-003,-3.0896483E-002,-3.74141373E-002,-2.18903963E-002,-7.92545453E-002,-8.68051965E-003,1.11484644E-003,-3.59221697E-002,1.31579891E-001,-1.28166946E-002,-2.35027988E-002,-1.26797035E-002,2.87881829E-002,4.12984751E-002,9.91139933E-003,-1.12441219E-002,1.65291037E-002,-9.90293324E-002,1.9596843E-002,-5.19916788E-002,-3.85330012E-003,1.16031997E-001,-3.30846384E-002,1.01698637E-002,-6.02884032E-002,-4.50805342E-003,2.04256666E-003,1.87034942E-002,5.2292333E-003,8.39919224E-002,-6.04134798E-002,-7.75140002E-002,-4.72206511E-002,4.50489484E-002,7.22124577E-002,2.7057562E-002,4.34556231E-002,-2.32761689E-002,-2.01885235E-002,3.4009587E-002,2.4763735E-002,-4.55132462E-002,1.18991081E-002,5.8908958E-002,7.33381808E-002,7.92638883E-002,-7.41918385E-002,-1.34471074E-001,-3.27881388E-002,-5.01030199E-002,5.87125532E-002,-9.05613378E-002,5.67616522E-003,-3.68121415E-002,-4.14253287E-002,3.20088374E-003,-2.77393535E-002,-8.57385434E-003,-4.5528993E-002,-4.96782809E-002,-2.40529813E-002,-1.36366487E-002,-7.79022556E-003,9.82291345E-003,5.79915568E-002,-9.82802012E-004,3.76926661E-002,-3.59502137E-002,-4.84997742E-002,-1.41461603E-002,4.12206343E-032,-2.22963225E-002,7.83920195E-003,-6.78976113E-003,2.47782543E-002,7.05694035E-002,3.58279049E-002,-6.50222152E-002,-6.46860227E-002,-1.02872102E-004,-3.98172028E-002,9.73907858E-003,-8.38956162E-002,-5.45164645E-002,-2.14765649E-002,3.25041562E-002,2.91623659E-002,4.62868623E-002,7.13896453E-002,2.59754043E-002,-1.16456635E-002,-1.39092626E-002,-7.8247726E-002,8.32773093E-003,-3.50259878E-002,4.80484255E-002,3.37976627E-002,-3.08791045E-002,-1.19398562E-002,6.18945323E-002,-9.94550586E-002,-9.02341772E-003,1.11277113E-002,-8.27196687E-002,-7.58799762E-002,1.68302748E-002,-6.02526218E-002,4.47138511E-002,-5.04813492E-002,-6.43555447E-002,-1.25823811E-001,-1.9547062E-002,7.96526521E-002,1.28585175E-002,2.31666751E-002,-2.69731451E-002,-5.82041442E-002,3.8045086E-002,-8.97646844E-002,3.40791396E-003,2.25604866E-002,-5.89550175E-002,-3.92772555E-002,7.14555234E-002,3.20473276E-002,8.6180523E-002,-3.58830206E-002,-1.6021559E-002,-2.47178948E-003,-4.43300009E-002,1.32946577E-002,8.7638922E-002,5.74000552E-002,-1.10163353E-002,1.13602327E-002]

Para el modelo all_MiniLM_L12_v2.onnx, la entrada principal esperada es: VARCHAR2.

Oracle hace conversiones automáticas desde otros tipos:
  • CHAR
  • NCHAR
  • NVARCHAR2
  • CLOB
  • NCLOB → convertido a NVARCHAR2
  • NUMBER, DATE, etc. → convertidos a texto si la conversión es válida
Ejemplo:
SELECT VECTOR_EMBEDDING(modelo USING employee_id) FROM hr.employees;

internamente sería algo similar a:  TO_CHAR(employee_id)

Restricciones
Aunque Oracle permita convertir: CLOB, no es recomendable si el contenido excede la ventana del modelo.

Ejemplo: MiniLM:
  • 256 tokens aprox.
  • algunos modelos 512
Si envías 20 páginas de texto, Oracle lo puede convertir, pero el modelo truncará internamente.
Eso puede degradar la semántica.

Ahora si, ya puedes desde tu base de datos crear "embeddings" para texto sin ncesidad de salir de la base de datos.


miércoles, 22 de abril de 2026

Oracle ACE Connect Costa Rica, 09 de mayo Universidad Cenfotec.

 


Hoy estamos viviendo un cambio silencioso, pero profundo, en la forma en que trabajamos con los datos.

Durante años hemos estructurado, normalizado y consultado información utilizando modelos relacionales tradicionales. Hemos sido expertos en responder preguntas exactas: ¿cuánto?, ¿cuándo?, ¿quién? Pero el mundo actual nos exige algo distinto.
 
Ahora necesitamos responder preguntas como:
• ¿qué se parece a esto?
• ¿qué significa esta imagen?
• ¿qué información relevante existe, aunque no esté explícitamente relacionada?

La inteligencia artificial está transformando la naturaleza del dato, y ya no hablamos solo de filas y columnas, sino de contexto, similitud y significado. Imágenes, documentos, registros médicos, diagramas, evidencia visual… todos contienen información valiosa que antes quedaba fuera del alcance del SQL tradicional.

Inscripción gratuita https://lnkd.in/ecpKn8jw
Habrá parqueo disponible y refrigerio.


martes, 21 de abril de 2026

Actualización crítica de parches de Oracle para abril de 2026


21 de abril de 2026
Actualización crítica de parches de Oracle para abril de 2026

Estimado cliente de Oracle:

La actualización crítica correspondiente a abril de 2026 se publicó el 21 de abril de 2026.

Oracle recomienda encarecidamente aplicar los parches lo antes posible.

El aviso está disponible en la siguiente ubicación:
https://lnkd.in/e6bZgv3j

Puede encontrar recursos adicionales de seguridad de Oracle en los siguientes enlaces:
https://lnkd.in/eUUcqB9i
https://lnkd.in/eruhdAuA
https://lnkd.in/eUdy_yrP

Las próximas cuatro fechas para las actualizaciones de parches críticos son:

21 de julio de 2026
20 de octubre de 2026
19 de enero de 2027
20 de abril de 2027

Si no puede determinar si necesita una actualización de software o cómo aplicarla, póngase en contacto con el soporte técnico de Oracle.

Gracias,
Seguridad de Oracle

Todos los Sábados a las 8:00PM