0 Followers · 1.1K Posts

SQL is a standard language for storing, manipulating and retrieving data in relational databases.

Article Alberto Fuentes · Sep 1 7m read

Customer support questions span structured data (orders, products 🗃️), unstructured knowledge (docs/FAQs 📚), and live systems (shipping updates 🚚). In this post we’ll ship a compact AI agent that handles all three—using:

  • 🧠 Python + smolagents to orchestrate the agent’s “brain”
  • 🧰 InterSystems IRIS for SQL, Vector Search (RAG), and Interoperability (a mock shipping status API)
0
1 100
Question Scott Roth · Aug 28

I had a need for a Filter, but did not want to recreate the wheel by creating another Data Lookup Table, so instead I created a Linked Table that points to a MS SQL Table outside of IRIS.

Once I had the Linked Table, I created a Class Method Function that would query the Linked Table and return a 1 if a result came back.

1
0 59
Article Evgeny Shvarov · Aug 27 3m read

Hi folks!

It is very easy to import CSV data into IRIS. But what if we want to preserve the original IDs in CSV?

Recently I came across with the situation when I needed to import two csv's into IRIS which were linked by one column referencing  to another csv's col: a typical Foreign Key and Primary Key situation, where csv1 contains this column as Primary Key, and csv2 as Foreign key with id's related to csv1.

The image is generated by ChatGPT so don't blame it - it tried its best to generate countries as primary keys with countries.csv-cities.csv relationship :)

0
1 77
Article Vachan C Rannore · Aug 18 3m read

While starting with Intersystems IRIS or Cache, developers often encounter three core concepts: Dynamic Objects, Globals & Relational Table. Each has its role in building scalable and maintainable solutions. In this article, we'll walk through practical code examples, highlight best practices, and show how these concepts tie together. 

1. Working with Dynamic Objects:

Dynamic objects (%DynamicObject and %DynamicArray) allow developers to manipulate JSON-like structures directly in Objectscript. They are especially useful for modern applications that need to parse, transform or generate JSON.

2
4 134
Question MARK PONGONIS · Aug 18

Trying to create a new SQL Storage map on existing cache Global in the following format - ^MYGLO("R",rec)=data where the 'data' is built using $zel. e.g. $zel(data,1)="p1", $zel(data,2)="p2" etc... and the ^MYGLO("R",123)=data.

I'm having 2 issues. First, using the SQL Storage map wizard, I cannot figure out how to convey data in $zel format in the "Delimiter" field. 

Second, since I couldn't figure that out,  I tried to use the "Use Retrieval Code" option and entered the following line for the P1 property:

but get an error when compiling saying I cannot reference another field:

9
0 114
Article Laurel James (GJS) · Mar 12, 2024 2m read

SQLTools is a Visual Studio Code (VS Code) Extension with over 3.5 million downloads that provides connections to many of the most used databases, including InterSystems IRIS, using drivers. For developers new to VS Code, or those already familiar with it but are looking to streamline their connections to InterSystems IRIS, this tutorial will take you through installing the SQLTools extensions and the InterSystems IRIS drive. It then guides you on how to establish a connection to your instance of InterSystems IRIS and run a query. You will need: VS Code installed on your system and access to

2
4 818
Article Benjamin De Boe · Jun 19 10m read

This article describes a significant enhancement of how InterSystems IRIS deals with table statistics, a crucial element for IRIS SQL processing, in the 2025.2 release. We'll start with a brief refresher on what table statistics are, how they are used, and why we needed this enhancement. Then, we'll dive into the details of the new infrastructure for collecting and saving table statistics, after which we'll zoom in onto what the change means in practice for your applications. We'll end with a few additional notes on patterns enabled by the new model, and look forward to the follow-on phases of

6
4 225
Article Iryna Mykhailova · Aug 12 7m read

Over the years, I’ve noticed that certain SQL questions come up repeatedly on the InterSystems Developer Community, especially about using the LIKE predicate in different contexts. Common variations include:

and many more derivatives. So, I decided to write an article that focuses on how LIKE works in InterSystems IRIS SQL, especially when used with variables in Embedded SQL, Dynamic SQL, and Class Queries, while touching on pattern escaping and special character searches.

2
4 276
Article Ashok Kumar T · Jul 21 13m read

This article is a continuation of the IRIS JSON project and features additional methods and insights.

Let's continue with the instance methods

%GetTypeOf(Key)

This instance method is used to determine the JSON data type of the %DynamicObject or %DynamicArray.

It returns one of the following strings:

1
3 238
Question Dmitrii Baranov · Aug 8

I have a table with 5M rows, the table contains lab observation codes and display names, both columns have type varchar(2000) and both are indexed.

The query looks like:

select code_1_text, count(code_1_text)
  from demo.observation_lab
  group by code_1_text
  order by 2 desc

The table contains ~1000 distinct display names.

It takes 4 minutes for the query to complete on a VM with some pretty old Xeon, 4 cores, 32G RAM, NVME SSD and Linux on board.

Isn't it too slow? During the execution I see no active hardware resources consumption - CPU load is 12-25%, RAM is almost free, swap file is not used.

4
0 92
Article Ash Sherzhanov · Jul 31 3m read

SQL injection remains one of the most critical vulnerabilities in database-driven applications, allowing attackers to manipulate queries and potentially access or compromise sensitive data. In InterSystems IRIS, developers have access to both Dynamic SQL and Embedded SQL, each with distinct characteristics. Understanding how to use them securely is essential for preventing SQL injection.

The Problem: Dynamic SQL and SQL Injection

0
2 146
Article Timothy Leavitt · Jul 24 4m read

Let's start with a simple motivating question: over the past 14 days, what are my most common errors in the Application Error Log?

Answering this through the management portal or terminal is an annoying manual process - we should just be able to use SQL. Fortunately, there are a few class queries to help with this in the SYS.ApplicationError class in the %SYS namespace. You can answer the question for a single date with something like:

select"Error message",count(*)
from SYS.ApplicationError_ErrorList('CCR','12/16/2024')
groupby"Error message"orderby2desc
2
3 185
Question John Hotalen · Jul 25

Hello to all the Cache Experts out there and Happy Friday!

The company I work for uses Cache 2017.1.3 and we have been seeing intermittent errors in the Cache Error Trap when an SQL query runs.   The error message looks like the error is occurring within the cached query routine that Cache auto-generates.  Unfortunately, when I pulled up the routine in the SMP System Explorer, I only found an obj version, so was unable to look at any code.

3
0 61
Announcement Celeste Canzano · Jul 16

Hello Again,

InterSystems Certification is still looking for people to beta test the InterSystems IRIS SQL Professional Certification exam. This is a great way to earn the certification for free! We have extended the deadline of the beta test to October 30, 2025.

Please note, only candidates with the pre-existing InterSystems IRIS SQL Specialist certification are eligible to take the beta.  For details, see the original announcement.

Thank you!

0
0 74
Question Mark OReilly · Jul 15

As foreign tables are behind a paywall (booo); we have a external cache system using the intersystems ODBC driver or usually a .jar CacheDB.jar. 

The requirement is :

"Create a copy of the external table once a day to perform comparisons to detect changes"

We could go full code and this is what we will do but trying the following should ideally work 

CREATETABLE Sample.YoungPeopletwo ASSELECT *
FROM Pennine_TIE_Clinicom_Link.PMISPECIALREGNCA
WITH STORAGETYPE = COLUMNAR

This resulted in 

4
0 80
Article Henry Pereira · Sep 29, 2024 3m read

InterSystems IRIS 2024 recently introduced the vector types. This addition empowers developers to work with vector search, enabling efficient similarity searches, clustering, and a range of other applications. In this article, we will delve into the intricacies of vector types, explore their applications, and provide practical examples to guide your implementation.

At its essence, a vector type is a structured collection of numerical values arranged in a predefined order. These values serve to represent different attributes, features, or characteristics of an object.

2
2 278
Question steven Henry · Jul 10

Hello my friends,

I have a problem with logi report, 

in my store procedure,  I create code like this?

$ListToString(%DLIST(DISTINCT (ARCIM_Desc)),'<br/>') as "ARCIM_Desc", -> this is the problem

$ListToString(%DLIST(DISTINCT (MRDIA_ICDCode_DR)),'<br/>') as "MRDIA_ICDCode_DR", -> it's works fine

as you see there's a <br/> in the display of the report

I have no idea about this, maybe someone can help me fix this problem ?

Thank You

Best Regards,

Steven Henry

4
0 94
Question steven Henry · Jul 10

Hello my friends,

I have a problem with Objectscript, why the value of address become like this ?

everything works fine except the Address,

this is my code, do I need something to make this into real address ? should I put something in my code ? 

 set paper=obj.PAADMPAPMIDR.PAPMIPAPERDR

            if '$isobject(paper) continue

            set Address=paper.PAPERStName

thank you for your help

Best Regards,

Steven Henry

3
0 69
Article David Hockenbroch · Sep 11, 2024 9m read

Do not let the title of this article confuse you; we are not planning to take the InterSystems staff out to a fine Italian restaurant. Instead, this article will cover the principles of working with date and time data types in IRIS. When we use these data types, we should be aware of three different conversion issues:

  1. Converting between internal and ODBC formats.
  2. Converting between local time, UTC, and Posix time.
  3. Converting to and from various date display formats.
4
5 664
Article Marco Bahamondes · Jun 24 3m read

Introduction

InterSystems IRIS allows you to build REST APIs using ObjectScript classes and the %CSP.REST framework. This enables the development of modern services to expose data for web apps, mobile apps, or system integrations.

In this article, you'll learn how to create a basic REST API in InterSystems IRIS, including:

  • A persistent data class
  • A REST class with GET and POST methods
  • A web application to expose the API
  • A full demonstration using Docker

Step 1: Create the data class Demo.Producto

3
3 144
Announcement Celeste Canzano · May 12

Hello IRIS community,

InterSystems Certification is currently developing a certification exam for InterSystems IRIS SQL professionals, and if you match the exam candidate description given below, we would like you to beta test the exam! The exam will be available for beta testing starting May 19, 2025.

5
1 249