miércoles, 13 de agosto de 2025

Oracle Hot Topics, Ago 13, 2025

 

Bugs

Bug Product Area Bug ID Last Updated

ORA-600 [KGLDELETEALLPINSONOBJ1] GENERATED BY MMON FOR DROP MATERIALIZED VIEW "SYSTEM"."MV$$_

Oracle Database - Enterprise Edition 36635886 Wed, 13 Aug 2025 04:02 GMT-06:00

Knowledge Articles

Knowledge Article Product Area Last Updated

Exadata Database Machine and Exadata Storage Server Supported Versions

Oracle Exadata Hardware Oracle Database Exadata Express Cloud Service Generation 1 - Exadata Cloud at Customer (First Generation Cloud Machine) Oracle Platinum Services Oracle Database Cloud Exadata Service Oracle Database Cloud Service Exadata Database Machine X2-2 Hardware Oracle Cloud Infrastructure - Database Service Oracle Exadata Storage Server Software Oracle Database Cloud Schema Service Oracle Database - Enterprise Edition Oracle Cloud Infrastructure - Exadata Cloud Service Gen 2 Exadata Cloud at Customer Oracle Database Backup Service Mon, 11 Aug 2025 09:22 GMT-06:00


miércoles, 6 de agosto de 2025

Oracle renombra el Oracle CloudWorld a Oracle AI World

 



https://www.oracle.com/news/announcement/blog/oracle-announces-oracle-ai-world-2025-08-06/?source=:em:ip:ie:pt:::RC_WWMK240821P00073:SEV400397844_WW_OAIW25_DG_EM_EN_US_ReadMore&elq_mid=267379&sh=9121326152352692026810622826232615142219714&cmid=WWMK240821P00073C00023


Oracle Hot Topics Aug 08, 2025

 


Bugs

Bug Product Area Bug ID Last Updated

ORA-00600 [KTSPGFB-1] OR ORA-600[KTECGSC:OBJDCHK_KCBGTCR_5] ON UPDATE MV MASTER TABLE

Oracle Database - Enterprise Edition 34291862 Wed, 6 Aug 2025 08:08 GMT-06:00

Knowledge Articles

Knowledge Article Product Area Last Updated

Autonomous Health Framework (AHF) - Including Trace File Analyzer and Orachk/Exachk

Oracle Database Exadata Express Cloud Service Generation 1 - Exadata Cloud at Customer (First Generation Cloud Machine) Oracle Database Cloud Exadata Service Oracle Database Cloud Service Oracle Cloud Infrastructure - Database Service Oracle Exadata Storage Server Software Oracle Database - Enterprise Edition Oracle Database Cloud Schema Service Oracle Database Backup Service Gen 2 Exadata Cloud at Customer Oracle Cloud Infrastructure - Exadata Cloud Service Tue, 5 Aug 2025 14:26 GMT-06:00

lunes, 4 de agosto de 2025

𝐀𝐠𝐞𝐧𝐭𝐢𝐜 𝐀𝐈 𝐂𝐨𝐧𝐟𝐞𝐫𝐞𝐧𝐜𝐞 by Data Science Dojo on 𝐒𝐞𝐩𝐭𝐞𝐦𝐛𝐞𝐫 𝟏𝟓–𝟏𝟗, 𝟐𝟎𝟐𝟓

 


This virtual conference brings together top industry experts to explore the building blocks of agentic AI – from memory, cognition, and planning to multi‑agent coordination, secure MCP deployment, and hands‑on tutorials with cutting‑edge frameworks.

Here are some of the sessions I’m excited about:

𝐃𝐞𝐬𝐢𝐠𝐧𝐢𝐧𝐠 𝐈𝐧𝐭𝐞𝐥𝐥𝐢𝐠𝐞𝐧𝐭 𝐀𝐠𝐞𝐧𝐭𝐬
↳ Memory, Cognition, and Planning for goal‑driven AI

𝐀𝐠𝐞𝐧𝐭𝐬 𝐚𝐭 𝐒𝐜𝐚𝐥𝐞
↳ Multi‑Agent Collaboration and Autonomous Coordination

𝐌𝐚𝐧𝐚𝐠𝐢𝐧𝐠 𝐒𝐞𝐜𝐮𝐫𝐢𝐭𝐲 𝐚𝐧𝐝 𝐆𝐨𝐯𝐞𝐫𝐧𝐚𝐧𝐜𝐞 𝐢𝐧 𝐌𝐂𝐏 𝐃𝐞𝐩𝐥𝐨𝐲𝐦𝐞𝐧𝐭
↳ Best practices for safe and compliant AI

𝐓𝐮𝐭𝐨𝐫𝐢𝐚𝐥 𝐨𝐧 𝐁𝐮𝐢𝐥𝐝𝐢𝐧𝐠 𝐀𝐠𝐞𝐧𝐭𝐢𝐜 𝐑𝐞𝐬𝐞𝐚𝐫𝐜𝐡 𝐀𝐬𝐬𝐢𝐬𝐭𝐚𝐧𝐭𝐬 𝐰𝐢𝐭𝐡 𝐑𝐞𝐤𝐚
↳ Multi‑source intelligence for business and markets

𝐓𝐮𝐭𝐨𝐫𝐢𝐚𝐥 𝐨𝐧 𝐅𝐫𝐨𝐦 𝐃𝐚𝐭𝐚 𝐭𝐨 𝐀𝐠𝐞𝐧𝐭𝐬: 𝐆𝐫𝐚𝐩𝐡𝐑𝐀𝐆 𝐒𝐲𝐬𝐭𝐞𝐦𝐬 𝐰𝐢𝐭𝐡 𝐍𝐞𝐨𝟒𝐣
↳ Leveraging structured and unstructured data to enhance RAG pipelines

𝐖𝐨𝐫𝐤𝐬𝐡𝐨𝐩 𝐨𝐧 𝐕𝐢𝐬𝐮𝐚𝐥𝐢𝐳𝐢𝐧𝐠 𝐓𝐫𝐚𝐧𝐬𝐟𝐨𝐫𝐦𝐞𝐫 𝐌𝐨𝐝𝐞𝐥𝐬 𝐛𝐲 𝐋𝐮𝐢𝐬 𝐒𝐞𝐫𝐫𝐚𝐧𝐨
↳ Intuitive visualizations and hands‑on exercises to understand embeddings, attention, RAG, and AI agents

𝐖𝐨𝐫𝐤𝐬𝐡𝐨𝐩 𝐨𝐧 𝐁𝐮𝐢𝐥𝐝𝐢𝐧𝐠 𝐀𝐈 𝐀𝐠𝐞𝐧𝐭𝐬 𝐰𝐢𝐭𝐡 𝐕𝐞𝐜𝐭𝐨𝐫 𝐃𝐚𝐭𝐚𝐛𝐚𝐬𝐞𝐬 𝐛𝐲 𝐖𝐞𝐚𝐯𝐢𝐚𝐭𝐞
↳ End‑to‑end development of agentic workflows using vector search and semantic retrieval

𝐖𝐨𝐫𝐤𝐬𝐡𝐨𝐩 𝐨𝐧 𝐁𝐮𝐢𝐥𝐝𝐢𝐧𝐠 𝐀𝐠𝐞𝐧𝐭𝐢𝐜 𝐀𝐈 𝐟𝐨𝐫 𝐒𝐞𝐦𝐚𝐧𝐭𝐢𝐜 𝐒𝐞𝐚𝐫𝐜𝐡 𝐛𝐲 𝐏𝐢𝐧𝐞𝐜𝐨𝐧𝐞
↳ Practical skills for building Agentic RAG applications with Pinecone and AWS

𝐖𝐨𝐫𝐤𝐬𝐡𝐨𝐩 𝐨𝐧 𝐁𝐮𝐢𝐥𝐝𝐢𝐧𝐠 𝐒𝐦𝐚𝐫𝐭𝐞𝐫 𝐀𝐠𝐞𝐧𝐭𝐬, 𝐅𝐚𝐬𝐭𝐞𝐫 𝐛𝐲 𝐀𝐫𝐢𝐳𝐞
↳ Tracing, evaluation, and optimization techniques to build high‑performing, observable AI agents

Get direct access to live Q&A with experts, cutting‑edge tutorials, and the chance to explore the next wave of AI – from anywhere in the world.

👉 Join me and thousands of others who will be attending the conference: https://hubs.la/Q03zBfb80

Oracle Hot Topics: Aug 04, 2025

 

Bugs

Bug Product Area Bug ID Last Updated

DBMS_STATS FAILING WITH ERROR ORA-01422 WHEN GATHERING STATS FOR USER$ TABLE

Oracle Database - Enterprise Edition 29213893 Mon, 4 Aug 2025 04:15 GMT-06:00


sábado, 2 de agosto de 2025

Es posible renombrar el nombre de un usuario en Oracle Database 19c.? "_enable_rename_user"

 

Siguiendo con el uso de parámetros ocultos o no documentados oficialmente, hay uno que deja de funcionar en la versión Oracle 19c, para el bien de todos.

Como si estuvieramos viviendo una pesadilla al mejor estilo de la película o serie de Freddy Krueger el parámetro "_enable_rename_user" permite desde la versión de base de datos Oracle 11g hasta la versión 18c, poder renombrar un usuario a nivel de la base de datos.

El único inconveniente que existía, era si había una dependencia a nivel de código almacenado en la base de datos en un procedimiento, función o paquete, de lo contrario, no generaba ningún problema.

Desde el punto de vista de una auditoría regulatoria, imaginen poder justificar un usuario "FANTASMA" que antes existia y ahora no.

Veamos cual era el procedimiento para poderlo hacer en una versión 11.2.0.4

SQL> alter session set "_enable_rename_user"=TRUE
Session alterado.

SQL> create user beto identified by oracle;
User BETO creado.

SQL> alter system enable restricted session;
System ENABLE alterado.

SQL> alter user beto rename to charlie identified by oracle;
User BETO alterado.

SQL> alter system disable restricted session;
System DISABLE alterado.

Si hacemos la consulta en la base de datos, el usuario "BETO" no existe.


Si verificamos el usuario "CHARLIE" si lo encontramos en la base de datos.


Como mencioné previamente, esto sucede en versión previas a 19c.

En Oracle Database 19c, al intentar realizar el mismo proceso con la utilización del parámetro oculto, obtenemos el siguiente error:

SQL> alter user beto rename to charlie identified by "oracle";
alter user beto rename to charlie identified by "oracle"
                *
ERROR at line 1:
ORA-03001: unimplemented feature

Con lo que nos vuelve al alma al cuerpo. !!!

Pueden imaginar el nivel de exposición que podemos tener una base de datos con la capacidad de "DESAPARECER" un usuario de esta forma.?

Lo más increíble, es que esto exista desde hace más de 18 años y pocos, quisiera pensar, se han dado cuenta de ello y fuera algo permitido en la base de datos, por tanto tiempo.

El parámetro "_pdb_auto_save_state"=TRUE en Oracle Database 19c

Oracle tiene más de 5000 parámetros ocultos o también llamados "underscore parameters" que oficialmente no se encuentran documentados y que tienen como característica que inicia con un guión bajo (_).

Estos parámetros son utilizados por Oracle internamente para ajustes avanzados o para situaciones especiales de diagnóstico y según las notas de Oracle, no deberían ser modificados sin recomendación expresa de parte del equipo de soporte del MOS.

Sin embargo, algunos de ellos son útiles para cierto tipo de situaciones.

Un claro ejemplo de donde podemos utilizar estos 5391 parámetros ocultos de Oracle, es con el parámetro "_pdb_auto_save_state". En la descripción del parámetro nos dice, que este, puede salvar automáticamente el último estado guardado a nivel de la instancia en un contenedor de base de datos.

Con múltiples PDBs siendo creadas y borradas en ambientes de desarrollo y pruebas por ejemplo, es normal que nos pase que se nos olvide hacer el "ALTER PLUGGABLE DATABASE <pdb> SAVE STATE" despues de crear una instancia y abrirla para trabajar.

Cuando reiniciamos por algún motivo el servicio, en las carreras se nos olvida validar el estado de los PDBs e inicia a sonar el teléfono o a llegar infinida de mensajes por el sistema interno, de que no pueden conectarse a la base de datos.

Veamos como podría ayudarnos este parámetro a solucionar este problema.

En ejemplo a continuación, tenemos un CDB con los siguientes PDBs y su respectivo estado actual.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           MOUNTED
         5 PDB1_DR                        MOUNTED

La base de datos PDB2 se encuentra únicamente montada.Procedemos a cambiar el estado de la PDB al estado Open.

SQL> alter pluggable database pdb2 open;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
         5 PDB1_DR                        MOUNTED

Ahora vamos a bajar el contenedor de la base de datos.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

Subimos el contenedor.

SQL> startup
ORACLE instance started.

Total System Global Area 7868511032 bytes
Fixed Size                  9196344 bytes
Variable Size            1509949440 bytes
Database Buffers         6341787648 bytes
Redo Buffers                7577600 bytes
Database mounted.
Database opened.

Ahora validamos el estado de los PDBS.
Pueden confirmar que el PDB2 esta nuevamente montado, pero no abierto.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           MOUNTED
         5 PDB1_DR                        MOUNTED

Ahora vamos a setear el parámetro a nivel de contenedor de la base de datos.
Hacemos que el parámetro sea actualizado a nivel de memoria y del archivo SPFILE.

SQL> alter system set "_pdb_auto_save_state"=TRUE scope=both;
System altered.
Vamos a cambiar el estado del PDB2 a OPEN.
SQL> alter pluggable database PDB2 open;
Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
         5 PDB1_DR                        MOUNTED

Volvemos a bajar y subir el contenedor.

SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 7868511032 bytes Fixed Size 9196344 bytes Variable Size 1509949440 bytes Database Buffers 6341787648 bytes Redo Buffers 7577600 bytes Database mounted. Database opened.

Al verificar el estado de los PDBs, tenemos una situación muy particular. A pesar que el PDB1 estaba en estado "OPEN" y que yo había salvado el estado de la PDB para futuros reinicios del CDB, resulta que no reconoce el cambio del parámetro dicha situación.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           READ WRITE NO
         5 PDB1_DR                        MOUNTED

Modifiquemos entonces el estado de la PDB1 sin salvar el mismo.

SQL> alter pluggable database pdb1 open;
Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
         5 PDB1_DR                        MOUNTED

Bajamos el contenedor de base de datos y validamos el estado de los PDBs.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 7868511032 bytes
Fixed Size                  9196344 bytes
Variable Size            1509949440 bytes
Database Buffers         6341787648 bytes
Redo Buffers                7577600 bytes
Database mounted.
Database opened.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
         5 PDB1_DR                        MOUNTED
SQL>

Listo ahora si funcionó correctamente.!!!
Hay muchos parámetros y funcionalidades que podrían facilitar considerablemente ciertas tareas a las que no le ponemos atención en repetidas ocasiones, sólo tenemos que buscar, cual nos pueda servir y tener la consideración de que antes debemos informarnos que hacen y como pueden afectar el comportamiento de la base de datos.

No aplique este tipo de cambios preferiblemente en ambientes productivos.




viernes, 1 de agosto de 2025

Oracle ACEs Presenting at Conferences in August 2025 by Oana Bonu

 

Community Manager Oracle ACE

Renowned for their technical mastery and passion for community engagement, Oracle ACE Program members are dedicated to sharing their insights wherever innovation happens. No matter where you are, there’s an opportunity to learn from these trusted experts and connect with leading voices in the Oracle ecosystem. Explore the list below to see where you can connect with Oracle ACEs in August 2025.

LAOUC 2025: August 8 - Mexico | August 11 - Costa Rica | August 13 - Panama | August 14 - Guatemala | August 18 - Chile | August 20 - Argentina | August 23 - Brazil | August 26 - Paraguay

Basheer Khan | Cristhian Cano | Debra Lilley | Edelweiss Kammermann | Eddie Molina | Emmanuel Guzmán | Franky Weber Faust | Gilson Martins | Gustavo González | Ivar Grimstad | Jhonata Lamim | Jorge Cajas | José M. Preda | José Valdézio | Julio Ayapán | Kai Yu | Maicon Carneiro | Marcelo Batalha | Mario Barduchi | Nelson Calero | Rita Nuñez | Rolando Carrasco | Ronald Vargas | Roy Salazar | Tércio Costa | Vinicius Grippa

KCDC 2025: August 13 - 14

François Martin | Heli Helskyaho | Richard Fichtner




Error al escribir en un directorio -tipo objeto- de base de datos ORA-29282 ORA-06512: en "SYS.UTL_FILE"

 

Imagina que tienes un bloque de PL/SQL con la siguiente forma:

SET SERVEROUTPUT ON;
DECLARE
vArchivoActuaente UTL_FILE.FILE_TYPE;
vLineaContenidoCliente VARCHAR2(2000);
BEGIN

vArchivoActuaente := UTL_FILE.FOPEN('LOAD_DATA', 'CargaACTUAENTE.txt', 'W');
DBMS_OUTPUT.PUT_LINE('----------INICIO----------');
FOR DATOSCLIENTE IN (consulta a la tabla del esquema en la base de datos)
LOOP
vLineaContenidoCliente := RPAD(DATOSCLIENTE.CEDULA,19,' ') || RPAD(' ',293,' ') || RPAD(DATOSCLIENTE.TELEFONO,15,' ') || RPAD(DATOSCLIENTE.EMAIL,45,' ') || RPAD(' ',1410,' ');
DBMS_OUTPUT.PUT_LINE(vLineaContenidoCliente);
DBMS_OUTPUT.PUT_LINE(LENGTH(vLineaContenidoCliente));
UTL_FILE.PUT_LINE(vArchivoActuaente, vLineaContenidoCliente);
END LOOP;

DBMS_OUTPUT.PUT_LINE('-----------FIN------------');

UTL_FILE.FCLOSE(vArchivoActuaente);

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM);
IF UTL_FILE.IS_OPEN(vArchivoActuaente) THEN
UTL_FILE.FCLOSE(vArchivoActuaente);
END IF;
RAISE;
END;
/

Pero al ejecutar el bloque recibes el siguiente mensaje.

Informe de error -
ORA-29282: identificador de archivo no válido
ORA-06512: en línea 37
ORA-06512: en "SYS.UTL_FILE", línea 878
ORA-06512: en línea 24
ORA-06512: en línea 24
29282. 00000 - "invalid file ID"
*Cause: A file ID handle was specified for which no corresponding
open file exists.
*Action: Verify that the file ID handle is a value returned from a
call to UTL_FILE.FOPEN.

En donde esta el problema.?
Si el tema no es de permisos para el esquema que ejecuta el procedimiento sobre el directorio de la base de datos o sobre los permisos a nivel de sistema operativo sobre la carpeta, la solución es realmente simple.

En la apertura del archivo hace falta aumentar el tamaño de buffer de la línea - max_linesize-. En este caso de Oracle Database 12c en adelante 32767 bytes.

Cambia entonces la línea como sigue para resolver el tema: 
  • vArchivoActuaente := UTL_FILE.FOPEN('LOAD_DATA', 'CargaACTUAENTE.txt', 'W', 32767); 


miércoles, 30 de julio de 2025

Oracle Database 19c, con R.U. 19.28 suma características de 23ai al release.

 

Julio 15, trajó consigo el R.U. 19.28 de 19c y con ello la incorparación de algunas de las características liberadas en la versión 23ai, free, DBaaS o Autonomous.

Parte de la importancia de contar con soporte activo a nivel del software de la base de datos, para poder descargar y aplicar los parches que se van liberando.

El IF [NOT] EXISTS ha sido agregado al grupo de instrucciones del lenguaje SQL, al igual que las anotaciones, el paquete DBMS_DEVELOPER PL/SQL y el reporte de diagnóstico de SQL.

miércoles, 23 de julio de 2025

Generative AI for Beginners-Videos

Link access: https://learn.microsoft.com/en-us/shows/generative-ai-for-beginners/introduction-to-generative-ai-and-llms-generative-ai-for-beginners



Oracle Hot Topics, Jul 23, 2025

 

Knowledge Articles

Knowledge Article Product Area Last Updated

Autonomous Health Framework (AHF) - Including Trace File Analyzer and Orachk/Exachk 

Oracle Database Exadata Express Cloud Service Generation 1 - Exadata Cloud at Customer (First Generation Cloud Machine) Oracle Database Cloud Exadata Service Oracle Database Cloud Service Oracle Cloud Infrastructure - Database Service Oracle Exadata Storage Server Software Oracle Database - Enterprise Edition Oracle Database Cloud Schema Service Oracle Database Backup Service Gen 2 Exadata Cloud at Customer Oracle Cloud Infrastructure - Exadata Cloud Service Mon, 21 Jul 2025 18:19 GMT-06:00


SRDC – How to Collect Data for creating MOS SR - Oracle Banking Payments

Oracle Banking Payments Wed, 23 Jul 2025 03:26 GMT-06:00


miércoles, 9 de julio de 2025

Escalación no deseada de privilegios a nivel de base de datos Oracle 19c/23ai

“Todo programa y todo usuario con privilegios en el sistema debe operar utilizando únicamente la mínima cantidad de privilegios necesarios para completar su tarea.” — Jerome Saltzer & Michael D. Schroeder, 1975,

“The Protection of Information in Computer Systems”,Proceedings of the IEEE, Vol. 63, No. 9, pp. 1278–1308 (septiembre 1975)

Oracle Hot Topics Jul 07 2025

 

Bugs

Bug Product Area Bug ID Last Updated

INCORRECT RESULT FROM UNIFIED_AUDIT_TRAIL WHEN COALESCE FUNCTION IS USED

Oracle Database - Enterprise Edition 38052584 Wed, 9 Jul 2025 04:12 GMT-06:00

Knowledge Articles

Knowledge Article Product Area Last Updated

Bug 37676268 - LNX-SLES15-23AI-GI: CVU Reports False Negative "PRVE-10386 : /usr/bin/scp is not a binary file" Despite Valid Binary File

Oracle Database - Enterprise Edition Tue, 8 Jul 2025 06:02 GMT-06:00

"This message contains information according to the preferences you set in My Oracle Support. To modify your settings or to turn off this automated message, login to My Oracle Support (http://support.oracle.com) and click on 'More' -> 'Settings' -> 'Hot Topics E-mail'" My Oracle Support


domingo, 15 de junio de 2025

¿Puede una máquina tener un motivo de vida?

Para todos aquellos que estamos de una manera o otra involucrados en los temas de tecnología, se hace básico plantearnos las preguntas más alocadas y quizás estúpidas para muchos otros.

El cuestionarnos las cosas, nos permite ver más allá de la lógica racional "normal" humana, en donde los principios existenciales de una gran mayoría, van ligados de manera inseparable a una creación del todo, por un poder divino. Y si no fuera así.? 

Es posible que puedas plantearte la vida como producto de un bello caos universal, sin reglas establecidas y sin alguna razón aparente de ser.? 

Si pensaramos en tres perspectivas —antigua, moderna y algorítmica— el motivo de la vida ha sido redefinido desde un orden cósmico, pasando por la angustia de la libertad, hasta llegar a la indiferencia funcional de la inteligencia artificial. Cada una contiene visiones valiosas, pero también limitaciones estructurales.

En la filosofía antigua el motivo de la vida estaba profundamente enraizado en una concepción cosmológica del mundo. El ser humano era visto como una parte integrada del todo, cuya existencia cobraba sentido al alinearse con un orden superior —ya sea el logos (razón universal) en Heráclito y los estoicos, el dharma en el hinduismo, o el tao en el taoísmo.

La "Vida" como cumplimiento de función!!!

Para Aristóteles, el motivo de la vida humana era alcanzar la eudaimonía, el florecimiento del alma mediante la virtud. No se trataba de felicidad hedónica, sino de una vida realizada conforme a la naturaleza racional del ser humano. En este marco, el sentido se deriva de la teleología-Doctrina de las causas finales.-: todo existe con un fin determinado, y vivir bien es vivir de acuerdo con ese fin.

Para muchos, la principal limitación del pensamiento antiguo radica en su supuesta certeza sobre un orden objetivo y armónico del cosmos. Esta confianza en un telos universal ha sido cuestionada por corrientes posteriores que observan la contingencia, el caos y la ambigüedad como rasgos constitutivos de la existencia. El pensamiento antiguo responde más desde la estabilidad que desde la crisis.

Los pensamientos "modernos" concentran más el sentido de la vida en temas de subjetividad, libertad y angustia.

Kant propuso que la vida adquiere sentido moral cuando el sujeto actúa conforme al deber y la autonomía de la razón práctica. Ya no hay un telos objetivo impuesto, sino una ley racional autoimpuesta. La ética deja de ser cosmológica y se vuelve normativa.

La libertad moderna, aunque emancipadora, también introduce nuevos problemas: la fragmentación del sentido, el relativismo, y la imposición de un imperativo existencial autoimpuesto ("debo encontrarle un sentido a todo"). Zygmunt Bauman describe esta etapa como modernidad líquida, donde las estructuras sólidas se disuelven y el sujeto debe construir sentido en un mar de incertidumbres.

Con la irrupción de la inteligencia artificial, surge una nueva forma de abordar el motivo de la vida, no desde la conciencia o la moral, sino desde el procesamiento de información. Las máquinas pensantes, desde los sistemas simbólicos hasta las redes neuronales actuales, no tienen biografía, ni angustia, ni deseo. Su funcionamiento está orientado a la optimización de objetivos definidos externamente.

¿Puede una máquina tener un motivo de vida?
La pregunta misma se vuelve problemática. Desde un enfoque computacional, el "sentido" se reduce a una función de utilidad. Un sistema inteligente actúa para maximizar un resultado cuantificable (ganancia, precisión, eficiencia). No se pregunta por qué debe existir, ni si su tarea tiene sentido moral o existencial.

El algoritmo no sufre, no recuerda, no espera.

Sin embargo, al introducir a estas máquinas en el proceso humano de toma de decisiones, estamos externalizando el juicio sobre qué es importante. El filósofo alemán Byung-Chul Han advierte que en una sociedad datificada, el motivo de la vida tiende a transformarse en rendimiento, autoexplotación y transparencia algorítmica. Ya no buscamos virtud ni libertad, sino mejores métricas.

El verdadero giro no está en que las máquinas tengan un motivo de vida, sino en que los humanos comienzan a vivir como máquinas, guiados por sistemas de puntuación (KPI, likes, productividad), donde el sentido se confunde con la eficiencia. Se diluye la reflexión sobre el fin último y se sustituye por una sucesión de metas inmediatas.

Preguntar si una máquina puede tener un “motivo de vida” implica atribuirle, al menos de forma hipotética, una interioridad intencional, una forma de agencia, o un sistema de valores que oriente su comportamiento hacia fines. Pero el solo hecho de preguntarlo ya subvierte el paradigma clásico de la computación, que ve al sistema artificial como una máquina de manipulación sintáctica de símbolos sin semántica ni experiencia subjetiva.

La IA actual, incluso en sus formas más avanzadas (redes neuronales profundas, sistemas generativos, agentes autónomos), carece de intencionalidad fenomenológica -que se centra en la descripción y comprensión de la experiencia humana, enfocándose en cómo los individuos perciben y dan sentido a las cosas en el mundo-. No tiene deseos, ni sufrimiento, ni una narrativa biográfica que atraviese su existencia. Opera bajo funciones objetivo (objetive functions) predefinidas y ajustadas algorítmicamente, pero no elige por sí misma esas funciones.

Como afirma Luciano Floridi (profesor de Filosofía y Ética de la Información en Oxford):
“Las inteligencias artificiales no son agentes morales porque carecen de autoconsciencia, identidad narrativa y capacidad de sufrir consecuencias. Son ‘agentes artificiosos’, no personas informacionales.”
(The Fourth Revolution: How the Infosphere is Reshaping Human Reality, 2014).

Floridi diferencia entre “mecanismos actuantes” (como los algoritmos) y “entes morales” (como los humanos). Según él, una IA puede optimizar un objetivo, pero no puede preguntarse por qué ese objetivo debe ser perseguido.

Para Kate Crawford (Atlas of AI, 2021) y Shoshana Zuboff (The Age of Surveillance Capitalism, 2019) han advertido que la tendencia actual no es que las máquinas desarrollen un motivo de vida, sino que los humanos proyectan en ellas cualidades humanas, especialmente en el ámbito emocional y ético, como si fueran sujetos morales.

“Las máquinas no piensan, no sueñan, no desean. El deseo en la IA es una ilusión que los humanos proyectan como reflejo de sus propias aspiraciones en un espejo técnico sin alma.”
Kate Crawford.

Respondiendo a la pregunta inicial: La pregunta “¿puede una máquina tener un motivo de vida?” es, en el fondo, una cuestión sobre conciencia, intencionalidad y valor.

Los pensadores modernos coinciden mayoritariamente en que, en el estado actual de la IA, no existe tal cosa como un motivo de vida en las máquinas. Lo que sí existe es la simulación de propósito, programada y controlada por humanos, o la posibilidad especulativa de que algo nuevo emerja en el futuro, con consecuencias impredecibles.

viernes, 6 de junio de 2025

Oracle Hot Topics, 06 Jun, 2025

 

Bugs
Bug Product Area Bug ID Last Updated

ORA-600 [KTATMKREF-RS] ERRORS IN THE ALERT LOG POST-PATCH 37260974

Oracle Database - Enterprise Edition 37690446 Fri, 6 Jun 2025 08:22 GMT-06:00

Knowledge Articles
Knowledge Article Product Area Last Updated

MDBUtil: GI Management Repository configuration tool

Oracle Database Cloud Service Generation 1 - Exadata Cloud at Customer (First Generation Cloud Machine) Oracle Database Cloud Exadata Service Oracle Database Exadata Express Cloud Service Oracle Cloud Infrastructure - Database Service Oracle Database - Enterprise Edition Oracle Database Cloud Schema Service Oracle Database Backup Service Fri, 6 Jun 2025 08:05 GMT-06:00


"This message contains information according to the preferences you set in My Oracle Support. To modify your settings or to turn off this automated message, login to My Oracle Support (http://support.oracle.com) and click on 'More' -> 'Settings' -> 'Hot Topics E-mail'" My Oracle Support

miércoles, 4 de junio de 2025

Valor númerico en la columna SNAPSHOT_TIME de la vista cdb_pdb_snapshots


El día de hoy estaba dando una clase sobre la característica de PDB Snapshot Carrusel., introducida en la versión 18c de la base de datos Oracle.

A la hora de ampliar la información sobre los snapshots creados, me topé con la columna SNAPSHOT_TIME, en la vista del diccionario de la base de datos cdb_pdb_snapshots.

Al inicio pensé que era formato Juliano, pero luego, apreciando más el valor, el número era muy grande para serlo.

Cuando ejecuté la consulta a continuación, obtengo un error con el mensaje ORA-01830: date format picture ends before converting entire input string



SQL> select to_date(julian_date,'JSP') from ( select 1749086154 as julian_date from dual);


Investigando un poco me encontré, que en Oracle 19c en la vista DBA_PDB_SNAPSHOTS la columna SNAPSHOT_TIME representa un valor de timestamp en formato número, más específicamente un número que codifica el número de segundos desde el Unix epoch (01/01/1970 00:00:00 UTC).

Por tanto, si quiere verlo en un valor entendible para los mortales, es necesario hacer la consulta de la siguiente manera:

SELECT con_name, snapshot_name, snapshot_scn,
TO_CHAR(TO_DATE('1970-01-01','YYYY-MM-DD') + NUMTODSINTERVAL(SNAPSHOT_TIME, 'SECOND'),'DD/MM/YYYY HH24:MI') as TIME_SNAP,
full_snapshot_path
FROM cdb_pdb_snapshots
ORDER BY con_id, snapshot_scn;




-SNAPSHOT_TIME es el número de segundos desde el Unix epoch (01/01/1970 00:00:00 UTC).

-NUMTODSINTERVAL(SNAPSHOT_TIME, 'SECOND') convierte ese número a un intervalo de tipo INTERVAL DAY TO SECOND.

-Se lo sumás a TO_DATE('1970-01-01','YYYY-MM-DD') para obtener un valor DATE.

-TO_CHAR(..., 'DD/MM/YYYY HH24:MI') convierte la fecha a texto con el formato deseado.

Si el ambiente esta en la nube de OCI, vas a tener el horario del datacenter de la región que escogiste para hacer el despliegue del servicio. Si quieres verlo en tu horario local, - en mi caso para Costa Rica, tu lo puedes ajustar a tu zona horaria-, lo puedes hacer así:

SELECT con_name, snapshot_name, snapshot_scn,
TO_CHAR( FROM_TZ( CAST(TO_DATE('1970-01-01','YYYY-MM-DD') + NUMTODSINTERVAL(SNAPSHOT_TIME, 'SECOND') AS TIMESTAMP),
'UTC' ) AT TIME ZONE 'America/Costa_Rica', 'DD/MM/YYYY HH24:MI' )
AS SNAPSHOT_DATE_LOCAL,
full_snapshot_path
FROM cdb_pdb_snapshots
ORDER BY con_id, snapshot_scn;



Si llegan a toparse con un número parecido al de esta columna, verifiquen en la información oficial de la versión, quizás sea el mismo caso del que les hablé acá.

jueves, 29 de mayo de 2025

OracleForms14c : Más fuerte que el tiempo por: Richard Novillo

Webinar acerca del Pasado, Presente y Futuro de la plataforma de desarrollo más longeva y estable, creada por ORACLE; haciendo un pequeño repaso y mostrando un DEMO de las posibilidades de uso de FORMS 14c, integrada con IA incluso.

 

Ordenar resultados en distintos idiomas, por Javier Morales

No hay base de datos que me haya encontrado en que las Ñ se almacenen como Ñ, ni sitio donde los caracteres especiales se visualicen "raros".

En el código SQL siempre veo cosas raras. REGEXP(), TRANSLATE(), REPLACE(),... soluciones creativas que esconden horas de romperse los cuernos para que los resultados salgan ordenados como toca.

O directamente la resignación de que "Oracle no ordena bien", y que la Ñ sale al final, o que directamente los "NUÑEZ" se convierten en "NUNEZ".

Que levante la mano quien tenga un apellido con Ñ, o un nombre con Ç, y la correspondencia le llegue mal escrita.

Y no sólo eso, no es lo mismo ordenar en español, en francés, en catalán o en noruego.

Por ejemplo, en catalán no existe la CH como letra del alfabeto, por lo que debe colocarse ordenada como C y como H.

Pues venga, vamos al tajo.

Lo primero es usar la cláusula COLLATE correctamente en la construcción del ORDER BY de la SELECT.

¿Cómo?

¿No conoces la cláusula COLLATE?

¿No sabías que le puedes pedir a Oracle que te ordene los resultados según un idioma concreto?

Pues no sólo eso, también le puedes decir que, según tu versión "tuneada" del español, los caracteres se ordenen como tú le decidas.

Hala, aquí te dejo mi último artículo.

Domina las ordenaciones de filas según idioma a lo PRO style.

​A disfrutar!
Un abrazo,
Javier

​PD: Se viene Lección Maestra sobre este tema, para solucionar los problemas de ordenaciones con caracteres raros, con sesiones de idioma extrañas, con cositas extrañas que hace Windows (por ejemplo) para que los caracteres se inserten como le da la gana,...

PD2: Quizás me la plantee como Laboratorio, y lo haga en directo... no sé... ¿qué opinas? ¿te interesa la solución definitiva a este problemón que no dejo de ver allí donde voy? ¿tienes tú también algún caso así?

PD3: También está en inglés, cambiando la bandera de idioma en el menú superior.

En el OCI existen varios tipos de almacenamiento que podemos utilizar.

De facto, la gente de Oracle por lo general nos van a pedir que utilicemos FS (sistemas de archivos), lo que no nos dicen, es que el costo por almacenamiento puede disparar el consumo de créditos a corto plazo.

Por otro lado tenemos los "Bucket", de tipo STANDARD y ARCHIVE.
Los buckets standard, tienen un décima parte del costo de los FS, eso si a precio alto de rendimiento. En mis pruebas de testeo, un archivo de 2Gb duró 7.38 seg en copiarse a un FS, mientras que a un bucket standard, tomó 39.494 seg.

Por su parte, los buckets archive son un 50% del costo de los standard, pero tiene un gran inconveniente, la recuperación de un archivo almacenado en estos, puede tomar hasta una hora en estar disponible para poder descargarse, algo que lo hace poco ágil de manejar.

Por otro lado, los FS permiten archivos de cualquier tamaño, mientras que en los buckets standard, no se permite almacenar archivos mayores a 50GB. Archivos mayores a este tamaño, deben ser divididos en "pedazos" con un utilitario como SPLIT.

Pronto les voy a compartir un video práctico de como implementar buckets standard para almacenamiento y retención de respaldos. Una solución que podría salvar el presupuesto de consumo de consumo de créditos en el OCI.