jueves, 29 de febrero de 2024

Cambios importantes en PWA en iOS 17.4 para usuarios de la UE

Por Mónica Godoy, Senior Principal Product Manager for Oracle APEX

El próximo iOS 17.4 de Apple se adherirá a la Ley de Mercados Digitales (DMA) de la UE al imponer la igualdad de navegadores. Si bien la DMA podría haber permitido a otros proveedores de navegadores también ofrecer PWA en iOS, Apple ha optado por desactivar esta funcionalidad por completo.
 
Esta decisión afecta significativamente a las aplicaciones APEX en la UE al:
  • Eliminando la experiencia similar a una aplicación instalable.
  • Desactivar las notificaciones push.
  • Ralentizar la carga de la página al borrar el caché local.
Las PWA APEX se reducirán a simples marcadores y las aplicaciones existentes que dependen de la funcionalidad PWA dejarán de funcionar. Esto afectará negativamente a las empresas y a los consumidores de la UE, que lo percibirán como un defecto en su aplicación APEX.


👉 Puedes unirte a la comunidad #orclapex firmando la carta abierta a Tim Cook en letter.open-web-advocacy.org ahora.

No dude en agregar un comentario a continuación si su aplicación o negocio se verá afectado. Sería bueno comprender cómo afecta esto a las aplicaciones APEX PWA en el mundo real.

domingo, 25 de febrero de 2024

Por que el símbolo de arroba @ en el correo electrónico.

 Hay dos motivos por los que se incluyó la @ en las direcciones de correo electrónico:

  1. El primero, que era un ícono poco utilizado.
  2. El segundo, que en latín el símbolo significa “en”, lo que dota de significado a las direcciones (por ejemplo usuario (en) gmail, ronald.vargas.quesada@gmail.com
En España por el ejemplo, sin que conste el inicio de la utilización del símbolo, una arroba equivalía a la cuarta parte de un quintal, es decir, entre 30 y 36 libras.


El 21 de junio de 1971, cuando el programador estadounidense, Raymond Tomlinson, lo añadió a la dirección del primer mensaje de correo electrónico que se envió de un ordenador a otro, alcanzó la inmortalidad.

Copiar y Pegar - COPY/PASTE - la invención que nos ha ahorrado millones de horas de edición.

Hace unos días atrás, el 16 de febrero pero del 2020, muere en Portola Valley, California, Larry Tesler, a la edad de 74 años.

Tesler, inventó una de las funcionalidades que supone millones de horas en ahorro para todos los usuarios de un ordenador.

El copy/paste, fue por primera vez ejecutado por Tesler en el año 1981.



Tesler quién trabajaba para XEROX, renunció a dicha compañía para incorporarse a Apple en julio de 1980 apoyando el desarrollo de Apple Lisa, gracias a la intervención de Steve Jobs.

A partir de 1990, Tesler fue nombrado vicepresidente del Grupo Newton de Apple bajo el Grupo de Tecnología Avanzada y dirigió los esfuerzos de desarrollo del Apple Newton , uno de los primeros asistentes digitales personales y predecesor de la tableta.

Los dominios de nombres en INTERNET.

Paul Mockapetris informático estadounidense y pionero de Internet, junto con Jon Postel, inventaron el DNS (sistema de nombres de dominio) de internet.

Crearon un sistema jerárquico en niveles, de la misma forma que dentro de un libro hay capítulos. Cada una de las etiquetas jerárquicas asignadas a cada dispositivo estarían compuestas por dos elementos: el nombre de dominio y la extensión.

En 1985 se establecieron seis tipos de extensiones diferentes, destinadas a identificar el uso general del dominio:
  • .com (Sitios de uso comercial)
  • .net (Sitios de infraestructuras de la red)
  • .org (Sitios de Organizaciones)
  • .gov (Sitios de organismos gubernamentales)
  • .mil (Sitios de dependencias militares)
  • .edu (Sitios de institutos educativos)
Hasta 1995 registrar un dominio era gratis.
Pensaríamos, que el dominio internet.com, sería el más caro, sin embargo no es así. Este dominio, se ubica en el 5 lugar con un valor de $18 millones.


Carinsurance.com, se ubica como el dominio más caro con un valor de $49.7 millones y INSURANCE.COM en el segundo con $35.6 millones. VacationRentals.com – $35 millones en el tercer lugar y Voice.com – $30 millones en el cuarto lugar, completa el TOP5 al año 2023.

Contrariamente los dominios ".shop", se venden por un poco más de $1 al año.

Son curiosidades que pocas veces, le ponemos atención.

CAPTCHA significa…

“Completely Automated Public Turing Test to tell Computers and Humans Apart”, o lo que viene a ser “Prueba de Turing completamente automática y pública para distinguir máquinas de humanos”.

Lo que debe de suponer que el Test de Turing ya ha sido superado según los creadores del concepto, dado que ya hace tiempo que la Inteligencia Artificial es capaz de superar captchas.

El CAPTCHA fue inventado por Luis Von Ahn  informático y empresario guatemalteco, profesor de ciencias de la computación en la Universidad Carnegie Mellon, fundador de las compañías Duolingo,​ Captcha y Recaptcha, la cual fue vendida a Google en 2009.



Qué hay de especial con la historía del término "Bug".

Que una de las ingenieras que hizo parte del reporte de incidente y que operaba el Mark II, era Grace Hooper.!!!

Sí, la misma que desarrolló el lenguaje de programación COBOL.



Sabías que el término "Bug" se originó por una polilla real.?

Específicamente, lo causó un mal funcionamiento en el ordenador Mark II en 1947.
Un equipo de científicos de la Universidad de Hardvard en Massachusetts, Estados Unidos, escribió una nota en el registro de uso de la computadora Mark II, que era básicamente una calculadora gigante.
La nota en cuestión era muy simple y estaba marcada a las 3:45 p.m: “Primer caso real de un bug encontrado”, reza el registro, junto a una muestra del especimen.

Lo que había ocurrido en realidad es que una polilla, una real polilla, estaba dentro de los circuitos de la Mark II. Y no solo habitaba en el aparato, sino que era la causa de que la computadora generara problemas de varios tipos en su funcionamiento; literalmente, un bug causando errores en una computadora.

Los ingenieros a cargo del uso de la Mark II descubrieron que la polilla estaba atrapada en un circuito muy particular: el relé 70 del Panel F, tal como indica la nota. Y como prueba del suceso, pegaron el cadáver de la polilla en la nota con cinta adhesiva, en lo que se convertiría en el primer registro exacto y literal de un bug, que pasaría a la historia.

Imágen podría contar con derechos de autor.


Breve historia de los Transpiladores.

Transpilador: Uno de los primeros programas de este tipo fue Digital Research XLT86 en 1981, un programa escrito por Gary Kildall, el cual traducía código fuente .ASM del procesador Intel 8080 a código fuente .A86 para el procesador Intel 8086. 

Utilizando análisis de flujo de datos global sobre el uso de los registros del 8080, el traductor también optimizaba la salida en cuanto a tamaño de código y convenciones de invocación. Así que los programas de CP/M-80 and MP/M-80 pudieron ser portados a las plataformas CP/M-86 y MP/M-86 de forma automática. El XLT86 fue escrito en PL/I-80.

En abril de 1974, Intel lanza su microprocesador 8080, el "segundo microprocesador de 8 bits".
El i8080 fue una variante del diseño ampliado y mejorado de su microprocesador anterior 8008, aunque sin compatibilidad binaria.

El límite de frecuencia de reloj especificada inicial fue de 2MHz y con instrucciones comunes que tiene tiempos de ejecución de 4, 5, 7, 10 o 11 ciclos de esto significaba que operaba a una velocidad efectiva de unos cientos de miles de instrucciones por segundo.

El i8080 ha sido a llamado "el primer microprocesador realmente utilizable", debido a que hasta su llegada, no se utilizaban microprocesadores para las calculadoras, cajas registradoras, terminales de ordenador, robots industriales y otras aplicaciones.

La arquitectura del 8080 influyó fuertemente en 8086 la arquitectura de la CPU de Intel, que dio lugar a la familia de procesadores x86.



Oracle Database 23cPerformance TuningSQL Transpiler

SQL Transpiler automáticamente y siempre que sea posible convierte (transpila) funciones PL/SQL dentro de SQL en expresiones SQL, sin intervención del usuario.

Las expresiones en sentencias SQL de Oracle pueden llamar a funciones PL/SQL. Pero estas llamadas generan una sobrecarga porque se debe invocar el tiempo de ejecución de PL/SQL. El compilador SQL intenta convertir automáticamente cualquier función PL/SQL llamada desde una declaración SQL en una expresión SQL semánticamente equivalente.

La transpilación de funciones PL/SQL a SQL aumenta el rendimiento de programas y funciones nuevos y existentes. Cuando se invoca una función PL/SQL transpilada, el costo por fila de ejecutar el código transpilado dentro de SQL es mucho menor que cambiar del tiempo de ejecución de SQL al tiempo de ejecución de PL/SQL para ejecutar el código PL/SQL original.



miércoles, 21 de febrero de 2024

Oracle implementará cambios incrementales en My Oracle Support (https://support.oracle.com), lo que podría afectar su capacidad para iniciar sesión.

Comunicado al Cliente de Oracle,

El primer cambio está planeado para el 1 de marzo de 2024. 

Cuando haga clic en "Iniciar sesión en My Oracle Support" en https://support.oracle.com, verá una breve redirección a https://login-ext.identity.oraclecloud.com antes de ingresar sus credenciales de inicio de sesión. Además de esta redirección momentánea, su experiencia de inicio de sesión será la misma que hoy.

Más adelante en marzo, la URL de inicio de sesión de la cuenta Oracle https://login.oracle.com será reemplazada por https://signon.oracle.com y la página de inicio de sesión única existente se reemplazará por un proceso de dos pasos: primero el correo electrónico, seguido de su contraseña en una segunda página.

Acción requerida:

Por favor, inicie sesión en MOS Communities o Cloud Customer Connect, que ya han introducido el primer cambio. Si puede iniciar sesión con éxito, no se requiere ninguna acción adicional.

  • https://community.oracle.com/mosc
  • https://community.oracle.com/customerconnect

Si no puede iniciar sesión en ninguna de las comunidades, tiene un firewall u otras políticas de seguridad que le impiden acceder a URL específicas. Agregue las siguientes URL a la lista aprobada en su firewall o trabaje con su equipo de IT, Seguridad o Redes para agregar las URL a la lista aprobada:

  • https://login-ext.identity.oraclecloud.com
  • https://signon.oracle.com

Nota: Ninguna de las dos URL anteriores está disponible para realizar pruebas directas.

Si necesita ayuda o no puede completar las acciones requeridas antes del 1 de marzo de 2024, notifíquenos registrando una Solicitud de Servicio no técnica con el Soporte de Oracle.


miércoles, 14 de febrero de 2024

Oracle Database 19c, llega al fin de su período de Soporte Premier!!!

 Que rápido se nos va el tiempo.!!!


Actualización: Oracle Database 19c, concluye su período de Soporte Premier el 30 de abril de este año 2024.!!!

El soporte extendido, sin costo alguno se prolongará por 2 años y tendrá efecto del 01/05/24 al 30/06/26.

Oracle Database 23c, es la siguiente versión con soporte extendido, hasta el mes de abril del 2032. Por el momento la versión 23c, sigue estando disponible sólo en OCI Database Service, pero en este primer semestre lo estará para otras plataformas.

Mayor información en Release Schedule of Current Database Releases (Doc ID 742060.1) @myoraclesupport



jueves, 11 de enero de 2024

Tom Kyte ASKTOM y su filosofía, cuánto aprendimos de él !!!

Un 10 de setiembre de 2006 escribía Tom Kyte- ASKTOM- en su blog, en referencia a temas de afinamiento y de ubicación en el orden de las tablas en la cláusula FROM:

"Mi humilde sugerencia es ignorar por completo mi humilde sugerencia y adoptar un enfoque de "confiar pero verificar".

Hay tres tipos de consultores de Oracle:
a) los que son mejores que yo
b) los que no son mejores que yo
c) los que son más o menos iguales

Al igual que suceden tres cosas cuando haces un ajuste de rendimiento:
a) se va más rápido
b) va más lento
c) no cambia en absoluto

Foto: OTN TOUR GUATEMALA 2013. De izquierda a derecha, Joel Pérez, Tom Kyte ASKTOM y mi persona.



domingo, 31 de diciembre de 2023

Cuando todo el mundo estuvo en vilo por un cambio de año, Y2K BUG, hace 24 años.

Hace 24 años atrás estabamos como decían nuestros abuelos "como un bistec de 5 pesos", sólo nervios.
El famoso "Y2K BUG", fue el culpable del primer blog que empecé a escribir allá por el año 1998 en el hosting gratuito "geocities.com".

Muchas cosas aprendí en esos 2 años, que la mayoría ignoró.

El 01 de enero del 2000, muchos sistemas fallaron al final por problemas derivados de la falta de actualización del BIOS.

Los costos de reparación o reprogramación de rutinas críticas se duplicaron rápidamente a finales de 1998, debido a la falta de personal técnico calificado. Los presupuestos iniciales no fueron suficientes para hacer frente a lo que se había detectado y en el último trimestre del año 1999, la mayoría de las gerencias tomó la decisión de "esperar" a ver que sucedía.

Las peores pesadillas en muchos años, se vivieron el día 02 de enero del 2000, cuando se regresó a trabajar y los sistemas, estaban con fecha 01/01/1900.

Fui testigo de muchas organizaciones que tardaron un par de semanas en volver a operación y gastaron hasta el triple del presupuesto inicial - que de por si era alto - para poder volver a brindar el servicio. Fue como aquel pasaje del cuento del lobo, "Ahi viene el lobo" y nadie hizo caso.

Al final, los errores se centraron en pocas cosas. Pero en donde se vió afectado, fue realmente una tragedia.

Una gran cantidad de historias que podría contar sobre esa época, pero eso será para otra ocasión.

jueves, 23 de noviembre de 2023

Oracle como crear de patentes, cuántas ha presentado y cuántas están activas y en dónde.?

Oracle ha presentado más de 52000 patentes en todo el mundo, de las cuáles 20.797 han sido concebidas. Del total de patentes, el 76% están activas aprox.

Fueron los años de 2001 y 2002 cuando más patentes presentó: 5401 y 5485 respectivamente. Ese número fue descendiendo anualmente, hasta alcanzar en el 2010 1454 patentes. En el 2011 nuevamente volvió a crecer y desde el 2018 nuevamente ha descendido hasta 209 en el año 2021.
Casi el 72% de estas patentes fueron presentadas en los E.E.U.A., menos del 1% en el continente Europeo y en países como China, Australia, Japón, Reino Unido, India, Canadá y Corea del Sur.

Un dato curioso para quienes no lo sabíamos: la nota curiosa, es que existen países de Latinoamerica en donde Oracle presentó patentes.
Estos son: Brasil con 39, México con 20 y Costa Rica con 1.

La firma de abogados más exitosa que ha colaborado con Oracle en este tema, ha sido la firma Kilpatrick Townsend y Stockton, la cuál ha presentado 2793 aplicaciones y ha obtenido un 92% de efectividad. Esta famosa firma, fue la encargada de llevar el litigio entre Sony y el "Hacker" Gorge Hotz cuando este tenía 21 años, por el jailbreak a la PS3.

La empresa que más patentes utiliza de Oracle es IBM con 4140, seguida de Microsoft con 1862, SAVIA con 935, INTEL 785, Banco de New York 561, AMAZON 524, GOOGLE 513, SANSUNG 472 entre otras.

La patente más popular de Oracle es la US6336137B1, que ha recibido 2148 menciones de empresas como Cisco, IBM y Microsoft, la cuál habla sobre: "Sistema y método cliente-servidor web para lenguajes de presentación y marcado de páginas incompatibles".

En resumen: La invención se refiere a métodos y sistemas cliente-servidor donde varios clientes que usan diferentes lenguajes de marcado pueden usar el mismo servidor, que puede servir páginas en varios idiomas. El cliente puede ser un cliente ligero o un navegador, como se entiende generalmente ese término. El servidor está configurado para analizar la solicitud del cliente para determinar tanto el idioma de la solicitud como la información solicitada.



Performance Tuning: Cómo escribir sentencias SQL como un PRO! - Parte 2 - APEX Office Hours en Español

Diciembre 07, 2023

17:00 - 18:00 UTC Hora de Inicio en Todo el Mundo

Por Mónica Godoy, Senior Principal Product Manager for Oracle APEX
En la primera sesión, Ronald Vargas hablo de los diferentes factores que afectan el rendimiento de una sentencia SQL y finalmente el desempeño general de una aplicación. En esta segunda sesión, Ronald pondrá en práctica todo el conocimiento aprendido en la primera sesión para evaluar varias sentencias SQL y cómo pueden ser optimizadas.

Encuentra la primera parte en: https://youtu.be/1J1GT6cZKWc?feature=shared

Catch up on the recording for our last session!
Don't miss our next live session!
This session: https://asktom.oracle.com/pls/apex/asktom.search?oh=22686

Mientras tanto, disfruta de la primera parte.





domingo, 29 de octubre de 2023

Noviembre 04, ULATINA #PWNEDCR 0X6 Oracle Database Ethical Hacking "Sus datos podrían estar en el lugar equivocado".

El próximo sábado 04 de noviembre, estaré presente en el #PWNEDCR 0X6

Todos somos concientes que cuando aplicamos una funcionalidad con el fin de mejorar la calidad y la eficiencia de la seguridad de una base de datos, la misma no deje rastro alguno, de lo que queremos proteger.

Por esto es así o debemos tomar algunas medidas adicionales.?

Es cierta la oferta que nos hacen con respecto a que: encriptar los repositorios de nuestros datos, trae consigo la solución a nuestros problemas de privacidad de información.?

Son tan sólo 40 minutos, pero les aseguro que les tomará mucho más tiempo validar y tomar las medidas necesarias, para resguardarse de no estar expuestos.



viernes, 27 de octubre de 2023

Utilizando Select AI para generar sentencias SQL a través de indicaciones de Lenguaje Natural - con código del laboratorio.

La combinación de modelos de lenguaje grande (LLM) de IA generativa con Oracle SQL le permite describir lo que desea ( intención declarativa ) y dejar que la base de datos genere la consulta SQL relevante para su esquema. Algunos LLM pueden ser buenos para generar SQL, pero poder ejecutar ese SQL en su base de datos es otra cuestión. Select AI permite generar SQL que es específico para la base de datos.


Código del laboratorio.

select credential_name,
       username,
       enabled
from   user_credentials
order by credential_name;

select dbms_cloud.get_metadata(
         credential_name => 'OPENAI_CRED',
         object_uri      => 'api.openai.com') as metadata
from dual;

select table_name from dba_tables where owner='SH'

select * from sh.sales;

select sum(amount_sold) from sh.sales
where time_id < '01/01/00'

BEGIN  
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'api.openai.com',
         ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => 'ADMIN',
                             principal_type => xs_acl.ptype_db)
   );
END;
/

BEGIN  
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'api.openai.com',
         ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => 'SH',
                             principal_type => xs_acl.ptype_db)
   );
END;
/

BEGIN

 DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name  => 'OPENAI_CRED');
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OPENAI_CRED',
    username => 'ronald.vargas.quesada@gmail.com',
    password => 'sk-Vvtj**************bkFJKOxqW*******DXYHD1bG' );
END;
/


BEGIN
DBMS_CLOUD_AI.drop_profile(profile_name => 'OPENAI');
  DBMS_CLOUD_AI.create_profile(
      profile_name => 'OPENAI',
      attributes => '{"provider": "openai",
                      "credential_name": "OPENAI_CRED",
                      "object_list": [{"owner": "SH", "name": "customers"},  
                                      {"owner": "SH", "name": "sales"},
                                      {"owner": "SH", "name": "products"},
                                      {"owner": "SH", "name": "countries"}]
       }');
END;
/

BEGIN
  DBMS_CLOUD_AI.SET_PROFILE(
     profile_name => 'OPENAI'
  );
END;
/


SELECT AI how many customers in San Francisco are married


SELECT AI runsql cuantos clientes en San Francisco están casados

SELECT AI showsql cuantos clientes en San Francisco están casados

SELECT COUNT(*) AS total_clients_married
FROM SH.CUSTOMERS c
WHERE c.CUST_CITY = 'San Francisco'
AND c.CUST_MARITAL_STATUS = 'Married'


select * from sh.products

SELECT AI Cual es el nombre del producto para el id 19

select * from sh.sales

SELECT AI Cual es el monto de ventas del producto id 14 agrupado por el nombre del producto

SELECT AI cual es el cliente que más compras ha realizado

SELECT AI cual es la suma total de compras que ha hecho el cliente Heather Tucker

select sum(amount_sold) from sh.sales
where time_id < '01/01/00'

SELECT AI Cual es el monto en ventas previo al cambio de milenio.

select * from sh.customers

select count(*) from sh.customers

SELECT AI Cuantos clientes nacieron en los 2 años posteriores al fin de la segunda guerra mundial


SELECT AI Cuantos clientes nacieron en los 2 años posteriores al fin de 
la segunda guerra mundial agrupados por año

"Sorry, unfortunately a valid SELECT statement could not be generated for your natural language prompt. Here is some more information to help you further: 

Para responder a esta pregunta, necesitaríamos tener acceso a una tabla que contenga la información de los clientes, incluyendo su fecha de nacimiento. Supongamos que tenemos una tabla llamada "clientes" con las siguientes columnas:

- id_cliente (identificador único del cliente)
- nombre (nombre del cliente)
- fecha_nacimiento (fecha de nacimiento del cliente)

Podemos utilizar la función EXTRACT para extraer el año de la fecha de nacimiento y luego agrupar los resultados por año. La consulta sería la siguiente:

```sql
SELECT EXTRACT(YEAR FROM fecha_nacimiento) AS año, COUNT(*) AS cantidad_clientes
FROM clientes
WHERE EXTRACT(YEAR FROM fecha_nacimiento) BETWEEN 1946 AND 1947
GROUP BY EXTRACT(YEAR FROM fecha_nacimiento)
ORDER BY EXTRACT(YEAR FROM fecha_nacimiento);
```

Esta consulta contará la cantidad de clientes que nacieron entre los años 1946 y 1947, agrupados por año de nacimiento. Los resultados se mostrarán en orden ascendente por año."
Para responder a esta pregunta, necesitaríamos tener acceso a una tabla que 
contenga información sobre los clientes, incluyendo su fecha de nacimiento. 
Supongamos que tenemos una tabla llamada "clientes" con las siguientes columnas:

- id_cliente (identificador único del cliente)
- nombre (nombre del cliente)
- fecha_nacimiento (fecha de nacimiento del cliente)

Podemos utilizar la función EXTRACT para extraer el año de la fecha de nacimiento y 
luego agrupar los resultados por año. La consulta sería la siguiente:

```sql
SELECT EXTRACT(YEAR FROM fecha_nacimiento) AS año, COUNT(*) AS cantidad_clientes
FROM clientes
WHERE EXTRACT(YEAR FROM fecha_nacimiento) BETWEEN 1946 AND 1947
GROUP BY EXTRACT(YEAR FROM fecha_nacimiento)
ORDER BY EXTRACT(YEAR FROM fecha_nacimiento);
```

Esta consulta contará la cantidad de clientes que nacieron entre los años 1946 y 1947, 
agrupados por año de nacimiento. 
Los resultados se mostrarán en orden ascendente por año."

SELECT AI Cuanto fue la suma de ventas realizadas por clientes que nacieron en los 
2 años posteriores al fin de la segunda guerra mundial.

select * from sh.sales
select * from sh.customers


select sum(amount_sold) from sh.sales
where cust_id in (
select cust_id from sh.customers where 
cust_year_of_birth between 1946 and 1947)

select max(cust_year_of_birth) from sh.customers

SELECT AI showsql Cuantos clientes nacieron posterior a la caida del muro de Berlin

select count(cust_year_of_birth) from sh.customers
where cust_year_of_birth > 1989

SELECT AI narrate Cuál es el producto más vendido por los clientes que nacieron 
posterior a la caida del muro de Berlin

SELECT AI showsql
Cuántos clientes nacieron en el año de estreno de la película Volver al futuro I

select count(*) from sh.customers
where cust_year_of_birth = 1985

SELECT AI Cual es el monto de los productos vendidos por aquellos clientes que nacieron
en el mismo año de la publicación del primer video en youtube.

SELECT AI narrate Cual es el monto de los productos vendidos por aquellos clientes que nacieron
en el mismo año de la publicación del primer video en youtube.

select count(*) from sh.customers
where cust_year_of_birth = 2005

SELECT AI Cuantos clientes nacieron en el mismo cuando en que se creó el teléfono celular.


select count(*) from sh.customers
where cust_year_of_birth = 1973

SELECT AI chat
Quien es Larry Ellison el CEO de Oracle

"Sorry, unfortunately a valid SELECT statement could not be generated for your natural language prompt. Here is some more information to help you further: 

Larry Ellison es el cofundador y presidente ejecutivo de Oracle Corporation. Es conocido por ser uno de los empresarios más exitosos en la industria de la tecnología. 
Ellison ha estado al frente de Oracle desde su fundación en 1977 y ha desempeñado un papel fundamental en el crecimiento y éxito de la empresa. Bajo su liderazgo, Oracle se ha convertido en una de las compañías de software más grandes y reconocidas a nivel mundial."



set serveroutput on;
declare
    l_prompt varchar2(4000) := 'Cual es el monto de los productos vendidos por aquellos clientes que nacieron
en el mismo año de la publicación del primer video en youtube.?';
    l_response clob;
    l_profile_name varchar2(100) := 'openai_gpt35';
begin
    l_response := dbms_cloud_ai.generate(
                    prompt          => l_prompt,
                    profile_name    => l_profile_name,
                    action          => 'showsql'                    
                );
    dbms_output.put_line(l_response);
end; 

set serveroutput on;
declare
    l_prompt varchar2(4000) := 'Cual es el monto de los productos vendidos por aquellos clientes que nacieron
en el mismo año de la publicación del primer video en youtube.?';
    l_response clob;
    l_profile_name varchar2(100) := 'OPENAI';
begin
    l_response := dbms_cloud_ai.generate(
                    prompt          => l_prompt,
                    profile_name    => l_profile_name,
                    action          => 'showsql'                    
                );
    dbms_output.put_line(l_response);
end; 

SELECT SUM(s.AMOUNT_SOLD) AS MONTO_VENDIDO
FROM SH.SALES s
JOIN SH.CUSTOMERS c ON s.CUST_ID = c.CUST_ID
WHERE c.CUST_YEAR_OF_BIRTH = EXTRACT(YEAR FROM TO_DATE('23-04-2005', 'DD-MM-YYYY'))


El producto más vendido por los clientes que nacieron posterior a la caída del muro de Berlín es el "Model A3827H Black Image Cartridge", 
con un total de 20 ventas.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar