Oracle SQLcl 24.3 Release Notes

October 2024

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

New Features in 24.3

Database Development Workflow: PROJECT command

The project command is a powerful tool designed to standardize database software versioning and create releasable artifacts, including APEX applications. It supports a consistent model of development and operations, enabling repeatable builds that can be applied in a specific order.

  • Key features include versioned feature management, release artifact creation, ordered installation, source control integration, and automated release packaging.
  • The command uses various subcommands such as init, config, export, ticket, release, gen-artifact, deploy, and verify to manage the entire lifecycle of database changes, from initial project setup to deployment in production environments.
  • It leverages Git for branching and diffing, and uses Liquibase for creating immutable changesets, allowing for structured and controlled database development processes.

Multilingual Engine JavaScript Module management: MLE command

New commands for managing multilingual engine (MLE) libraries in the database as modules.

  • MLE create-module to create a module. This requires a valid JavaScript file path, the module name, and allowing options such as specifying the language, metadata, schema, and version. 
  • MLE alter-module command allows for altering existing modules by updating their metadata, with similar options available for schema and verbosity.
  • Key options for both commands include paths for JSON metadata descriptions, ensuring that either metadata or a metafile is provided, but not both. This functionality streamlines the integration of JavaScript libraries within Oracle Database, enhancing its support for modern development practice.

Microsoft Access Migrations: MDB command

Import tables and data from Microsoft Access (MDB) files into Oracle database schemas.

  • Users can specify an MDB file to list all tables and views or selectively import specific ones, while also defining the destination Oracle schema for the migration.
  • The command syntax includes options such as list, copy, and others for managing the import process, allowing users to determine if they want to replace or append data, as well as set a prefix for table names.
  • The imported data is organized into necessary tables, including a special views_table to store saved queries from Access.
  • Script is designed to be re-runnable for efficient data transfer during cut-over periods, ensuring users cannot access the MDB file during migration.

Liquibase Updates

SQLcl now supports "liquibase formatted SQL" changesets. This allows developers to embed Liquibase commands directly within SQL files.

 

JDBC Driver

Oracle Database 23ai JDBC driver is now included in SQLcl.

 

    Issues Fixed in 24.3

    The main bugs of note this release are:

    • 36932974 - INSIGHT not working for WHERE Clause column selector when preceded by a SELECT with a JOIN statement
    • 36591434 - NSIGHT not available for first value in a between clause
    • 36478929 - CODESCAN reporting false positive for code quality checks
    • 36741442 - INSIGHT fails for PLSQL program with underscore in name in a different schema
    • 36820594 - AWR list snapshots and creating reports fails in container database
    • 36963700 - PL/SQL block error returns entire PL/SQL block of code with wrong error line reported
    • 36571790 - Not able to create an alias for Liquibase command
    • 36575231 - WHENEVER OSERROR not working
    • 35269744 - SKIPEXPORTDATE parameter in the APEX export still includes date of the export
    • 36505346 - Starting several instances of SQLcl concurrently on windows fails due to file access
    • 36202034 - APEX export option "export-all-workspaces" does not produce an export file
    • 36065750 - Not interpreting file linux shortcode paths correctly, e.g. ~/scratch/working
    • 36741450 - Parser fails to recognize json_transform passing clause
    • 36482736 - Running update with returning old & new syntax fails with not all return parameters registered
    • 36484821 - Bequeath connections not working on 23ai
    • 36556857 - Console text highlighting scheme obscures comment text as you're typing
    • 36342116 - Exit does not emit error code on host
    • 33201003 - Insert hint uses to_timestamp for date columns
    • 35047844 - Set null prints wrong text for null clobs
    • 35711527 - Info shows wrong primary key columns
    • 35831200 - CLTRL-C in windows cmd/powershell corrupts display
    • Liquibase Functionality in SQLcl
      • 37088605 - Schema names are missing in SQL files when using generate-schema
      • 35391819 - DBMS_SCHEDULER changeSets have duplicate CREATE_PROGRAM calls
      • 35929122 - SERVEROUTPUT not being honored for RUNORACLESCRIPT changesets
      • 36234198 - Grants missing from changeLog when using update with -filter "like 'TEST_D%'
      • 36348750 - DATABASECHANGELOG_DETAILS VIEW placed in wrong schema when using -LIQUIBASE-SCHEMA-NAME
      • 36486336 - DROP-ALL fails with Null Pointer Exception
      • 36534596 - STATUS command WITH INVALID SOURCETYPE RETURNS DIFFERENT ERRORS than previously
      • 36571474 - Does not deploy .SQL files having blank lines
      • 36592761 - Rollback-to-date -date <DATE> doesn't work if you don't include time value
      • 36600334 - Generate schema -PERFORM-DETAIL-PARSE fails with ORA-12899
      • 36850012 - Liquibase: Generate-CONTROLFILE errors with Null Pointer Exception
      • 36862944 - GENERATE-DB-OBJECT gives null pointer error when using -SQL parameter
      • GIVES NULL POINTER ERROR WHEN USING -SQL PARAMETER

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

    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 11 or 17 or 21. The supported Java Runtime Environments are:
        • Oracle Java 11
        • Oracle Java 17
        • Oracle Java 21
        • Oracle GraalVM Enterprise Edition for Java 11
        • Oracle GraalVM Enterprise Edition for Java 17
        • Oracle GraalVM Enterprise Edition for Java 21
    • JavaScript support requires Oracle Java 11 or GraalVM for Java 17 with the JavaScript Runtime Plugin

    Restrictions

    This section describes the restrictions on use.

    ORACLE_HOME usage

    When using SQLcl in an ORACLE_HOME, it must be a minimum version of 21c.

    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.