JSON in Oracle Database: resources to get you started

I am (finally) diving in to explore and then write about using JSON in Oracle Database 12c - with SQL (Releases 1 and 2) and - more to the point for me - with PL/SQL (based on enhancements in Release 2).

Expect to see posts on this blog, articles in Oracle Magazine, quizzes and workouts at the Oracle Dev Gym, and more, in 2018.

To that end, I have been collecting links to useful resources on this topic, and I realized that you might benefit from that list just as much as I will. So why not share it now? :-)

Before exploring Oracle-specific resources, visit json.org to learn more about JSON itself.

Oracle Documentation

Let's start with the official source of truth: our doc set.

First and foremost, we have the Database JSON Developer's Guide, which covers how to store, generate, view, manipulate, manage, search, and query JSON.

And here are some specific links you might find handy:

Basic SQL/JSON Path Expression Syntax

The basic syntax of a SQL/JSON path expression is presented. It is composed of a context item followed by zero or more object or array steps, depending on the nature of the context item, followed optionally by a function step. Examples are provided.

JSON Data Guide

Lets you discover information about the structure and content of JSON documents stored in Oracle Database. Easily one of the coolest "added value" features of our implementation of JSON support.

Using PL/SQL with JSON Data

Explore the new types added in PL/SQL for JSON manipulation, and learn about how best to leverage SQL JSON features in PL/SQL.

Oracle Product Development

1. LiveSQL Tutorial by Mark Drake, Principal Product Manager

Make is the PM for XMLDB and for JSON in the database. He has put together a truly fantastic tutorial on LiveSQL that steps you through all the latest features for both SQL and PL/SQL in the 12.2 release. Here are the modules in the tutorial:

This is undoubtedly your best starting point for getting up to speed on JSON in Oracle Database.

Note: you will need to have an Oracle account to access the tutorial.

2. Top 10 Tips for JSON Processing in Database by Beda Hammerschmidt, Consulting Member of Technical Staff

Beda is the primary developer for JSON features in Oracle Database. So his command of the features is top-notch, and his understanding of JSON goes deep.

This video is long, but well worth the time for anyone wanting to get started right with this feature set.

3. Beda's blog on JSON, where as he puts it "I explain things in small steps." Perfect! :-)


Tim Hall is no slouch when it comes to keeping up with the latest in Oracle Database - and offering clear, easy-to-follow articles on new features. JSON is no exception. The following two articles should give you a solid jumpstart on deploying JSON columns and related functionality in your applications.

JSON Support in Oracle Database 12c Release 1

SQL/JSON Functions in Oracle Database 12c Release 2

PL/SQL Object Types for JSON in Oracle Database 12c Release 2

Darryl Hurley / Implestrat

Darryl's been working with Oracle Database for a couple of decades, with a big focus on SQL and PL/SQL. He's helped me with several of my books, and has also written quizzes for Oracle Dev Gym.  After encountering resistance by UI developers in his organization to using Oracle Database for JSON-based development, he decided to get up to speed on this functionality - and share what he's learned with the community.

We recently held a CodeTalk session on this topic. Check out the video of our conversation and his demonstrations here.

Darryl is also in the midst of publishing a series of posts re: JSON on his blog.

And There's More

Here are a number of other links to blog posts, videos, code samples, and more on JSON in Oracle Database.

Github Examples by Gerald Venzl, Senior Principal Product Manager, Oracle Corporation

JSON in Motion, an Oracle Magazine article on 12.1 JSON by the ever-informative and -entertaining Arup Nanda, Oracle ACE Director

Run with JSON, an Oracle Magazine article on 12.2 JSON by Arup Nanda, Oracle ACE Director

JSON in Oracle Database with Examples, a blog post by Nimish Garg, Oracle ACE Associate

Well, you won't have learned a darned thing about JSON in Oracle Database simply by reading this blog post. But hopefully it can serve as a launch point for your exploration and education on this topic.

And if you've found some other outstanding content that you think I should add to this post, please let me know!


  1. Hi Steven,

    I've been playing arround with json in Oracle 12.2, but I get an ORA-06512 error when I try to execute the following block...

    / -- worked ok

    jcolname => 'DOCUMENTO',
    pretty => DBMS_JSON.PRETTY);
    tablename => 'JSON_RAW',
    jcolname => 'DOCUMENTO',
    dataguide => V_CLOB);

    Error report -
    ORA-00904: : invalid identifier
    ORA-06512: at "XDB.DBMS_JSON", line 559
    ORA-06512: at "XDB.DBMS_JSON", line 977
    ORA-06512: at line 9
    00904. 00000 - "%s: invalid identifier"

    Any ideas why am I getting this error????

    Thanks in advance

    1. Please provide the DDL for the table json_raw.

    2. When I run the following statements, I get "ORA-40594: invalid data guide" (still sorting that out), but not invalid identifier.

      CREATE TABLE json_raw
      documento CLOB CONSTRAINT ensure_json CHECK (documento IS JSON));


      v_clob CLOB;
      v_clob :=
      dbms_json.get_index_dataguide (
      tablename => 'JSON_RAW',
      jcolname => 'DOCUMENTO',
      format => dbms_json.format_hierarchical,
      pretty => dbms_json.pretty);
      DBMS_OUTPUT.put_line (v_clob);
      dbms_json.create_view (viewname => 'DOCUMENTOS',
      tablename => 'JSON_RAW',
      jcolname => 'DOCUMENTO',
      dataguide => v_clob);


Post a Comment

Popular posts from this blog

Table Functions, Part 1: Introduction and Exploration

Get rid of mutating table trigger errors with the compound trigger

Quick Guide to User-Defined Types in Oracle PL/SQL