Nouvelle publication

Rechercher

Question
· Juin 17

Comfort Zone Movers

We specialize in in-state moving, expert packing, and hassle-free unpacking services that make your move smooth and stress-free. From careful boxing to organized setup in your new space, our team ensures every detail is handled with care. Whether it's a home or office move, we deliver efficient, reliable support from start to finish.

https://g.co/kgs/9Ds77M9

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Juin 17 3m de lecture

Convertendo Consultas Hierárquicas do Oracle para o InterSystems IRIS: Gerando Intervalos de Datas

Se você está migrando do Oracle para o InterSystems IRIS — como muitos dos meus clientes — pode se deparar com padrões específicos de SQL do Oracle que precisam ser adaptados.

Veja esse examplo:

SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);

No Oracle:

  • LEVEL é uma pseudo-coluna usada em consultas hierárquicas (com CONNECT BY). Ela começa em 1 e incrementa de 1 em 1.
  • CONNECT BY LEVEL <= (...) define quantas linhas a consulta deve gerar.
  • A diferença entre as duas datas, somada a 1, resulta em 11 — então a consulta gera 11 linhas, contando de 12 de maio de 2023 para 2 de maio de 2023.

Detalhamento do resultado:

LEVEL = 1  → 2023-05-12
LEVEL = 2  → 2023-05-11
...
LEVEL = 11 → 2023-05-02

Agora a questão é: Como fazer isso no InterSystems IRIS, que não possui CONNECT BY?

Uma solução é implementar uma consulta no estilo SQL usando ObjectScript, simulando esse comportamento. Abaixo está um exemplo de definição CREATE QUERY que aceita uma data inicial (STARTDATE) e um número de dias (DAYS), e retorna a lista decrescente de datas.


✅ InterSystems IRIS: Implementando uma consulta de intervalo de datas

CREATE QUERY GET_GAP_DATE(IN STARTDATE DATE, IN DAYS INT)
  RESULTS (GAP_DATE DATE)
  PROCEDURE
  LANGUAGE OBJECTSCRIPT

  Execute(INOUT QHandle BINARY(255), IN STARTDATE DATE, IN DAYS INT)
  {
    SET QHandle("start") = STARTDATE
    SET QHandle("days")  = DAYS
    SET QHandle("level") = 1
    RETURN $$$OK
  }

  Fetch(INOUT QHandle BINARY(255), INOUT Row %List, INOUT AtEnd INT)
  {
    IF (QHandle("level") > QHandle("days")) {
      SET Row = ""
      SET AtEnd = 1
    } ELSE {
      SET Row = $ListBuild(QHandle("start") - QHandle("level") + 1)
      SET QHandle("level") = QHandle("level") + 1
    }
    RETURN $$$OK
  }

  Close(INOUT QHandle BINARY(255))
  {
    KILL QHandle
    QUIT $$$OK
  }

Você pode executar esse CREATE QUERY no IRIS System Management Portal, ou por ferramentas como DBeaver ou um notebook Python/Jupyter via JDBC/ODBC.


🧪 Examplo de uso:

Para gerar o mesmo resultado da consulta Oracle acima, use:

SELECT * FROM GET_GAP_DATE(
  TO_DATE('2023-05-12', 'YYYY-MM-DD'),
  TO_DATE('2023-05-12', 'YYYY-MM-DD') - TO_DATE('2023-05-02', 'YYYY-MM-DD') + 1
);

Isso vai gerar:

GAP_DATE
----------
2023-05-12
2023-05-11
...
2023-05-02
(11 rows)

🔁 Uso avançado: junção com outras tabelas

Você também pode utilizar essa consulta como subconsulta ou em JOINs:

SELECT * 
FROM GET_GAP_DATE(TO_DATE('2023-05-12', 'YYYY-MM-DD'), 11) 
CROSS JOIN dual;

Isso permite integrar intervalos de datas em workflows SQL mais complexos.


Espero que isso ajude quem estiver lidando com cenários de migração de Oracle para IRIS! Se você já criou soluções alternativas ou tiver sugestões de melhorias, adoraria ouvir suas ideias.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Juin 17

4.ª Edición del Concurso de Ideas de InterSystems

Hola Comunidad,

¡Estamos encantados de invitar a todos los miembros de nuestra Comunidad de Desarrolladores (tanto empleados de InterSystems como externos) a participar en nuestro próximo concurso!

💡 4.ª Edición del Concurso de Ideas de InterSystems 💡

Estamos en busca de tus ideas innovadoras para mejorar InterSystems IRIS y los productos y servicios relacionados. Te animamos a proponer sugerencias basadas en casos de uso reales, destacando los beneficios tangibles que tu idea aportará a otros usuarios y cómo mejorará la experiencia de los desarrolladores con la tecnología de InterSystems.

📅 Duración: del 9 de junio al 6 de julio de 2025

🏆 ¡Premios para las mejores ideas y un sorteo aleatorio!

🎁 Regalos para todos: Se entregará un regalo especial a cada autor cuya idea sea aceptada en el concurso.

>> ENVIAD UNA IDEA <<

Una idea deberá contar con lo siguiente para ser aceptada:

  • Debe ser creada durante el período del Concurso de Ideas por un usuario registrado en el portal de InterSystems Ideas (podéis iniciar sesión mediante InterSystems SSO);
  • no debe formar parte de ideas ya existentes – solo se permiten ideas nuevas;
  • no debe describir funcionalidades ya existentes de InterSystems IRIS ni de productos o servicios relacionados;
  • debe publicarse en inglés;
  • debe estar escrita por una persona, no generada por inteligencia artificial;
  • debe ser aceptada como significativa por los expertos de InterSystems;
  • ❗debe seguir la siguiente estructura:
    • 1️⃣ Descripción de la idea
    • 2️⃣ ¿Quién es el público objetivo?
    • 3️⃣ ¿Qué problema resuelve?
    • 4️⃣ ¿Cómo impacta en la eficiencia, estabilidad, confiabilidad, etc., del producto?
    • 5️⃣ Proporciona un caso de uso o escenario específico que ilustre cómo se podría utilizar esta idea en la práctica.

Todas las ideas están sujetas a moderación. Es posible que se solicite una aclaración sobre la idea enviada. Las ideas que cumplan con los requisitos recibirán un estado especial de "Concurso de Ideas".

¿Quién puede participar?

Invitamos a TODOS a unirse a nuestro nuevo Concurso de Ideas.
Tanto empleados de InterSystems como personas externas pueden participar y enviar sus ideas.


Premios

1. Regalo por participación – los autores de todas las ideas aceptadas recibirán:

🎁 Soporte de aluminio para dispositivos multimedia

2. Premio del jurado – los expertos de InterSystems seleccionarán las mejores ideas. Los ganadores recibirán:

🥇 1.º lugar – Máquina de espresso y cappuccino Stilosa Barista
🥈 2.º lugarOsmo Mobile 7
🥉 3.º lugar – Mini proyector inteligente XGODY Gimbal 3

3. Premio al azar – una idea seleccionada aleatoriamente recibirá:

🏅 Mini proyector inteligente XGODY Gimbal 3

Nota: Los empleados de InterSystems solo pueden recibir el regalo por participación. Los premios del jurado y el premio aleatorio están reservados exclusivamente para miembros de la Comunidad de Desarrolladores que no trabajen en InterSystems.


Fechas importantes:

⚠️ Envío de ideas: del 9 al 29 de junio
✅ Votación de ideas: del 30 de junio al 6 de julio
🎉 Anuncio de ganadores: 7 de julio

¡Buena suerte! 🍀


Nota: Todos los premios están sujetos a disponibilidad y opciones de envío. Algunos artículos pueden no estar disponibles para envíos internacionales a determinados países; en ese caso, se ofrecerá una alternativa equivalente. Te informaremos si un premio no está disponible y te propondremos un reemplazo posible. Los premios no pueden enviarse a residentes de Crimea, Rusia, Bielorrusia, Irán, Corea del Norte, Siria u otros países embargados por EE. UU.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Juin 17

Ganadores cuarto concurso de artículos técnicos en español

¡Hola desarrolladores!

El Cuarto Concurso de Artículos Técnicos ha terminado. ¡Gracias a todos los participantes!

🤩 Habéis aportado 10 ARTÍCULOS INCREÍBLES, y ya podemos anunciar los ganadores.

   

Un fuerte aplauso para estos desarrolladores y sus artículos:

🏆 Nominación de los expertos - los ganadores han sido elegidos por un jurado especialmente formado para el concurso:

🥇 1er puesto: Carlos Castro con ¡POLICIA POLICIA! ¡¡Hay un intruso!! (Notificaciones Telegram y manejo URLs OAUTH2)

🥈 2º puesto: Miguelio con Persistencia de sesión Oauth con token OpenID en cookie

🥉 3er puesto:  Alessandra Carena con Diseñar e implementar APIs REST en InterSystems IRIS a partir de especificaciones OpenAPI

🏆 Nominación de la Comunidad - artículo que recibió el mayor número de likes:

🥇 1er puesto: Katherine Durán con Uso de SQL Dinámico vs SQL Embebido en InterSystems IRIS y Plan de ejecución

Nos pondremos en contacto con vosotros para gestionar los premios. 

¡Enhorabuena a todos!  Ganadores o no, la contribución de todos es imprescindible para seguir creciendo. 

Nos vemos pronto, con más concursos, más novedades y más diversión. 💪

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer