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

The following example shows examples of how to use the PL/SQL SDK to create and delete buckets using the OCI Object Storage service:
-- ######################
-- ## 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

The following example shows how to use the PL/SQL SDK to store and retrieve objects using the OCI Object Storage service:

-- ##################
-- ## 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

The following example shows how to create and delete stream pools using the PL/SQL SDK:

-- #########################
-- ## 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; 
/