| PL/JSON | |||||
| SUMMARY: FIELD | TYPE | METHOD | DETAIL: FIELD | TYPE | METHOD | |||||
This package defines PL/JSON's representation of the JSON object type, e.g.:
{
"foo": "bar",
"baz": 42
}
The primary method exported by this package is the pljson
method.
declare
myjson pljson := pljson('{ "foo": "foo", "bar": [0, 1, 2], "baz": { "foobar": "foobar" } }');
begin
myjson.get('foo').print(); // => dbms_output.put_line('foo')
myjson.get('bar[1]').print(); // => dbms_output.put_line('0')
myjson.get('baz.foobar').print(); // => dbms_output.put_line('foobar')
end;
| Field Summary | |
NUMBER | CHECK_FOR_DUPLICATE
Private variable for internal processing. |
PLJSON_VALUE_ARRAY | JSON_DATA
Private variable for internal processing. |
PLJSON_ELEMENT | SUPERTYPE
|
| Method Summary | |
MEMBER PROCEDURE |
CHECK_DUPLICATE(SELF IN OUT NOCOPY PLJSON, V_SET IN BOOLEAN)
|
MEMBER FUNCTION NUMBER |
COUNT()
Return the number values in the object. |
MEMBER FUNCTION BOOLEAN |
EXIST(PAIR_NAME IN VARCHAR2)
Determine if a given value exists within the object. |
MEMBER FUNCTION PLJSON_VALUE |
GET(PAIR_NAME IN VARCHAR2)
Retrieve the value of a given key. |
MEMBER FUNCTION PLJSON_VALUE |
GET(POSITION IN PLS_INTEGER)
Retrieve a value based on its position in the internal storage array. |
MEMBER FUNCTION PLJSON_LIST |
GET_KEYS()
Retrieve all of the keys within the object as a
myjson := pljson('{"foo": "bar"}');
myjson.get_keys(); // ['foo']
|
MEMBER FUNCTION PLJSON_LIST |
GET_VALUES()
Retrieve all of the values within the object as a
myjson := pljson('{"foo": "bar"}');
myjson.get_values(); // ['bar']
|
MEMBER PROCEDURE |
HTP(SELF IN PLJSON, SPACES IN BOOLEAN DEFAULT FALSE, CHARS_PER_LINE IN NUMBER DEFAULT 0, JSONP IN VARCHAR2 DEFAULT NULL)
Print a JSON representation of the object via |
MEMBER FUNCTION NUMBER |
INDEX_OF(PAIR_NAME IN VARCHAR2)
Determine the position of a given value within the internal storage array. |
MEMBER FUNCTION PLJSON_VALUE |
PATH(JSON_PATH IN VARCHAR2, BASE IN NUMBER DEFAULT 1)
Retrieve a value from the internal storage array based on a path string and a starting index. |
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN PLJSON_VALUE, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN VARCHAR2, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN NUMBER, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN BINARY_DOUBLE, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN BOOLEAN, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN PLJSON_LIST, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_PUT(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, ELEM IN PLJSON, BASE IN NUMBER DEFAULT 1)
|
MEMBER PROCEDURE |
PATH_REMOVE(SELF IN OUT NOCOPY PLJSON, JSON_PATH IN VARCHAR2, BASE IN NUMBER DEFAULT 1)
|
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON()
Primary constructor that creates an empty object. Internally, a
decleare
myjson pljson := pljson();
begin
myjson.put('foo', 'bar');
dbms_output.put_line(myjson.get('foo')); // "bar"
end;
|
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(STR IN VARCHAR2)
Construct a
decleare
myjson pljson := pljson('{"foo": "bar"}');
begin
dbms_output.put_line(myjson.get('foo')); // "bar"
end;
|
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(STR IN CLOB)
Construct a |
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(STR IN BLOB, CHARSET IN VARCHAR2 DEFAULT 'UTF8')
Construct a |
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(STR_ARRAY IN PLJSON_VARRAY)
Construct a |
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(ELEM IN PLJSON_VALUE)
Create a new |
CONSTRUCTOR FUNCTION SELF AS RESULT |
PLJSON(L IN OUT NOCOPY PLJSON_LIST)
Create a new |
MEMBER PROCEDURE |
PRINT(SELF IN PLJSON, SPACES IN BOOLEAN DEFAULT TRUE, CHARS_PER_LINE IN NUMBER DEFAULT 8192, JSONP IN VARCHAR2 DEFAULT NULL)
Print a JSON representation of the object via |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN PLJSON_VALUE, POSITION IN PLS_INTEGER DEFAULT NULL)
Add a |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN VARCHAR2, POSITION IN PLS_INTEGER DEFAULT NULL)
Add a |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN NUMBER, POSITION IN PLS_INTEGER DEFAULT NULL)
Add a |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN BINARY_DOUBLE, POSITION IN PLS_INTEGER DEFAULT NULL)
Add a |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN BOOLEAN, POSITION IN PLS_INTEGER DEFAULT NULL)
Add a |
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN PLJSON, POSITION IN PLS_INTEGER DEFAULT NULL)
|
MEMBER PROCEDURE |
PUT(SELF IN OUT NOCOPY PLJSON, PAIR_NAME IN VARCHAR2, PAIR_VALUE IN PLJSON_LIST, POSITION IN PLS_INTEGER DEFAULT NULL)
|
MEMBER PROCEDURE |
REMOVE(PAIR_NAME IN VARCHAR2)
Remove a key and value from an object.
declare
myjson pljson := pljson('{"foo": "foo", "bar": "bar"}')
begin
myjson.remove('bar'); // => '{"foo": "foo"}'
end;
|
MEMBER PROCEDURE |
REMOVE_DUPLICATES(SELF IN OUT NOCOPY PLJSON)
|
MEMBER FUNCTION VARCHAR2 |
TO_CHAR(SPACES IN BOOLEAN DEFAULT TRUE, CHARS_PER_LINE IN NUMBER DEFAULT 0)
Serialize the object to a JSON representation string. |
MEMBER PROCEDURE |
TO_CLOB(SELF IN PLJSON, BUF IN OUT NOCOPY CLOB, SPACES IN BOOLEAN DEFAULT FALSE, CHARS_PER_LINE IN NUMBER DEFAULT 0, ERASE_CLOB IN BOOLEAN DEFAULT TRUE)
Serialize the object to a JSON representation and store it in a CLOB. |
MEMBER FUNCTION PLJSON_VALUE |
TO_JSON_VALUE()
Convert the object to a |
| Field Detail |
public NUMBER CHECK_FOR_DUPLICATE
public PLJSON_VALUE_ARRAY JSON_DATA
| Method Detail |
public MEMBER PROCEDURE CHECK_DUPLICATE(SELF IN OUT NOCOPY PLJSON,
V_SET IN BOOLEAN)
public MEMBER FUNCTION NUMBER COUNT()
Return the number values in the object. Essentially, the number of keys in the object.
public MEMBER FUNCTION BOOLEAN EXIST(PAIR_NAME IN VARCHAR2)
Determine if a given value exists within the object.
PAIR_NAME -
The name of the value to check for.true if the value exists, false otherwise.public MEMBER FUNCTION PLJSON_VALUE GET(PAIR_NAME IN VARCHAR2)
Retrieve the value of a given key.
PAIR_NAME -
The name of the value to retrieve.pljson_value, or null
if it could not be found.public MEMBER FUNCTION PLJSON_VALUE GET(POSITION IN PLS_INTEGER)
Retrieve a value based on its position in the internal storage array. It is recommended you use name based retrieval.
POSITION -
Index of the value in the internal storage array.pljson_value, or null
if it could not be found.public MEMBER FUNCTION PLJSON_LIST GET_KEYS()
Retrieve all of the keys within the object as a pljson_list.
myjson := pljson('{"foo": "bar"}');
myjson.get_keys(); // ['foo']
pljson_list.public MEMBER FUNCTION PLJSON_LIST GET_VALUES()
Retrieve all of the values within the object as a pljson_list.
myjson := pljson('{"foo": "bar"}');
myjson.get_values(); // ['bar']
pljson_list.public MEMBER PROCEDURE HTP(SELF IN PLJSON,
SPACES IN BOOLEAN DEFAULT FALSE,
CHARS_PER_LINE IN NUMBER DEFAULT 0,
JSONP IN VARCHAR2 DEFAULT NULL)
Print a JSON representation of the object via HTP.PRN.
SPACES -
Enable pretty printing by formatting with spaces. Default: true.CHARS_PER_LINE -
Wrap output to a specific number of characters per line. Default: 0 (infinite).JSONP -
Name of a function for wrapping the output as JSONP. Default: null.public MEMBER FUNCTION NUMBER INDEX_OF(PAIR_NAME IN VARCHAR2)
Determine the position of a given value within the internal storage array.
PAIR_NAME -
The name of the value to retrieve the index for.-1 if it could not be found.public MEMBER FUNCTION PLJSON_VALUE PATH(JSON_PATH IN VARCHAR2,
BASE IN NUMBER DEFAULT 1)
Retrieve a value from the internal storage array based on a path string and a starting index.
JSON_PATH -
A string path, e.g. 'foo.bar[1]'.BASE -
The index in the internal storage array to start from.
This should only be necessary under special circumstances. Default: 1.pljson_value.public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN PLJSON_VALUE,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN VARCHAR2,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN NUMBER,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN BINARY_DOUBLE,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN BOOLEAN,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN PLJSON_LIST,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_PUT(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
ELEM IN PLJSON,
BASE IN NUMBER DEFAULT 1)
public MEMBER PROCEDURE PATH_REMOVE(SELF IN OUT NOCOPY PLJSON,
JSON_PATH IN VARCHAR2,
BASE IN NUMBER DEFAULT 1)
public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON()
Primary constructor that creates an empty object.
Internally, a pljson "object" is an array of values.
decleare
myjson pljson := pljson();
begin
myjson.put('foo', 'bar');
dbms_output.put_line(myjson.get('foo')); // "bar"
end;
pljson instance.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(STR IN VARCHAR2)
Construct a pljson instance from a given string of JSON.
decleare
myjson pljson := pljson('{"foo": "bar"}');
begin
dbms_output.put_line(myjson.get('foo')); // "bar"
end;
STR -
The JSON to parse into a pljson object.pljson instance.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(STR IN CLOB)
Construct a pljson instance from a given CLOB of JSON.
STR -
The CLOB to parse into a pljson object.pljson instance.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(STR IN BLOB,
CHARSET IN VARCHAR2 DEFAULT 'UTF8')
Construct a pljson instance from a given BLOB of JSON.
STR -
The BLOB to parse into a pljson object.CHARSET -
The character set of the BLOB data (defaults to UTF-8).pljson instance.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(STR_ARRAY IN PLJSON_VARRAY)
Construct a pljson instance from
a given table of key,value pairs of type varchar2.
STR_ARRAY -
The pljson_varray (table of varchar2) to parse into a pljson object.pljson instance.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(ELEM IN PLJSON_VALUE)
Create a new pljson object from a current pljson_value.
declare
myjson pljson := pljson('{"foo": {"bar": "baz"}}');
newjson pljson;
begin
newjson := pljson(myjson.get('foo').to_json_value())
end;
ELEM -
The pljson_value to cast to a pljson object.pljson.public CONSTRUCTOR FUNCTION SELF AS RESULT PLJSON(L IN OUT NOCOPY PLJSON_LIST)
Create a new pljson object from a current pljson_list.
L -
The array to create a new object from.pljson.public MEMBER PROCEDURE PRINT(SELF IN PLJSON,
SPACES IN BOOLEAN DEFAULT TRUE,
CHARS_PER_LINE IN NUMBER DEFAULT 8192,
JSONP IN VARCHAR2 DEFAULT NULL)
Print a JSON representation of the object via DBMS_OUTPUT.
SPACES -
Enable pretty printing by formatting with spaces. Default: true.CHARS_PER_LINE -
Wrap output to a specific number of characters per line. Default: 8192 (32512 is maximum).JSONP -
Name of a function for wrapping the output as JSONP. Default: null.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN PLJSON_VALUE,
POSITION IN PLS_INTEGER DEFAULT NULL)
Add a pljson instance into the current instance under a
given key name.
PAIR_NAME -
Name of the key to add/update.PAIR_VALUE -
The value to associate with the key.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN VARCHAR2,
POSITION IN PLS_INTEGER DEFAULT NULL)
Add a varchar2 instance into the current instance under a
given key name.
PAIR_NAME -
Name of the key to add/update.PAIR_VALUE -
The value to associate with the key.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN NUMBER,
POSITION IN PLS_INTEGER DEFAULT NULL)
Add a number instance into the current instance under a
given key name.
PAIR_NAME -
Name of the key to add/update.PAIR_VALUE -
The value to associate with the key.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN BINARY_DOUBLE,
POSITION IN PLS_INTEGER DEFAULT NULL)
Add a binary_double instance into the current instance under a
given key name.
PAIR_NAME -
Name of the key to add/update.PAIR_VALUE -
The value to associate with the key.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN BOOLEAN,
POSITION IN PLS_INTEGER DEFAULT NULL)
Add a boolean instance into the current instance under a
given key name.
PAIR_NAME -
Name of the key to add/update.PAIR_VALUE -
The value to associate with the key.public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN PLJSON,
POSITION IN PLS_INTEGER DEFAULT NULL)
public MEMBER PROCEDURE PUT(SELF IN OUT NOCOPY PLJSON,
PAIR_NAME IN VARCHAR2,
PAIR_VALUE IN PLJSON_LIST,
POSITION IN PLS_INTEGER DEFAULT NULL)
public MEMBER PROCEDURE REMOVE(PAIR_NAME IN VARCHAR2)
Remove a key and value from an object.
declare
myjson pljson := pljson('{"foo": "foo", "bar": "bar"}')
begin
myjson.remove('bar'); // => '{"foo": "foo"}'
end;
PAIR_NAME -
The key name to remove.public MEMBER PROCEDURE REMOVE_DUPLICATES(SELF IN OUT NOCOPY PLJSON)
public MEMBER FUNCTION VARCHAR2 TO_CHAR(SPACES IN BOOLEAN DEFAULT TRUE,
CHARS_PER_LINE IN NUMBER DEFAULT 0)
Serialize the object to a JSON representation string.
SPACES -
Enable pretty printing by formatting with spaces. Default: true.CHARS_PER_LINE -
Wrap output to a specific number of characters per line. Default: 0 (infinite).varchar2 string.public MEMBER PROCEDURE TO_CLOB(SELF IN PLJSON,
BUF IN OUT NOCOPY CLOB,
SPACES IN BOOLEAN DEFAULT FALSE,
CHARS_PER_LINE IN NUMBER DEFAULT 0,
ERASE_CLOB IN BOOLEAN DEFAULT TRUE)
Serialize the object to a JSON representation and store it in a CLOB.
BUF -
The CLOB in which to store the results.SPACES -
Enable pretty printing by formatting with spaces. Default: false.CHARS_PER_LINE -
Wrap output to a specific number of characters per line. Default: 0 (infinite).ERASE_CLOB -
Whether or not to wipe the storage CLOB prior to serialization. Default: true.public MEMBER FUNCTION PLJSON_VALUE TO_JSON_VALUE()
Convert the object to a pljson_value for use in other methods
of the PL/JSON API.
| PL/JSON | |||||
| SUMMARY: FIELD | TYPE | METHOD | DETAIL: FIELD | TYPE | METHOD | |||||