Oracle DBMS_DBFS_CONTENT_SPI
Version 12.2.0.1

General Information
Library Note Morgan's Library Page Header
"I spent my entire adult life looking out for the well-being, the training, the equipping of the troops for whom I was responsible. I will not be lectured about what our military needs by a five-deferment draft dodger,"
~ Sen. Tammy Duckworth
Purpose Private types and constants tore providers must conform to . The SPI is not a client-side API and serves as a private contract between the implementation of the DBFS API and various stores that wish to be pluggable into it.

The DBFS API defines client-visible behavior (normal and exceptional) of various store operations, while allowing different stores to implement as rich a set of features as they choose. The API allows stores to self-describe their capabilities and allows intelligent client applications to tune their behavior based on these capabilities (rather than hard-code logic specific to stores identified by name or by implementation).

The SPI has 2 space usage methods: "spaceUsage()" and "spaceUsageFull()". The difference between the two is that the latter function should implement a "bulk" API---i.e. the ability to query and aggregate space usage information for all stores specified as the "propvalue" fields of the "store_names" property list (the other fields of the property list can be ignored). If the SPI does not support the "bulk" aggregation API, the DBFS API will itself do the necessary iteration and aggregation, however, at the risk of inaccurate data due to potential double-counting.
AUTHID DEFINER
Dependencies STANDARD only
Documented No
First Available Not known but in 11gR2
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/dbmscapi.sql
Subprograms
 
CHECKACCESS
  dbms_dbfs_content_spi.checkAccess(
 
 
CREATEDIRECTORY
  dbms_dbfs_content_spi.createDirectory(
store_name in            varchar2,
path       in            varchar2,
properties in out nocopy dbms_dbfs_content_properties_t,
prop_flags in            integer,
recurse    in            integer,
ctx        in            dbms_dbfs_content_context_t);
 
 
CREATEFILE
  dbms_dbfs_content_spi.createFile(
store_name in            varchar2,
path       in            varchar2,
properties in out nocopy dbms_dbfs_content_properties_t,
content in    out nocopy blob,
prop_flags in            integer,
ctx        in            dbms_dbfs_content_context_t);
 
 
CREATEGETATTRVIEW
Providers that are willing/able to create a fastpath lookup view (whose structure conforms to the schema of "dbms_fuse.dir_entry_t") should define "createGetattrView()" and "dropGetattrView()" methods, and create/drop the underlying view as needed. dbms_dbfs_content_spi.createGetAttrView(
store_name in         varchar2,
ctx        in         dbms_dbfs_content_context_t,
view_name  out nocopy varchar2);
 
 
CREATELINK
  dbms_dbfs_content_spi.createLink(
store_name in            varchar2,
srcPath    in            varchar2,
dstPath    in            varchar2,
properties in out nocopy dbms_dbfs_content_properties_t,
prop_flags in            integer,
ctx        in            dbms_dbfs_content_context_t);
 
 
CREATEREFERENCE
  dbms_dbfs_content_spi.createReference(
store_name in            varchar2,
srcPath    in            varchar2,
dstPath    in            varchar2,
properties in out nocopy dbms_dbfs_content_properties_t,
prop_flags in            integer,
ctx        in            dbms_dbfs_content_context_t);
 
 
DELETECONTENT
  dbms_dbfs_content_spi.deleteContent(
 
 
DELETEDIRECTORY
  dbms_dbfs_content_spi.deleteDirectory(
 
 
DELETEFILE
  dbms_dbfs_content_spi.deleteFile(
 
 
DROPGETATTRVIEW
Drop a Get Attributes view dbms_dbfs_content_spi.dropGetAttrView(
store_name in         varchar2,
view_name  out nocopy varchar2);
 
 
GETFEATURES
  dbms_dbfs_content_spi.getFeatures(store_name in varchar2)
return integer;
 
 
GETPATH
Oveload 1 dbms_dbfs_content_spi.getPath(
 
Oveload 2 dbms_dbfs_content_spi.getPath(
 
Oveload 3 dbms_dbfs_content_spi.getPath(
 
 
GETPATHBYSTOREID
Lookup pathnames by (store_name, std_guid) or (store_mount, std_guid) tuples dbms_dbfs_content_spi.getPathByStoreID(
store_name in varchar2,
guid       in integer)
return varchar2;
 
 
GETPATHNOWAIT
  dbms_dbfs_content_spi.getPathNoWait(
 
 
GETSTOREID
Returns a provider specific store identifier dbms_dbfs_content_spi.getStoreID( store_name in varchar2) return number;
 
 
GETVERSION
Returns the version of a store based on a standard naming convention dbms_dbfs_content_spi.getVersion(getVersion(store_name in varchar2) return varchar2;
 
 
ISPATHLOCKED
  dbms_dbfs_content_spi.isPathLocked(
 
 
LIST
  dbms_dbfs_content_spi.list(
 
 
LISTCURSOR
  dbms_dbfs_content_spi.listCursor(
 
 
LOCKPATH
Overload 1 dbms_dbfs_content_spi.lockpath(
 
Overload 2 dbms_dbfs_content_spi.lockPath(
 
 
MOVEPATH
  dbms_dbfs_content_spi.movePath(
 
 
PURGEALL
  dbms_dbfs_content_spi.purgeAll(
 
 
PURGEPATH
  dbms_dbfs_content_spi.purgePath(
 
 
PUTPATH
Overload 1 dbms_dbfs_content_spi.putPath(
 
Overload 2 dbms_dbfs_content_spi.putPath(
 
 
RENAMEPATH
  dbms_dbfs_content_spi.renamePath(
 
 
RESTOREALL
  dbms_dbfs_content_spi.restoreAll(
 
 
RESTOREPATH
  dbms_dbfs_content_spi.restorePath(
 
 
SEARCH
  dbms_dbfs_content_spi.search(
 
 
SETPATH
  dbms_dbfs_content_spi.
 
 
SPACEUSAGE
Clients can query filesystem space usage statistics via the"spaceUsage()" method. Store providers, in turn, are expected to support at least the "spaceUsage()" method for their stores (and to make a best effort determination of space usage---esp. if the store consists of multiple tables/indexes/lobs, etc. scattered across multiple tablespaces/datafiles/disk-groups, etc.).

Overload 1
dbms_dbfs_content_spi.spaceUsage(
store_name in  varchar2,
blksize    out integer,
tbytes     out integer,
fbytes     out integer,
nfile      out integer,
ndir       out integer,
nlink      out integer,
nref       out integer);
 
Overload 2 dbms_dbfs_content_spi.spaceUsage(
store_name  in  varchar2,
blksize     out integer,
tbytes      out integer,
fbytes      out integer,
nfile       out integer,
ndir        out integer,
nlink       out integer,
nref        out integer,
useEstimate in  integer);
 
 
SPACEUSAGEFULL
Similar to SpaceUsage this proc should implement a "bulk" API---i.e. the ability to query and aggregate space usage information for all stores specified as the "propvalue" fields of the "store_names" property list (the other fields of the property list can be ignored).

Overload 1
dbms_dbfs_content_spi.spaceUsageFull(
store_names in dbms_dbfs_content_properties_t,
blksize out integer,
tbytes out integer,
fbytes out integer,
nfile out integer,
ndir out integer,
nlink out integer,
nref out integer);
 
Overload 2 dbms_dbfs_content_spi.spaceUsageFull(
store_names in dbms_dbfs_content_properties_t,
blksize out integer,
tbytes out integer,
fbytes out integer,
nfile out integer,
ndir out integer,
nlink out integer,
nref out integer,
useEstimate in integer);
 
 
UNLOCKPATH
Overload 1 dbms_dbfs_content_spi.unlockPath(
 
Overload 2 dbms_dbfs_content_spi.unlockPath(
 

Related Topics
Built-in Functions
Built-in Packages
DBMS_DBFS_CONTENT
DBMS_DBFS_CONTENT_ADM
DBMS_DBFS_HS
DBMS_DBFS_SFS
DBMS_DBFS_SFS_ADMIN
What's New In 12cR1
What's New In 12cR2

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2017 Daniel A. Morgan All Rights Reserved