Examples
This section contains examples of how to use the PL/SQL SDK.
This section contains examples of how to use the PL/SQL SDK.
Working with Object Storage Buckets
-- ######################
-- ## Create bucket ##
-- ######################
set serveroutput on
declare
response_body dbms_cloud_oci_object_storage_bucket_t;
response dbms_cloud_oci_obs_object_storage_create_bucket_response_t;
bucket_details dbms_cloud_oci_object_storage_create_bucket_details_t;
json_obj json_object_t;
l_keys json_key_list;
begin
bucket_details := dbms_cloud_oci_object_storage_create_bucket_details_t();
bucket_details.name := 'bucketname';
bucket_details.compartment_id := 'compartment_OCID';
response := dbms_cloud_oci_obs_object_storage.create_bucket(
namespace_name => 'namespace-string',
opc_client_request_id => 'random-request-id',
create_bucket_details => bucket_details,
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
response_body := response.response_body;
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- Response status code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
-- Response body
dbms_output.put_line(response_body.namespace);
dbms_output.put_line(response_body.name);
dbms_output.put_line(response_body.compartment_id);
dbms_output.put_line(response_body.metadata.to_string());
dbms_output.put_line(response_body.created_by);
dbms_output.put_line(response_body.time_created);
dbms_output.put_line(response_body.approximate_count);
dbms_output.put_line(response_body.approximate_size);
dbms_output.put_line(response_body.etag);
dbms_output.put_line(response_body.public_access_type);
dbms_output.put_line(response_body.storage_tier);
dbms_output.put_line(response_body.freeform_tags.to_string());
dbms_output.put_line(response_body.defined_tags.to_string());
dbms_output.put_line(response_body.kms_key_id);
dbms_output.put_line(response_body.object_lifecycle_policy_etag);
dbms_output.put_line(response_body.id);
end;
/
-- ####################
-- ## Delete bucket ##
-- ####################
set serveroutput on
declare
response dbms_cloud_oci_obs_object_storage_delete_bucket_response_t;
json_obj json_object_t;
l_keys json_key_list;
begin
response := dbms_cloud_oci_obs_object_storage.delete_bucket(
namespace_name => 'namespace-string',
bucket_name => 'bucketname',
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- Response status code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
end;
/
Working with Object Storage Objects 🔗
-- ##################
-- ## Put Object ##
-- ##################
declare
my_blob_data blob;
response dbms_cloud_oci_obs_object_storage_put_object_response_t;
json_obj json_object_t;
l_keys json_key_list;
begin
/* Some processing producing BLOB data and populating my_blob_data */
response := dbms_cloud_oci_obs_object_storage.put_object(
namespace_name => 'namespace-string',
bucket_name => 'bucketname',
object_name => 'objectname',
put_object_body => my_blob_data,
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- Response status code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
end;
/
-- ##################
-- ## Get Object ##
-- ##################
declare
response dbms_cloud_oci_obs_object_storage_get_object_response_t;
response_body blob;
json_obj json_object_t;
l_keys json_key_list;
begin
response := dbms_cloud_oci_obs_object_storage.get_object(
namespace_name => 'namespace-string',
bucket_name => 'bucketname',
object_name => 'objectname',
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
response_body := response.response_body;
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- Response status code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
-- Response body
dbms_output.put_line('Contents: ' || UTL_RAW.cast_to_varchar2(response_body));
end;
/
Listing Compartments 🔗
The following example shows how to list compartments using the PL/SQL SDK:-- ###################### -- ## ListCompartments ## -- ###################### set serveroutput on declare response_body dbms_cloud_oci_identity_compartment_tbl; response dbms_cloud_oci_id_identity_list_compartments_response_t; json_obj json_object_t; l_keys json_key_list; begin response := dbms_cloud_oci_id_identity.list_compartments( compartment_id => 'compartment_OCID', limit => 2, credential_name => 'OCI_KEY_CRED', region => 'region-identifier'); response_body := response.response_body; -- Response Headers dbms_output.put_line('Headers: ' || CHR(10) ||'------------'); json_obj := response.headers; l_keys := json_obj.get_keys; for i IN 1..l_keys.count loop dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string); end loop; -- Response status code dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code); dbms_output.put_line(CHR(10)); for i in 1 .. response_body.count loop dbms_output.put_line(response_body(i).id); dbms_output.put_line(response_body(i).compartment_id); dbms_output.put_line(response_body(i).name); dbms_output.put_line(response_body(i).description); dbms_output.put_line(response_body(i).time_created); dbms_output.put_line(response_body(i).lifecycle_state); dbms_output.put_line(response_body(i).inactive_status); dbms_output.put_line(response_body(i).is_accessible); dbms_output.put_line(response_body(i).freeform_tags.to_string()); dbms_output.put_line(response_body(i).defined_tags.to_string()); end loop; end; /
Working With Streams 🔗
-- #########################
-- ## Create stream pool ##
-- #########################
set serveroutput on
declare
response_body dbms_cloud_oci_streaming_stream_pool_t;
response dbms_cloud_oci_st_stream_admin_create_stream_pool_response_t;
stream_pool_details dbms_cloud_oci_streaming_create_stream_pool_details_t;
json_obj json_object_t;
l_keys json_key_list;
begin
stream_pool_details := dbms_cloud_oci_streaming_create_stream_pool_details_t();
stream_pool_details.name := 'streampoolname';
stream_pool_details.compartment_id := 'compartment_OCID';
response := dbms_cloud_oci_st_stream_admin.create_stream_pool(
create_stream_pool_details => stream_pool_details,
opc_request_id => 'random-request-id',
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
response_body := response.response_body;
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
-- Response status code
dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || response.status_code);
dbms_output.put_line(CHR(10));
-- Response body
dbms_output.put_line('id: ' || response_body.id);
dbms_output.put_line('name: ' || response_body.name);
dbms_output.put_line('compartment_id: ' || response_body.compartment_id);
dbms_output.put_line('lifecycle_state: ' || response_body.lifecycle_state);
for i in 1 .. response_body.private_endpoint_settings.nsg_ids.count loop
dbms_output.put_line(response_body.private_endpoint_settings.nsg_ids(i));
end loop;
end;
/
-- #########################
-- ## Delete stream pool ##
-- #########################
set serveroutput on
declare
response dbms_cloud_oci_st_stream_admin_delete_stream_pool_response_t;
json_obj json_object_t;
l_keys json_key_list;
begin
response := dbms_cloud_oci_st_stream_admin.delete_stream_pool(
stream_pool_id => 'stream-pool-ocid',
credential_name => 'OCI_KEY_CRED',
region => 'region-identifier');
-- Response Headers
dbms_output.put_line('Headers: ' || CHR(10) ||'------------');
json_obj := response.headers;
l_keys := json_obj.get_keys;
for i IN 1..l_keys.count loop
dbms_output.put_line(l_keys(i)||':'||json_obj.get(l_keys(i)).to_string);
end loop;
end;
/