A PL/SQL object type and API for parsing, generating, and manipulating JSON data within Oracle databases.
PL/JSON is a PL/SQL library that provides object types and APIs for working with JSON data inside Oracle databases. It allows developers to parse, create, query, and manipulate JSON documents directly within PL/SQL code, enabling seamless integration of JSON with traditional relational data.
Oracle database developers and PL/SQL programmers who need to store, process, or expose JSON data within their database applications.
It offers a native, performant, and type-safe way to handle JSON in PL/SQL, with features like path querying and SQL-to-JSON conversion that simplify working with semi-structured data without leaving the database layer.
PL/JSON is a generic JSON object written in PL/SQL. Using PL/SQL object syntax, users instantiate a JSON object and then add members, arrays and additional JSON objects. This object type can store JSON data, in Oracle, persistently.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides dedicated PL/SQL object types for all JSON elements (e.g., pljson, pljson_list) inherited from pljson_element, leading to cleaner, more performant code as emphasized in the README's philosophy on memory efficiency.
Supports dot-notation path expressions compatible with Oracle's SQL/JSON syntax, allowing easy access to nested JSON data without complex parsing, demonstrated in the demo with examples like 'c.d[3].e'.
Includes pljson_dyn utilities to convert SQL query results directly into JSON objects or arrays, streamlining data export for APIs or reports, as shown with executeObject and executeList functions.
Offers pljson_table.json_table to transform JSON arrays into relational table rows, enabling SQL-based querying of JSON data, with a clear example returning tabular results from nested JSON.
PL/JSON must be installed separately in each database schema and cannot be accessed from other schemas, adding overhead and management complexity in multi-schema environments, as warned in the README.
Migration from version 2 to version 3 requires code adjustments due to changed constructors (e.g., replacing pljson_value() with specific types), and the README admits old examples use deprecated naming, complicating upgrades.
Path expressions lack support for filter expressions and function steps available in Oracle's full SQL/JSON syntax, limiting advanced querying capabilities within PL/SQL, as noted in the README's compatibility section.