> ## Content Index
> Fetch the complete content index at: https://www.mangocode.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# I typed Dutch into the APEX 26.2 search bar
- URL: https://www.mangocode.dev/i-typed-dutch-into-the-apex-26-2-search-bar/
- Published: 2026-10-13T06:01:45.000Z
- Updated: 2026-10-13T06:19:07.000Z
- Author: Raoul Mangoensentono

*A hands-on test of Interactive Report key phrases and AI search in Oracle APEX 26.2.*

---

**TL;DR:** APEX 26.2 adds key phrases to the Interactive Report search bar. Type "filter status by Completed" and APEX applies the filter itself with no AI model involved. Every example in the docs is in English. So I built the same report twice, once in English and once in Dutch, and typed both languages into both. With the default English application language, English key phrases work fine on Dutch data and Dutch commands fall through to an empty text search. Switch the application language to Dutch and it flips: `filter status op Afgerond` runs locally and the English phrase stops working. With AI search on, the model understood almost every Dutch request. But it wrote the status value in lowercase, so the report showed "No data found" while the assistant replied that it had filtered. One sentence in the report's Report Context setting fixed that in 5 out of 5 runs. Grouping is what I could not make work at all, in either language.

---

APEX 26.2 went generally available on 6 October 2026\. One of the smaller features caught my eye. The Interactive Report search bar now understands **key phrases**. If you have not used Oracle APEX: an Interactive Report is the standard data grid that end users filter, sort and group themselves. The search bar sits on top of it. In 26.2 you can type a command into that bar instead of clicking through menus. The release notes give examples like "filter status by Completed", "sort by sale date descending" and "break on category name". They say these run without an AI model.

Every one of those examples is in English. At Qualogy I build APEX apps also for Dutch companies and I expect their users to type Dutch into this search bar. I have seen them do exactly that with AI chat tools like ChatGPT or CoPilot. Before telling a team to rely on this feature, I needed to know what happens when they do.

Everything below is my own test on a free oracleapex.com workspace running APEX 26.2.0, with Cohere's `command-a-plus-05-2026` model as the AI service. It is a small test, so read the numbers as what I saw and not as a benchmark.

## The setup

One table with 24 sales rows and two views on top of it with identical data. The English view has headings like Customer, Status and Category, with status values Completed, In progress, Cancelled and Open. The Dutch view has Klant, Status and Categorie, with Afgerond, In behandeling, Geannuleerd and Open.

The data is built so a correct filter is easy to recognise: 6 rows per status, 8 per category, 4 per customer. If a status filter does not show 6 rows, something went wrong.

Page 31 shows the English report and page 32 the Dutch one. Both are plain Interactive Reports with the search bar on. Most of the tests ran with the application language on English, the default. Near the end I switched it to Dutch and that changed more than I expected.

## Key phrases really run locally

First I wanted to be sure the key phrases do not call the model behind the scenes. I typed "filter status by Completed" on the English page with debug on. The debug log shows APEX handling it inside the report itself:

```
widget name=>worksheet, mod=>KEY_PHRASE, single_id=>filter status by Completed
process ... p_prompt=>filter status by Completed
add_or_update_filter ... p_filter_column=>Status, p_filter_operator=>=, p_filter_expr=>Completed
```

No call to the AI service and no token usage. For comparison, the free sentence "show me only completed sales" went to Cohere twice and each call used around 17,000 tokens. The debug log shows the tool definitions in the request. The model's own reasoning refers to the report's columns, so the report definition travels along as well. I think that is where most of those tokens go.

## English key phrases work on Dutch data

This was the pleasant surprise. On the Dutch page, English phrases with Dutch names worked:

- `filter status by Afgerond` filtered to 6 rows
- `sort by verkoopdatum descending` sorted newest first
- `break on categorie` grouped the rows by category
- `pivot categorie by status` built the pivot
- `search klant for Garage` returned the 4 Garage rows
- `reset` reset the report

Matching ignores case. I typed `filter status by open` and APEX stored the filter as `'Open'`, the value as it is in the data.

Two traps cost me some time. Values with a space need quotes: `filter status by In behandeling` falls through and `filter status by "In behandeling"` works. That is the same in English with "In progress", so it is a grammar rule and not a Dutch problem. A leading tab also breaks the match completely, while a leading space does not. I found that one because I had pasted test phrases from a table and half my first round failed for no visible reason.

## In an English application, Dutch commands fall through

Then the Dutch versions: `filter status op Afgerond`, `zoek klant op Garage`, `sorteer op verkoopdatum aflopend`, `verberg categorie`, `herstel` and a few more. With the application language on English, none of them matched.

With AI search switched off, every Dutch command became a plain text search for the whole sentence. The filter chip reads `Row text contains 'filter status op Afgerond'` and the report says "No data found." There is no hint that the user typed a command APEX did not understand. A Dutch user will not think their command was wrong. They will say the search is broken.

## Key phrases follow the application language

I had written the first draft of this article on that conclusion. Then I wondered whether the language of the application itself makes a difference, so I set the Application Primary Language to Dutch (Shared Components, Globalization Attributes) and ran the Dutch page again with Natural Language Support off.

APEX's own texts turned Dutch straight away: the search bar said "Zoeken", the reset button "Opnieuw instellen". And `filter status op Afgerond` matched. The debug log shows the same local path as before, now with a Dutch session:

```
Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: nl
alter session set nls_language='DUTCH' nls_territory='THE NETHERLANDS'
widget ... action=>KEY_PHRASE_OR_QUICK_FILTER, single_id=>filter status op Afgerond
add_or_update_filter ... p_filter_column=>Status, p_filter_operator=>=, p_filter_expr=>Afgerond
```

Six rows, the confirmation message "Filter toegepast" and no call to the model. In the same Dutch session:

| Typed                            | Result                                    |
| -------------------------------- | ----------------------------------------- |
| filter status op Afgerond        | filter, 6 rows                            |
| sorteer op verkoopdatum aflopend | sorted newest first                       |
| verberg categorie                | column hidden ("Kolom verborgen.")        |
| toon categorie                   | column shown again ("Kolom weergegeven.") |
| opnieuw instellen                | report reset                              |
| filter status is Afgerond        | text search, no data                      |
| herstel                          | text search, no data                      |
| zoek klant op Garage             | text search, no data                      |
| groepeer op categorie            | text search, no data                      |
| filter status by Afgerond        | text search, no data                      |

So the key phrases are not English only. They follow the language the session runs in. The English phrases stop working once that language is Dutch. My own Dutch guesses only matched where they happened to line up with what APEX expects: "op" works where "is" does not. The reset phrase is not "herstel" but "opnieuw instellen", the same words as the reset button. That gave me a hint, based on this one match only: the Dutch phrases might follow APEX's own Dutch labels. The searching and grouping phrases I could not find at all. I also tried the Dutch wording Excel uses, such as "groeperen op" for "group by". That did not match either. I did not find a list of the Dutch phrases in the documentation, so for now finding them is trial and error.

This matters for any application with users in more than one language. Each session gets one set of phrases, so a Dutch session does not understand the English ones.

## With AI search on, short and long input go different ways

Back in the English application, I switched AI search on. In Page Designer, the Interactive Report region has a Generative AI section with three settings: Natural Language Support, a Default Search Mode (Search with AI or Row Search) and a Report Context field. With Natural Language Support on and Search with AI as the default, the same search bar splits your input in two. Short input of one or two words, such as `verberg categorie` or `herstel`, still became a row search. Input of three words or more went to the model.

I had run into this rule before in an earlier test for a presentation, where I traced it to APEX's own JavaScript in 26.1.5\. My 26.2 runs behave the same way. The [26.1 documentation](https://docs.oracle.com/en/database/oracle/apex/26.1/htmdb/adding-natural-language-support-to-interactive-reports.html?ref=mangocode.dev) says something else: "if the user enters two or more words, it automatically triggers a row search." That did not match what I saw on 26.2, so I would trust the behaviour over that sentence.

For a Dutch user, it means "toon categorie" gives an empty report and "kun je categorie tonen" works.

## The model understood Dutch and then wrote the wrong value

The longer Dutch requests mostly worked. Filter, search, sort, hide a column, show it again and reset all came back right. `groepeer op categorie` came back as a question, asking whether to count the rows or sum the amount.

Then I asked for completed sales in plain Dutch: `laat alleen afgeronde verkopen zien`. The first run replied:

> I filtered the report to show only records where Status contains "afgerond" (completed sales).

The chip said `Status like 'afgerond'` and the report said "No data found."

The second run, with a capital A in the sentence:

> I updated the filter to show only records where Status equals "afgerond" (Afgeronde verkopen).

The chip said `Status = 'afgerond'`. No data found again.

The third run, same sentence as the first, used `contains` and showed the 6 rows.

What went wrong is visible in the chips. The data says `Afgerond` with a capital A. The model turned the Dutch word "afgeronde" into the right stem but wrote it in lowercase, then picked `=` or `like`, which care about case. The key phrase engine corrected `open` to `Open` for me. The model path did not. In two of the three runs the assistant said it had filtered while the user saw an empty report.

## One sentence in Report Context fixed it

The Report Context field is meant for a short description of what the report contains. I used it to tell the model the exact values:

```
Status values are case sensitive and must be used exactly as written:
Afgerond, In behandeling, Geannuleerd, Open. Categorie values: Hardware,
Diensten, Training. Use the equals operator with the exact value.
```

The debug log shows the model reading it. Its own reasoning quotes the text and calls it "the report description." Then I ran five different Dutch requests:

| Request                                           | Filter                           | Rows |
| ------------------------------------------------- | -------------------------------- | ---- |
| laat alleen afgeronde verkopen zien               | Status = 'Afgerond'              | 6    |
| toon alleen geannuleerde verkopen                 | Status = 'Geannuleerd'           | 6    |
| laat alleen open verkopen zien                    | Status = 'Open'                  | 6    |
| laat alleen verkopen zien die in behandeling zijn | Status = 'In behandeling'        | 6    |
| laat alleen verkopen van Garage Van Dijk zien     | Klant contains 'Garage Van Dijk' | 4    |

Five out of five, including the two-word value. Later, in the Dutch session, the same request filtered correctly once without anything in Report Context. One run proves nothing, so I would keep the Report Context text.

I used five different sentences instead of repeating one, because the model also reads the chat history. When I removed a filter by closing its chip and asked for the same thing again, the assistant answered that the report already showed it, even though the report was back to all 24 rows. I would call this a bug?

## What I could not make work

Grouping. `what is the total amount per category` fails in English and the Dutch versions fail the same way. The user sees only "An unexpected error occurred." The debug log has the real reason:

```
ORA-20960: The AI Service invoked a tool which does not exist, or a tool with invalid parameters.
```

A total over all rows (`tel alle bedragen op`) worked. Adding AI descriptions to the columns did not help. Rephrasing it four ways did not help either. The documentation lists one grouping or calculation at a time as supported, so I expected this to work. I do not know yet why it does not.

Two smaller things I noticed and did not resolve. The assistant answered in English for the first runs and in Dutch later. I cannot tell you why. And once a burst of questions hit Cohere's per-minute limit and the assistant panel showed the raw `ORA-20954` error text to the user.

## What I would tell a Dutch team (or any other language)

Make sure your Dutch users run the application in Dutch. Our applications are multilingual and users pick their own language. I tested with the primary language. I expect the same when a user picks Dutch themselves, because the phrases follow the session language. In a Dutch session the Dutch key phrases run locally and those cost no tokens at all. Every request that goes to the model costs around 17,000 tokens per call and some requests need two or three calls. On a busy report that difference is money. Leave the language on English and your Dutch users fall into an empty text search, or into the model when AI search is on.

With AI search on, the model handles Dutch well enough to be useful, but only once you tell it the exact values through Report Context. Without that, the assistant's reply cannot be trusted. Look at the filter chip, because that is what the report actually did.

Have you found where APEX keeps the Dutch key phrases, or a list of them? I would love to know the Dutch words for searching and grouping.