Oracle® Database SecureFiles and Large Objects Developer's Guide 11g Release 2 (11.2) Part Number E10645-01 |
|
|
View PDF |
This chapter contains this topic:
The Oracle Database File System Content Store Provider Interface (DBFS Content SPI) describes an internal contract between the implementation of the DBFS Content API (package body DBMS_DBFS_CONTENT
) and individual content providers (whatever package their code lives in).
Since PL/SQL does not allow a compile-time, declarative type-conformation between package signatures, Store providers should informally conform to the SPI, that is, they should implement the SPI via a package which contains all of the methods specified in package DBMS_DBFS_CONTENT_SPI
, with the same method signatures and semantics. Obviously, these provider packages can implement other methods and expose other interfaces -- however, the DBFS Content API itself will not use these interfaces.
Since the Provider SPI is merely a contract specification, there is no package body for DBMS_DBFS_CONTENT_SPI
, and it is not possible to actually invoke any methods using this package.
The SPI references various elements (constants, types, exceptions) defined by the DBFS Content API (package DBMS_DBFS_CONTENT
).
Additionally, there is an almost one-to-one correspondence between the client API exported by the DBFS Content API and the Content API that the DBFS Content API itself expects to work against.
The main distinction in the method-naming conventions is that all path name references are always store-qualified, that is, the notion of mount points and full absolute path names have been normalized and converted to store-qualified path names by the DBFS Content API before it invokes any of the Provider SPI methods.
Since the DBFS Content API and Provider SPI is a one-to-many pluggable architecture, the DBFS Content API uses dynamic SQL to invoke methods in the Provider SPI -- this can lead to runtime errors.
There are no explicit initial or final methods to indicate when the DBFS Content API plugs and unplugs a particular Provider SPI. Provider SPIs must be willing to auto-initialize themselves at any SPI entry point.
See Also:
Oracle Database PL/SQL Packages and Types Reference for details of the DBMS_DBFS_CONTENT_SPI
package.
See the file dbmscapi.sql
for more information.