ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
Provides an interface for dataguide operations for those working with Java Script Object Notation inside the Oracle database.
Be sure to also learn about the new function JSON_DATAGUIDE that takes as its input a table column of JSON data and, for each JSON document in the column, returns a flat data guide as a CLOB.
Add virtual columns based on dataguide information. On a shard catalog server no virtual column is added.
Overload 1
dbms_json.add_virtual_columns(
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
dataguide IN CLOB,
resolveNameConflicts IN BOOLEAN DEFAULT FALSE,
colNamePrefix IN VARCHAR2
DEFAULT NULL,
mixedCaseColumns IN BOOLEAN DEFAULT TRUE);
PRAGMA SUPPLEMENTAL_LOG_DATA(add_virtual_columns, AUTO_WITH_COMMIT);
dbms_json.add_virtual_columns(
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
frequency IN NUMBER DEFAULT 0,
hidden IN BOOLEAN DEFAULT FALSE);
PRAGMA SUPPLEMENTAL_LOG_DATA(add_virtual_columns, AUTO_WITH_COMMIT);
Receives a table, and column and, if the column is of data type BLOB with an IS JSON FORMAT OSON constraint, converts the column to JSON type
Check the corresponding BLOB2JSON procedure in DBMS_JSON_INT and it is clear that this procedure's parameters are wrong and this will not work until Oracle patches it correcting the missing owner parameter.
dbms_json.blob_to_json(
tablename IN VARCHAR2,
columnname IN VARCHAR2,
throwError IN BOOLEAN DEFAULT TRUE);
PRAGMA SUPPLEMENTAL_LOG_DATA(blob_to_json, AUTO_WITH_COMMIT);
exec xdb.dbms_json.blob_to_json('B2JTEST', 'TESTCOL', TRUE);
BEGIN xdb.dbms_json.blob_to_json('B2JTEST', 'TESTCOL', TRUE); END;
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at "XDB.DBMS_JSON_INT", line 238
ORA-06512: at "XDB.DBMS_JSON", line 1986
ORA-06512: at line 1
Create a view with relational columns and scalar JSON fields as specified in a dataguide
dbms_json.create_view(
viewname IN VARCHAR2,
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
dataguide IN CLOB
resourcePath IN VARCHAR2 DEFAULT NULL,
materialize IN BOOLEAN DEFAULT FALSE,
mvRefreshMode IN NUMBER DEFAULT MV_REFRESH_ON_STATEMENT,
path IN VARCHAR2 DEFAULT '$',
resolveNameConflicts IN BOOLEAN DEFAULT FALSE,
colNamePrefix IN VARCHAR2 DEFAULT NULL,
mixedCaseColumns IN BOOLEAN DEFAULT TRUE);
PRAGMA SUPPLEMENTAL_LOG_DATA(create_view, AUTO_WITH_COMMIT);
Create a view based on dataguide information, with relational columns, top level scalar types, and fully expanded subtree under a given path.
When running on the shard catalog server this raises an error stating that the dataguide is empty.
dbms_json.create_view_on_path(
viewname IN VARCHAR2,
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
path IN VARCHAR2,
frequency IN NUMBER DEFAULT 0
resourcePath IN VARCHAR2 DEFAULT NULL,
materialize IN BOOLEAN DEFAULT FALSE,
mvRefreshMode IN NUMBER DEFAULT MV_REFRESH_ON_STATEMENT);
PRAGMA SUPPLEMENTAL_LOG_DATA(create_view_on_path, AUTO_WITH_COMMIT);
Get JSON dataguide from a dataguide enabled JSON search index. When running on the shard catalog server returns NULL.
Overload 1
dbms_json.get_index_dataguide(
owner IN VARCHAR2,
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
format IN NUMBER,
pretty IN NUMBER DEFAULT 0)
RETURN IN CLOB;
SELECT dbms_json.get_index_dataguide('UWJSON', 'PO', dbms_json.format_hierarchical, dbms_json.pretty)
FROM DUAL;
Overload 2
dbms_json.get_index_dataguide(
tablename IN VARCHAR2,
jcolName IN VARCHAR2,
format IN NUMBER,
pretty IN NUMBER DEFAULT 0)
RETURN CLOB;
SELECT dbms_json.get_index_dataguide('UWJSON', 'PO', dbms_json.format_hierarchical, dbms_json.pretty)
FROM DUAL;
Similar to create_view, but returns
the creating view DDL but does not execute the DDL and create the view
dbms_json.get_view_sql(
viewName IN VARCHAR2,
tableName IN VARCHAR2,
jcolName IN VARCHAR2,
dataguide IN CLOB,
materialize IN BOOLEAN DEFAULT FALSE,
mvRefreshMode IN NUMBER DEFAULT MV_REFRESH_ON_STATEMENT,
path IN VARCHAR2 DEFAULT '$',
resolveNameConflicts IN BOOLEAN DEFAULT FALSE,
colNamePrefix IN VARCHAR2 DEFAULT NULL,
mixedCaseColumns IN BOOLEAN DEFAULT TRUE)
RETURN CLOB;
PRAGMA SUPPLEMENTAL_LOG_DATA(get_view_sql, READ_ONLY);
Set the preferred name for a view column or a virtual column creating using a dataguide. This has no effect when running on the shard catalog server.
dbms_json.rename_column(
tablename IN VARCHAR2,
jcolname IN VARCHAR2,
path IN VARCHAR2,
type IN NUMBER,
preferred_name IN VARCHAR2);
PRAGMA SUPPLEMENTAL_LOG_DATA(rename_column, AUTO);