Oracle SQLcl 25.2.2 Release Notes

Version 25.2.2.199.0918

July 21, 2025

SQLcl on OTN | Getting Started Video | Downloads | FAQ | Forum

 

Bugs Fixed

  • Database connections fail if unable to read tnsnames.ora file

If your bug fix isn’t listed above, please refer to My Oracle Support to check its status.

 

25.2.0 New Features

MCP Server for Oracle Database

  • SQLcl can now run as a Model Context Protocol (MCP) Server, enabling access to Oracle Database via LLMs and AI coding assistants.
  • Support for MCP Tools include CONNECTIONS and SQL tools. LLMs can establish database connections and run SQL queries on behalf of users.
  • SQLcl will receive monthly updates to introduce new tools and prompts, including features like SQL execution plans, business reports, and data loading.
  • VS Code Extension for SQL Developer will automatically register SQLcl as an MCP Server for code assistants such as Copilot.
Learn more about MCP Server here.

Daemon Support: SQLcl can run as a background service, supporting scheduled tasks and providing detailed logging of events, job results, and errors.

Projects Enhancements

  • SQLcl projects now support JSON Relational Duality Views, MLE JavaScript modules, and Queues.
  • 23ai object annotations are now included in your object definitions.

Oracle Home Support
THICK Connections on Windows: A directory named instantclient located in the directory containing the sql.exe file (normally sqlcl/bin) is combined with the driver jarfile (ojdbc11.jar) and prepended to the classpath. A similar entry for %ORACLE_HOME% is prepended after instantclient. On Windows there is no validation of the version of a database, client, or instant client install, although some logic is used to determine the presence of an ORACLE_HOME and thus whether thick should be available and the default. A misconfigured ORACLE_HOME (for example, a version earlier than 23) will likely result in connection errors when the thick driver is used.

THICK Connections on Linux/Unix/OS X: An effort is made to validate the version of the client install. The environment variable ORACLE_HOME is assumed to point to either a full install or an instant client. For full client and database installs, $ORACLE_HOME/bin/oraversion is used to determine the install version. For instant client installs, the native library libocijdbc is used to determine the version; the filename contains the major version of the driver (for example, a 23.3 instant client on the Mac will have a library named libocijdbc23.dylib). If the detected version is less than 23, the user is notified that a minimum of 23 is required and the ORACLE_HOME is ignored (the classpath is left unaltered and the thick driver is not available). If the version is at least 23, the classpath is modified to prepend the ojdbc11.jar library from the ORACLE_HOME location and thick will be available and the default driver.

Code Scan Improvements: The -list-rules sub-command now prints the list of available rules.

Support

You are supported by Oracle Support under your current Oracle Database Support license.

Log Oracle SQLcl bugs and issues using My Oracle Support. To determine the version of SQLcl run this command: sql -version

Documentation

Documentation on using SQLcl is provided on the oracle.com website here.

Requirements

  • Supported Java Version
    • Oracle SQLcl requires Java 17 or 21. The supported Java Runtime Environments are:
      • Oracle Java 17
      • Oracle Java 21
      • Oracle GraalVM Enterprise Edition for Java 17
      • Oracle GraalVM Enterprise Edition for Java 21
  • JavaScript support requires GraalVM for Java 17 with the JavaScript Runtime Plugin

Restrictions

This section describes the restrictions on use.

ORACLE_HOME usage

When using an ORACLE_HOME or instant client with SQLcl, the client version must be 23ai.

Liquibase usage with APEX

Liquibase support for APEX requires APEX version 18 and above.

Feedback

In the forum, you can discuss topics with the SQLcl community around the world and leave feedback for the development team.

Be sure to use clear subject lines to initiate a thread. Provide a complete and clear description of the issue, including steps to reproduce the issue.

Try to avoid using old, unrelated threads for a new issue.