PROCEDURE ADD_TO_SHARE
(
share_name IN VARCHAR2,
table_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
share_table_name IN VARCHAR2 := NULL,
share_schema_name IN VARCHAR2 := NULL,
object_metadata IN SYS.JSON_OBJECT_T := NULL,
replace_existing IN BOOLEAN := FALSE,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
table_name |
|
owner |
|
share_table_name |
|
share_schema_name |
|
object_metadata |
|
replace_existing |
|
share_owner |
|
auto_commit |
PROCEDURE ASSERT_SHAREABLE_OBJECT
(
object_name IN VARCHAR2,
object_owner IN VARCHAR2 := NULL
);
object_name |
|
object_owner |
PROCEDURE ASSERT_SHARING_ID
(
sharing_id IN OUT NOCOPY VARCHAR2,
out_sharing_id_type IN OUT NOCOPY VARCHAR2
);
sharing_id |
|
out_sharing_id_type |
FUNCTION CAN_CREATE_SHARE
RETURN NUMBER;
SQL> select dbms_share.can_create_share from dual;
CAN_CREATE_SHARE
----------------
0
SQL> exec dbms_share.enable_schema('admin')
PL/SQL procedure successfully completed.
SQL> select dbms_share.can_create_share from dual;
CAN_CREATE_SHARE
----------------
1
PROCEDURE CLEAR_RECIPIENT_EVENTS
(
recipient_name IN VARCHAR2,
from_time IN TIMESTAMP WITH TIME ZONE := NULL,
to_time IN TIMESTAMP WITH TIME ZONE := NULL,
recipient_owner IN VARCHAR2 := NULL
);
recipient_name |
|
from_time |
|
to_time |
|
recipient_owner |
PROCEDURE CLEAR_SHARE_EVENTS
(
share_name IN VARCHAR2,
from_time IN TIMESTAMP WITH TIME ZONE := NULL,
to_time IN TIMESTAMP WITH TIME ZONE := NULL,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
from_time |
|
to_time |
|
share_owner |
PROCEDURE CREATE_BEARER_TOKEN_CREDENTIAL
(
credential_name IN VARCHAR2,
bearer_token IN VARCHAR2 := NULL,
token_endpoint IN VARCHAR2 := NULL,
client_id IN VARCHAR2 := NULL,
client_secret IN VARCHAR2 := NULL,
token_refresh_rate IN PLS_INTEGER := 3600
);
credential_name |
|
bearer_token |
|
token_endpoint |
|
client_id |
|
client_secret |
|
token_refresh_rate |
SQL> exec dbms_share.create_bearer_token_credential('MY_FIXED_CREDENTIAL', 'FF42322D27D4C2DEE05392644664351E')
PL/SQL procedure successfully completed.
SQL> select username from user_credentials where credential_name = 'MY_FIXED_CREDENTIAL';
USERNAME
------------------------------------------------------------------------------------------------------------------------
BEARER_TOKEN
SQL> BEGIN
2 dbms_share.create_bearer_token_credential(
3 credential_name=>'MY_RENEWABLE_CREDENTIAL',
4 token_endpoint=>'https://myserver/ords/share_provider/oauth/token',
5 client_id=>'VXGQ_44s6qJ-K4WHUNM2yQ..',
6 client_secret=>'y9ddppgwEmZl7adDHFQndw..');
7 END;
8 /
PL/SQL procedure successfully completed.
SQL> select credential_name, username from user_credentials where credential_name LIKE 'MY_RENEWABLE_CREDENTIAL%';
CREDENTIAL_NAME USERNAME
------------------------------------------ -------------------------------------
MY_RENEWABLE_CREDENTIAL BEARER_TOKEN
MY_RENEWABLE_CREDENTIAL$TOKEN_REFRESH_CRED VXGQ_44s6qJ-K4WHUNM2yQ..
PROCEDURE CREATE_CLOUD_STORAGE_LINK
(
storage_link_name IN VARCHAR2,
uri IN VARCHAR2,
owner IN VARCHAR2 := NULL,
metadata IN SYS.JSON_OBJECT_T := NULL,
auto_commit IN BOOLEAN := TRUE
);
storage_link_name |
|
uri |
|
owner |
|
metadata |
|
auto_commit |
SQL> BEGIN
2 dbms_share.create_cloud_storage_link(
3 'MY_SHARE_STORAGE',
4 'https://objectstorage.../n/abcdef/b/my_bucket/o' );
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> select storage_link_name from user_lineage_cloud_storage_links;
STORAGE_LINK_NAME
----------------------------------------------------------------------------------------
MY_SHARE_STORAGE
PROCEDURE CREATE_OR_REPLACE_CLOUD_STORAGE_LINK
(
storage_link_name IN VARCHAR2,
uri IN VARCHAR2,
owner IN VARCHAR2 := NULL,
metadata IN SYS.JSON_OBJECT_T := NULL,
auto_commit IN BOOLEAN := TRUE
);
storage_link_name |
|
uri |
|
owner |
|
metadata |
|
auto_commit |
PROCEDURE CREATE_OR_REPLACE_SHARE_RECIPIENT
(
recipient_name IN VARCHAR2,
description IN VARCHAR2 := NULL,
recipient_owner IN VARCHAR2 := NULL,
email IN VARCHAR2 := NULL,
sharing_id IN VARCHAR2 := NULL
);
recipient_name |
|
description |
|
recipient_owner |
|
email |
|
sharing_id |
PROCEDURE CREATE_SHARE
(
share_name IN VARCHAR2,
share_type IN VARCHAR2 := SHARE_TYPE_VERSIONED,
storage_link_name IN VARCHAR2 := NULL,
storage_link_owner IN VARCHAR2 := NULL,
description IN VARCHAR2 := NULL,
public_description IN VARCHAR2 := NULL,
configuration IN SYS.JSON_OBJECT_T := NULL,
force_create IN BOOLEAN := FALSE,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE,
log_level IN PLS_INTEGER := LOG_LEVEL_BASIC,
run_storage_tests IN BOOLEAN := TRUE
);
share_name |
|
share_type |
|
storage_link_name |
|
storage_link_owner |
|
description |
|
public_description |
|
configuration |
|
force_create |
|
share_owner |
|
auto_commit |
|
log_level |
|
run_storage_tests |
|
PROCEDURE CREATE_SHARE_RECIPIENT
(
recipient_name IN VARCHAR2,
description IN VARCHAR2 := NULL,
recipient_owner IN VARCHAR2 := NULL,
email IN VARCHAR2 := NULL,
sharing_id IN VARCHAR2 := NULL
);
recipient_name |
|
description |
|
recipient_owner |
|
email |
|
sharing_id |
PROCEDURE DROP_CLOUD_STORAGE_LINK
(
storage_link_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := TRUE
);
storage_link_name |
|
owner |
|
auto_commit |
PROCEDURE DROP_RECIPIENT
(
recipient_name IN VARCHAR2,
owner IN VARCHAR2 := NULL
);
recipient_name |
|
owner |
PROCEDURE DROP_SHARE
(
share_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
destroy_objects IN BOOLEAN := TRUE
);
share_name |
|
share_owner |
|
destroy_objects |
PROCEDURE DROP_SHARE_LINK_VIEW
(
view_name IN VARCHAR2,
view_owner IN VARCHAR2 := NULL
);
view_name |
|
view_owner |
PROCEDURE DROP_SHARE_VERSION
(
share_name IN VARCHAR2,
share_version IN NUMBER,
destroy_objects IN BOOLEAN := TRUE,
force_drop IN BOOLEAN := FALSE,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
share_version |
|
destroy_objects |
|
force_drop |
|
share_owner |
PROCEDURE DROP_SHARE_VERSIONS
(
share_name IN VARCHAR2,
from_share_version IN NUMBER,
to_share_version IN NUMBER,
destroy_objects IN BOOLEAN := TRUE,
force_drop IN BOOLEAN := FALSE,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
from_share_version |
|
to_share_version |
|
destroy_objects |
|
force_drop |
|
share_owner |
PROCEDURE DROP_UNUSED_SHARE_VERSIONS
(
share_name IN VARCHAR2,
destroy_objects IN BOOLEAN := TRUE,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
destroy_objects |
|
share_owner |
PROCEDURE ENABLE_SCHEMA
(
schema_name IN VARCHAR2,
enabled IN BOOLEAN := TRUE,
privileges IN PLS_INTEGER := NULL
);
schema_name |
|
enable |
|
privileges |
|
FUNCTION GET_ACTIVATION_LINK
(
recipient_name IN VARCHAR2,
recipient_owner IN VARCHAR2 := NULL,
expiration IN PLS_INTEGER := 259200,
invalidate_previous IN BOOLEAN := TRUE
)
RETURN VARCHAR2;
recipient_name |
|
recipient_owner |
|
expiration |
|
invalidate_previous |
SQL> exec dbms_share.create_share_recipient('new_recipient', email=>'anyone@example.com')
PL/SQL procedure successfully completed.
SQL> column PROFILE format A200
SQL> variable sprof varchar2(32767)
SQL> declare
2 profile sys.json_object_t;
3 begin
4 dbms_share.populate_share_profile('NEW_RECIPIENT', profile);
5 :sprof := profile.to_string;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> exec dbms_output.put_line(dbms_share.get_activation_link('NEW_RECIPIENT'))
http://.../ords/_adpshr/delta-sharing/download?key=43BA....YXJlX3Rlc3Q=
PL/SQL procedure successfully completed.
FUNCTION GET_PUBLISHED_IDENTITY
RETURN CLOB;
SQL> declare
2 id_json json_object_t := json_object_t();
3 begin
4 id_json.put('name', 'Demo Publisher');
5 id_json.put('description', 'Documentation Share Provider');
6 id_json.put('contact', 'null@example.com');
7 dbms_share.set_published_identity(id_json);
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select json_query(dbms_share.get_published_identity, '$' pretty) "Published Identity"
2 from dual;
Published Identity-
-------------------------------------------------------------------------------
{
"name" : "Demo Publisher",
"description" : "Documentation Share Provider",
"contact" : "null@example.com"
}
FUNCTION GET_RECIPIENT_PROPERTY
(
recipient_name IN VARCHAR2,
recipient_property IN VARCHAR2,
recipient_owner IN VARCHAR2 := NULL
)RETURN VARCHAR2;
recipient_name |
|
recipient_property |
|
recipient_owner |
FUNCTION GET_SHARE_PROPERTY
(
share_name IN VARCHAR2,
share_property IN VARCHAR2,
share_owner IN VARCHAR2 := NULL
)
RETURN VARCHAR2
share_name |
|
share_property |
|
share_owner |
FUNCTION GET_SHARE_TABLE_PROPERTY
(
share_name IN VARCHAR2,
share_table_name IN VARCHAR2,
share_table_property IN VARCHAR2,
share_schema_name IN VARCHAR2 := NULL,
share_owner IN VARCHAR2 := NULL
)RETURN VARCHAR2;
share_name |
|
share_table_name |
|
share_table_property |
|
share_schema_name |
|
share_owner |
PROCEDURE GRANT_TO_RECIPIENT
(
share_name IN VARCHAR2,
recipient_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
recipient_name |
|
owner |
|
auto_commit |
PROCEDURE POPULATE_SHARE_PROFILE
(
recipient_name IN VARCHAR2,
share_profile IN OUT NOCOPY SYS.JSON_OBJECT_T,
recipient_owner IN VARCHAR2 := NULL
);
recipient_name |
|
share_profile |
|
recipient_owner |
SQL> EXEC DBMS_SHARE.CREATE_SHARE_RECIPIENT('new_recipient', email=>'anyone@example.com')
PL/SQL procedure successfully completed.
SQL> column PROFILE format A200
SQL> variable sprof varchar2(32767)
SQL> declare
2 profile sys.json_object_t;
3 begin
4 dbms_share.populate_share_profile('NEW_RECIPIENT', profile);
5 :sprof := profile.to_string;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select json_query(:sprof, '$' pretty) "PROFILE" from dual;
PROFILE------------------------------------------------------------------------------------------------------------------------
{
"shareCredentialsVersion" : 1,
"endpoint" : "https://.../ords/share_test/_delta_sharing/",
"bearerToken" : "mc7puvhqCpU6xjTOjRdl_w",
"tokenEndpoint" : "https://.../ords/share_test/oauth/token",
"clientID" : "VXGQ_44s6qJ-K4WHUNM2yQ..",
"clientSecret" : "y9ddppgwEmZl7adDHFQndw.."
}
PROCEDURE PUBLISH_SHARE
(
share_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
drop_prior_versions IN BOOLEAN := FALSE,
share_job_dop IN NUMBER := NULL,
share_job_priority IN NUMBER := NULL,
job_class IN VARCHAR2 := 'DEFAULT_JOB_CLASS',
force_job_class IN BOOLEAN := FALSE
);
share_name |
|
share_owner |
|
drop_prior_versions |
|
share_job_dop |
|
share_job_priority |
|
job_class |
|
force_job_class |
PROCEDURE PUBLISH_SHARE_WAIT
(
share_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
drop_prior_versions IN BOOLEAN := FALSE,
share_job_dop IN NUMBER := NULL,
share_job_priority IN NUMBER := NULL,
job_class IN VARCHAR2 := 'DEFAULT_JOB_CLASS',
force_job_class IN BOOLEAN := FALSE
);
share_name |
|
share_owner |
|
drop_prior_versions |
|
share_job_dop |
|
share_job_priority |
|
job_class |
|
force_job_class |
PROCEDURE PURGE_DETACHED_FILES
(
file_pattern IN VARCHAR2 := '%',
credential_name IN VARCHAR2 := NULL,
purge_mode IN PLS_INTEGER := PURGE_DROP,
owner_id IN NUMBER := SYS_CONTEXT('USERENV', 'CURRENT_USERID')
);
PROCEDURE PURGE_DETACHED_FILES
(
purge_job_id IN OUT NOCOPY NUMBER,
file_pattern IN VARCHAR2 := '%',
credential_name IN VARCHAR2 := NULL,
purge_mode IN PLS_INTEGER := PURGE_DROP,
owner_id IN NUMBER := SYS_CONTEXT('USERENV', 'CURRENT_USERID')
);
purge_job_id |
|
file_pattern |
|
credential_name |
|
purge_mode |
|
owner_id |
PROCEDURE REMOVE_FROM_SHARE
(
share_name IN VARCHAR2,
share_table_name IN VARCHAR2,
share_schema_name IN VARCHAR2 := NULL,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
share_table_name |
|
share_schema_name |
|
share_owner |
|
auto_commit |
PROCEDURE RENAME_RECIPIENT
(
old_recipient_name IN VARCHAR2,
new_recipient_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := TRUE
);
old_recipient_name |
|
new_recipient_name |
|
owner |
|
auto_commit |
PROCEDURE RENAME_SHARE
(
old_share_name IN VARCHAR2,
new_share_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := TRUE
);
old_share_name |
|
new_share_name |
|
share_owner |
|
auto_commit |
PROCEDURE RENAME_SHARE_LINK
(
old_name IN VARCHAR2,
new_name IN VARCHAR2,
link_owner IN VARCHAR2 := NULL
);
old_name |
|
new_name |
|
link_owner |
PROCEDURE RENAME_SHARE_SCHEMA
(
share_name IN VARCHAR2,
old_schema_name IN VARCHAR2,
new_schema_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
old_schema_name |
|
new_schema_name |
|
share_owner |
|
auto_commit |
PROCEDURE RENAME_SHARE_TABLE
(
share_name IN VARCHAR2,
share_schema_name IN VARCHAR2,
old_share_table_name IN VARCHAR2,
new_share_table_name IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
share_schema_name |
|
old_share_table_name |
|
new_share_table_name |
|
share_owner |
|
auto_commit |
PROCEDURE REVOKE_FROM_RECIPIENT
(
share_name IN VARCHAR2,
recipient_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := FALSE
);
share_name |
|
recipient_name |
|
owner |
|
auto_commit |
PROCEDURE SET_CURRENT_SHARE_VERSION
(
share_name IN VARCHAR2,
share_version IN NUMBER,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
share_version |
|
share_owner |
PROCEDURE SET_PUBLISHED_IDENTITY
(
metadata IN SYS.JSON_OBJECT_T := NULL
);
metadata |
|
{
"name" : "A sample share provider",
"description" : "Test of share provider metadata",
"contact" : "provider1@example.com".
"schedule" : "New data provided on alternate rainy Fridays"
}
{
"description" : "The Share Provider You Can Trust!(tm)",
"schedule" : null
}
PROCEDURE SET_RECIPIENT_LOG_LEVEL
(
recipient_name IN VARCHAR2,
log_level IN PLS_INTEGER,
recipient_owner IN VARCHAR2 := NULL
);
recipient_name |
|
log_level |
|
recipient_owner |
PROCEDURE SET_SHARE_LOG_LEVEL
(
share_name IN VARCHAR2,
log_level IN PLS_INTEGER,
share_owner IN VARCHAR2 := NULL
);
share_name |
|
log_level |
|
share_owner |
PROCEDURE SET_STORAGE_CREDENTIAL
(
storage_link_name IN VARCHAR2,
credential_name IN VARCHAR2,
owner IN VARCHAR2 := NULL,
check_if_exists IN BOOLEAN := TRUE,
auto_commit IN BOOLEAN := TRUE
);
storage_link_name |
|
credential_name |
|
owner |
|
check_if_exists |
|
auto_commit |
PROCEDURE STOP_JOB
(
share_job_id IN NUMBER,
share_job_owner IN VARCHAR2 := NULL
);
share_job_id |
|
share_job_owner |
PROCEDURE UNPUBLISH_SHARE
(
share_name IN VARCHAR2,
out_share_job_id IN OUT NOCOPY NUMBER,
share_owner IN VARCHAR2 := NULL,
drop_all_versions IN BOOLEAN := FALSE,
restart_versions IN BOOLEAN := FALSE
);
share_name |
|
out_share_job_id |
|
share_owner |
|
drop_all_versions |
|
restart_versions |
|
PROCEDURE UPDATE_DEFAULT_RECIPIENT_PROPERTY
(
recipient_property IN VARCHAR2,
new_value_vc IN VARCHAR2
);
recipient_property |
|
new_value_vc |
PROCEDURE UPDATE_DEFAULT_SHARE_PROPERTY
(
share_property IN VARCHAR2,
new_value IN VARCHAR2
);
share_property |
|
new_value |
PROCEDURE UPDATE_RECIPIENT_PROPERTY
(
recipient_name IN VARCHAR2,
recipient_property IN VARCHAR2,
new_value IN VARCHAR2,
recipient_owner IN VARCHAR2 := NULL
);
recipient_name |
|
recipient_property |
|
new_value |
|
recipient_owner |
PROCEDURE UPDATE_SHARE_JOB_PROPERTY
(
share_job_id IN NUMBER,
share_property IN VARCHAR2,
new_value IN VARCHAR2,
share_job_owner IN VARCHAR2 := NULL
);
share_job_id |
|
share_property |
|
new_value |
|
share_job_owner |
PROCEDURE UPDATE_SHARE_PROPERTY
(
share_name IN VARCHAR2,
share_property IN VARCHAR2,
new_value IN VARCHAR2,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := TRUE
);
share_name |
|
share_property |
|
new_value |
|
share_owner |
|
Auto_commit |
PROCEDURE UPDATE_SHARE_TABLE_PROPERTY
(
share_name IN VARCHAR2,
share_table_name IN VARCHAR2,
share_table_property IN VARCHAR2,
new_value IN VARCHAR2,
share_schema_name IN VARCHAR2 := NULL,
share_owner IN VARCHAR2 := NULL,
auto_commit IN BOOLEAN := TRUE
);
share_name |
|
share_table_name |
|
share_table_property |
|
new_value |
|
share_schema_name |
|
share_owner |
|
Auto_commit |
FUNCTION VALIDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
check_if_exists IN BOOLEAN := TRUE
)
RETURN VARCHAR2;
credential_name |
|
check_if_exists |
PROCEDURE VALIDATE_SHARE_STORAGE
(
storage_link_name IN VARCHAR2,
validation_results IN OUT NOCOPY VARCHAR2,
run_storage_tests IN BOOLEAN := TRUE,
storage_link_owner IN VARCHAR2 := NULL
);
PROCEDURE VALIDATE_SHARE_STORAGE
(
storage_link_name IN VARCHAR2,
run_storage_tests IN BOOLEAN := TRUE,
storage_link_owner IN VARCHAR2 := NULL
);
storage_link_name |
|
validation_results |
|
run_storage_tests |
|
storage_link_owner |
{
"READ":"PASSSED",
"WRITE":"PASSSED",
"CREATE_PAR":"PASSSED",
"DELETE_PAR":"PASSSED",
"DELETE":"PASSSED"
}