Skip to content

MLE Docker 0.3.0 Releae Notes

Oracle and the MLE team are pleased to provide another preview release of the Multilingual Engine (MLE) for Oracle Database. Note that as of now MLE is an experimental feature for the Oracle Database.

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. We are actively looking for use cases and feature requests. If you have suggestions, ideas, or issues, please get in touch with us at https://community.oracle.com/community/groundbreakers/database/developer-tools/multilingual-engine/.

Features

  • Dynamic MLE for running ad-hoc scripts written in JavaScript and Python
  • DDL for creating JavaScript/Python source objects and functions/procedures
  • MLE stored procedures and user-defined functions can be called from every place from where also PL/SQL can be called (e.g., in a SQL query, from within a PL/SQL program incl. anonymous blocks, as virtual columns, triggers, etc.).
  • Full support for JavaScript (fully compatible with ECMAScript 2017)
  • Experimental support for Python 3
  • Full support of Unicode in MLE

Limitations

  • The following data types are supported for bind variables in Dynamic MLE: VARCHAR2, PLS_INTEGER
  • The following data types are supported for calls to JavaScript functions: NUMBER, VARCHAR2, CHAR, BINARY_DOUBLE
  • The following data types are supported for calls to Python functions: NUMBER, VARCHAR2, CHAR, BINARY_DOUBLE
  • The following data types are supported by the MLE SQL Driver (MSD): NUMBER, VARCHAR2, CHAR, BINARY_DOUBLE, CLOB (JavaScript only), BLOB (JavaScript only), DATE (JavaScript only)
  • The following character sets are supported: AL32UTF8

Known Issues

  • The CREATE [OR REPLACE] (JAVASCRIPT | PYTHON) SOURCE DDL command must be single-line, even when the used client has multi-line support (e.g., SQL*Plus).
  • Creating MLE sources using CLOBs does not fully support Unicode characters. If the source code contains multi-byte characters, create the source using a string instead.
  • If an existing MLE source has been updated via CREATE OR REPLACE, existing sessions might not use the new version of the MLE source. It is recommended therefore to start a new session or to clean the exisiting session by calling dbms_session.reset_package().