Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose
This package is a PL/SQL package implementing Simple Oracle Document Access (SODA). SODA allows you to use the Oracle Database as a NoSQL document store.
The core abstraction provided by SODA is that of document collections. The DBMS_SODA package allows you to create, list, and delete document collections from PL/SQL, and to
perform CRUD (create, replace, update, delete) operations on documents. All DDL functions are encapsulated within this package.
AUTHID
CURRENT_USER
Constants
Name
Data Type
Value
Content Types
DOC_VARCHAR2
PLS_INTEGER
1
DOC_BLOB
PLS_INTEGER
2
DOC_CLOB
PLS_INTEGER
3
DOC_JSON
PLS_INTEGER
4
Collection Create Modes
CREATE_MODE_DDL
PLS_INTEGER
1
CREATE_MODE_MAP
PLS_INTEGER
2
Data Guide Formats
DATAGUIDE_FORMAT_HIERARCHICAL
PLS_INTEGER
1
DATAGUIDE_FORMAT_FLAT
PLS_INTEGER
2
Data guide Flags
DATAGUIDE_PRETTY
PLS_INTEGER
1
DATAGUIDE_GEOJSON
PLS_INTEGER
2
DATAGUIDE_GATHER_STATS
PLS_INTEGER
4
MV Refresh Constants
MV_REFRESH_ON_STATEMENT
PLS_INTEGER
1
MV_REFRESH_ON_COMMIT
PLS_INTEGER
2
MV_REFRESH_ON_DEMAND
PLS_INTEGER
3
Sampling Constnats
SAMPLE_ROW
PLS_INTEGER
1
SAMPLE_BLOCK
PLS_INTEGER
2
Data Types
CREATE OR REPLACE TYPE SODA_Collection_T FORCE
OID '00000000000000000000000000020017'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODACOLL_LIB
(...;
/
CREATE OR REPLACE TYPE SYS.SODA_CollName_List_T FORCE
AS TABLE OF NVARCHAR2(255);
/
CREATE OR REPLACE TYPE SODA_Document_T FORCE
OID '00000000000000000000000000020018'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODADOC_LIB
(...;
/
CREATE OR REPLACE TYPE SODA_Operation_T FORCE
OID '00000000000000000000000000020019'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODAOPR_LIB
(...;
/
Dependencies
DBMS_REDEFINITION
JSON_OBJECT_T
DBMS_SODA_ADMIN
PLITBLM
DBMS_SODA_LIB
SODA_COLLECTION_T
DBMS_SODA_UTIL
SODA_COLLNAME_LIST_T
DBMS_UPG_JSON_INT
SODA_DOCUMENT_T
JSON$USER_COLLECTION_METADATA
SODA_OPERATION_T
JSON_ELEMENT_T
Documented
Yes
First Available
18c
Security Model
Owned by SYS with EXECUTE granted to PUBLIC
The Library's recommendation is that you revoke EXECUTE from PUBLIC. Everybody with a valid userID does not need to be able to drop collections.
Copy dependent objects for Online COLLECTION redefinition
dbms_soda.copy_collection_dependents(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
ignore_errors IN BOOLEAN DEFAULT FALSE,
num_errors OUT BINARY_INTEGER);
dbms_soda.create_dualv_collection(
collection_name IN NVARCHAR2,
view_name IN VARCHAR2,
view_schema IN VARCHAR2 DEFAULT NULL)
RETURN soda_collection_t;
dbms_soda.finish_redef_collection(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
dml_lock_timeout IN BINARY_INTEGER DEFAULT NULL,
omit_constraint_check IN BOOLEAN DEFAULT NULL);
dbms_soda.start_redef_collection(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
copy_vpd_opt IN BINARY_INTEGER DEFAULT sys.dbms_redefinition.cons_vpd_none,
refresh_dep_mviews IN VARCHAR2 DEFAULT 'N');
dbms_soda.sync_interim_collection(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
omit_constraint_check IN BOOLEAN DEFAULT NULL);