Skip to content

oracle/nosql-intellij-plugin

Oracle NoSQL Database IntelliJ Plugin

Overview

The Oracle NoSQL Database IntelliJ Plugin accelerates application development by integrating with IntelliJ IDEA. The plugin enables you to:

Features

The IntelliJ Plugin provides the following capabilities:

Table Management

  • View tables in a well-defined tree structure using the Schema Explorer.
  • View metadata about columns, indexes, primary key(s), and shard key(s) for a table.
  • View table data in a well-formatted JSON structure.
  • Create tables using form-based schema entry or supply DDL statements.
  • Drop tables.
  • Add new columns using form-based entry or supply DDL statements.
  • Drop columns.
  • Create indexes using form-based schema entry or supply DDL statements, including complex data types for example, JSON, Map, Array and Record.
  • Drop indexes.
  • View the create table DDL
  • Create child tables
  • Update provisioned capacity of the cloud tables
  • View create index DDL

Query and Data Manipulation

  • Execute SQL queries on a table and view query results in tabular format.
  • Execute DML statements to update, insert, and delete data from a table.
  • Download query results into JSON files.
  • Work with complex data types such as Array, Maps, Records and JSON.
  • Work with the binary and fixed binary data types.
  • View and use previously executed SQL queries with command history
  • Execute queries faster with auto-completion that suggests table names, column names, and functions.
  • Syntax highlighted SQL in query workbench to reduce errors
  • Prettify SQL with a single-click
  • Navigate through JSON results efficiently

Advanced Features

  • Support for Json Collection tables
  • Support for MR Counters
  • Support for composite primary keys

Multi-Region and Cloud Features

  • Add Cloud connections using configuration file
  • Add multiple Cloud, On-prem and Cloudsim connections
  • Use Global Active Tables for Cloud
  • Use Multi-region tables for On-prem
  • Execute System Requests for the On-prem connections
  • Use namespace support for On-prem connections

Installation

Refer to the Oracle NoSQL IntelliJ Plugin installation guide

Prerequisites

  • IntelliJ IDEA Build '242.23726.103'
  • Oracle NoSQL Java SDK '5.4.17' or later (Download here).
  • Gradle version 8.12
  • Java 17

Getting Started

Connect to Your Database

Explore and Manage Tables

Once you connect to your database -

  • Use the Schema Explorer to explore your tables.

  • Click the table name to view its columns, indexes, primary key(s), and shard key(s). Each column name is displayed alongside its data type.

  • You can refresh the schema or table at any time to re-query your deployment and populate Oracle NoSQL Database with the most up-to-date data.

  • In the Schema Explorer, locate the connection and click the Refresh icon to reload the schema. Alternatively, you can right-click the connection and select Refresh Schema.

  • To refresh a table, in the Schema Explorer, locate the table name right-click on it and select Refresh Table.

Example Workflows

Table Management

Insert/Update/Delete a Row into the table

Perform DML operations

Query tables

  1. Browsing database table
  2. Executing query
  3. Download row in JSON
  4. Download Query Result in JSON
  5. To view query execution plan
  6. Recently used commands

Query tables reference

View table creation DDL for a particular table

  • Right-click the target table and select View Table DDL.
  • Table creation DDL is displayed in a separate window, which also includes an option to copy the DDL.

Create child tables

  1. Right-click the target table and select Create Child Table

  2. You can create the child table in two ways:

    • Simple DDL Input : You can use this mode to create the child table declaratively, that is, without writing a DDL statement.
    • Advanced DDL Input : You can use this mode to create the child table using a DDL statement.
  3. Click Create.

Work with complex data types such as Array, Maps, Record and JSON

  • Perform DDL and DML operations for these data types and also create indexes.
  • The complex data types are only supported through DDL and DML statements.

Work with the binary and fixed binary data types

  1. Create a table with Binary and Fixed Binary data types columns in it.

  2. Right-click the target table and select insert row.

  3. You can insert data in binary or fixed binary column in three ways :

    • Direct input in TextField : You can use this mode to insert data in binary column in Base64 format.
    • Through file : You can use this mode to open a prompt and select a .bin file to be inserted in the column.
    • Advance input:JSON Schema : You can insert the complete row in the table through advance input.
  4. Click on Insert.

  5. The table view of the binary and fixed binary column does not display the inserted text or file.

  6. Instead of text, there is an option called Download Binary Object, which allows the user to download the binary object in .bin format to local storage and view its contents using any .bin editor.

  7. A prompt appears asking the user to choose a location to download the binary object. The user can select the desired location and click OK.

  8. A IntelliJ notification appears with one-click link to open the downloaded .bin file.

Full schema renderer for the Map, Array, Record, Binary, Fixed Binary and Index in the NoSQL tool window tree

  • Full detailed schema of the data type will be displayed in the NoSQL tool window tree.

Global Active Tables for Cloud

Basic Global Active Tables concepts

  1. Connect to a cloud connection.
  2. Create a table (One column must be of JSON type).
  3. Freeze/Unfreeze the table
  4. The Global Active Table provides support for :
    • Add Replica
    • View Replicas
    • Drop Replicas

Multi-Region Tables for On-prem

  1. Set up the multiple kvstore and proxy.
  2. Set up the Multi-region environment
  3. Use the plugin to create and manage the table and regions.
  4. The above task can be achieved by Execute DDL option present in the NoSQL tool window.

Execute System Requests for the On-prem connections

  • System Request is an on-premise-only request used to perform any table-independent administrative operation such as create/drop of namespaces and security-relevant operations (create/drop users and roles). These operations are asynchronous and completion needs to be checked.

  • Examples of statements used in this object include:

    • CREATE NAMESPACE mynamespace
    • CREATE USER some_user IDENTIFIED BY password
    • CREATE ROLE some_role
    • GRANT ROLE some_role TO USER some_user
  • This request can be executed by using the Execute DDL option present in the NoSQL tool window.

Edit provisioned capacity of the cloud tables

Use namespace support for On-prem connections

  • The namespace support is now available in the plugin.
  • The namespaces can be created from the Execute DDL option present in the NoSQL tool window. More information on namespace : Oracle NoSQL Database Namespaces
  • While adding an On-prem connection, enter a namespace in the Namespace field.
  • Fill the created namespace to set up a connection to a particular namespace under particular kvstore connection.
  • Once connected to this connection, it will list all the tables under that namespace.

Json Collection Tables

  • To Create a new Json Collection Table :

    1. Hover over the database where you want to add the new table.
    2. Right click on the connection name and select Create Table.
    3. In the table creation mode, select For Advanced DDL input
    4. Supply the valid DDL statement for creating Json Collection table in the query box to create the table.
  • To Insert a row in Json Collection Table :

    1. Right-click the target table and select Insert Row.
    2. You can INSERT a new ROW in only one mode : Advanced JSON Input
    3. Supply a valid Json string corresponding to a row in the Json Collection table in the text box.
    4. Click Insert Row.
  • To Update a single row :

    1. Right-click on the target row. A context-menu appears.
    2. Select Update Row where you can only update in For Advanced DDL input mode.
    3. In the Json input, supply the Json string corresponding to the updated row to update a row.
  • To create index :

    1. Right-click the target table and select Create Index.
    2. You can add index in only one mode : Advanced DDL Input
    3. Supply a valid DDL statement in the text box.
    4. Click Create Index.
  • Rest everything can be used in the same manner as a normal table.

MR Counters

  • To use MR Counters, first we have to create a multi region table by selecting Advanced DDL input in the table creation mode and supplying a valid DDL statement with MR Counters.

  • For inserting a new row, insert as usual ensuring that it contains all the MR Counter fields.

  • For Updating a particular row containing MR Counter :

    1. Right-click on the target row. A context-menu will appear.
    2. Select Update Row.
    3. In both the input modes namely Simple DDL input and Advanced DDL input, you have to increment or decrement all the MR Counters as :
      • For Simple DDL input with non JSON fields, increment or decrement MR Counter fields as " +/- "
      • For Json fields in Simple DDL input option containing nested MR Counters or Advanced DDL input option, increment or decrement MR Counters in the Json string as "" = " +/- "

Composite Primary Key

  • While creating a table, you can create a composite primary key :

    1. Simple DDL input

      • Click the Add Primary Key Column button to add more fields to the primary key.
    2. Advanced DDL input

      • Supply a valid DDL statement to create a table with composite primary keys.
  • To view the fields that makes up a composite primary key :

    1. Click the target table to see the listed columns, Primary Keys, Indexes and Shard Keys.
    2. Click the Primary key and a list of columns making the primary key appears.

View Index DDL

  1. Click the target table to see the listed columns, Primary Keys, Indexes and Shard Keys.
  2. Locate the target-index and right-click on it.
  3. Click View Index DDL.
  4. Index creation DDL will be displayed in another window which also has a option to copy the DDL.

Building the repository

  • Build the complete package with gradle build or clean and build with ./gradlew clean build
  • The above build will generate the plugin zip in 'plugin/build/distributions/'

Contributing

This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide

Security

Please consult the security guide for our responsible security vulnerability disclosure process

Help and Support

There are a few ways to get help or report issues:

License

Copyright (C) 2024, 2025 Oracle and/or its affiliates. All rights reserved.

This plugin is licensed under the Universal Permissive License 1.0. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 6