Skip to main content


Showing posts from November, 2017

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 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 pa

PL/SQL 101: Declaring variables and constants

PL/SQL is, in almost all ways, a straightforward and deceptively simple programming language. The "deception" lies in how simplicity can sometimes mask capability. It is easy to learn the basics of PL/SQL, and you can become productive very quickly.  And then you also quickly see how powerful and capable is PL/SQL. So I offer another post on PL/SQL fundamentals, this one offering key points to remember when declaring constants and variables. Some General Points 1. You can only have declarations in the declaration section, which is found between the IS | AS | DECLARE keyword and the BEGIN keyword (which kicks off the executable section) or END keyword if declaring elements at the package level. /* Anonymous and nested blocks*/ DECLARE ...declarations... BEGIN /* Procedures and functions */ PROCEDURE my_proc (...) IS | AS ...declarations... BEGIN /* Package specification and body */ PACKAGE my_pkg IS | AS ...declarations... END; So to be clear: there is an

"Write once, run anywhere" - PL/SQL comes to yet another database!

Back in the late 80s, some big brains at Oracle realized that an operating system independent language was needed to build applications on top of Oracle Database (and our SQL implementation). Their rapidly growing customer base was writing applications in C (making calls to SQL via the OCI layer), and that was problematic. Code needed to be ported, re-tested, etc. for variations of the C compiler on different systems. And C wasn't very easy to write. They dreamed of programs, running inside the database itself, which could be moved from operating system to operating system, and not require any changes. "Write once, run  anywhere (there's an Oracle Database)." Thus was PL/SQL born, as a sort of step-child of Ada (the syntax of PL/SQL was taken almost directly from Ada specs, to avoid having to invent an entirely new language). It's such a great language that: It offers the best performance for executing SQL in Oracle Database. It provides a simple yet p