1 Changes in This Release for JavaScript Developer's Guide

This chapter lists the changes in Oracle AI Database JavaScript Developer's Guide for Oracle Database 26ai:

July 2024, Release Update 23.5

Included are some notable Oracle AI Database JavaScript Developer's Guide updates with Oracle Database 26ai, Release Update 23.5:

Feature Description

MLE Support on Linux for Arm (aarch64)

In addition to Linux x86-64, Multilingual Engine (MLE) is supported on Linux for Arm (aarch64).

Overview of Multilingual Engine for JavaScript

Operator Overloading with OracleNumber

Rather than using methods such as add and sub to perform arithmetic operations with instances of the type OracleNumber, arithmetic operators such as + and - are now supported as well.

Examples using this new syntax can be found in Type Mapping.

Server-Side JavaScript API Documentation

January 2025, Release Update 23.7

Included are some notable Oracle AI Database JavaScript Developer's Guide updates with Oracle Database 26ai, Release Update 23.7:

Feature Description

Foreign Function Interface

The Foreign Function Interface (FFI) allows you to handle PL/SQL packages, functions, and procedures as JavaScript objects, providing more direct access to objects created in PL/SQL.

Introduction to the PL/SQL Foreign Function Interface

Server-Side JavaScript API Documentation

Fetch Type Handler

The fetchTypeHandler property of mle-js-oracledb is available to modify query result sets in JavaScript. Using the fetch type handler you can, for example, change the data types of the resulting row(s) of a SELECT statement.

Server-Side JavaScript API Documentation

April 2025, Release Update 23.8

Included are some notable Oracle AI Database JavaScript Developer's Guide updates with Oracle Database 26ai, Release Update 23.8:

Feature Description

Restricted JavaScript Execution Contexts

The PURE keyword is used in the creation of MLE environments and in inline call specifications to specify the use of a restricted execution context. During PURE execution, JavaScript code cannot access database state.

About Restricted Execution Contexts

July 2025, Release Update 23.9

Included are some notable Oracle AI Database JavaScript Developer's Guide updates with Oracle Database 26ai, Release Update 23.9:

Feature Description

MLE support with DRCP

MLE can now be used on dedicated servers that have enabled a Database Resident Connection Pool (DRCP).

Overview of Multilingual Engine for JavaScript

EXECUTE ON JAVASCRIPT privilege requirement removed

In order to execute JavaScript using MLE in your own schema, the EXECUTE ON JAVASCRIPT privilege is no longer required to be granted to your user account.

Additional privileges may still be required depending on your planned interactions with JavaScript in the database.

System and Object Privileges Required for Working with JavaScript in MLE

Compile-time syntax checks for inline JavaScript functions

Syntax checks are now run at compile time when executing an inline call specification. While the syntax of the JavaScript function is checked before runtime, using a linting tool of your choice to perform analysis of your code before execution is still recommended.

Compile-time syntax checking continues to be supported when creating MLE modules as well.

Creating an Inline MLE Call Specification

Code Analysis

October 2025, Release Update 23.26.0

Included are some notable Oracle AI Database JavaScript Developer's Guide updates with Oracle AI Database 26ai, Release Update 23.26.0:

Feature Description

MLE support for user-defined data types

User-defined types such as collections, records, and objects can now be used, for example, as parameters in JavaScript functions. They can also be inserted into the database using in-database JavaScript.

Working with User-Defined Data Types

MLE support for SPARSE vectors

Sparse vectors can now be inserted into the database and fetched from MLE, used as IN, OUT, and INOUT function arguments, and can be specified in the signature of an MLE call specification.

The SparseVector object is used to represent sparse vectors in JavaScript.

MLE JavaScript Support for the VECTOR Data Type