Skip to content

Oracle Database Multilingual Engine (MLE)

Welcome to the Oracle Database Multilingual Engine (MLE). MLE is an experimental feature for the Oracle Database 12c. MLE enables developers to work efficiently with DB-resident data in modern programming languages and development environments of their choice.

Getting Started

Oracle Database MLE is available as a Docker image. It can be downloaded from the Oracle Technology Network.

General Concepts

This section contains the definition of some terms used throughout this document.

Database Type

A Database Type is one of the types known to the Oracle Database. These types include numeric types like NUMBER, and character sequence types like VARCHAR2.

User-Defined Extension

A user-defined extension to the Oracle Database is a functional unit that is not provided by Oracle. The extension can be written in any of the supported extension languages.

The Oracle Database provides multiple ways to extend the database with user-defined functionality like user-defined functions (UDFs), user-defined aggregations (UDAs), stored procedures, table functions, triggers, to name a few.

User-Defined Function

A user-defined function (also UDF) is an extension to the database that can be used in queries. It returns one value for every time the function is called. If used inside a select query, it is called once for every row.

Stored Procedure

A stored procedure is an extension to the database that is not associated with a query. A user has to explicitly call a stored procedure. Furthermore, a stored procedure does not have a return value.


A callout is a SQL statement that is executed from within a UDF or a stored procedure. Callouts allow users to send SQL statements or PL/SQL blocks to the database from within a UDF or a stored procedure. This interaction is the primary building block to implement business logic inside the database.


The preview version of Oracle Database MLE has a limited set of features. Please refer to the corresponding Release Notes that describe all limitations and known issues.

User-defined extensions written in an MLE langauge are only supported in the form of UDFs and stored procedures. Usage of any other extension results in undefined behavior.

Disclaimer & Feedback

Oracle Database Multilingual Engine (MLE for short) is an experimental option for Oracle Database 12c. This software is expected to be used as provided. Any changes to the database setup might result in an unusable database as well as loss of data and functionality.

Oracle Database MLE is being developed by Oracle Labs. This release is meant to give you a glimpse of our vision. Our goal is to engage with the community early. The primary goal of this early release is to get feedback from the community.

We have multiple feedback channels and would be extremely grateful for any comments, suggestions, or bug reports: