Getting started with DBMS_CLOUD and Oracle AI Database 26ai

Installing DBMS_CLOUD

I have previously documented how to install and configure Oracle DBMS_CLOUD for Oracle Database 19c, which you can find here.

In this blog post I will share the steps required for Oracle AI Database 26ai, you can find the Oracle AI Database 26ai documentation here.

In the example below, the DBMS_CLOUD packages are installed, and the log files are configured to be created in the /tmp directory with the prefix dbms_cloud_install:

Create the C##CLOUD$SERVICE schema using.

$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl \
-u sys/<sys password> -force_pdb_mode 'READ WRITE' \
-b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ \
-l /tmp catclouduser.sql

The DBMS_CLOUD packages are installed into the C##CLOUD$SERVICE schema using the following:

$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl \
-u sys/<sys password> -force_pdb_mode 'READ WRITE' \
-b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ \
-l /tmp dbms_cloud_install.sql

To validate, login to the ROOT container and run the following check:

COLUMN con_id FORMAT 999
COLUMN owner FORMAT A16
COLUMN object_name FORMAT A30
COLUMN status FORMAT A10
COLUMN sharing FORMAT A20
COLUMN oracle_maintained FORMAT A20
SET LINESIZE 200;
select con_id, owner, object_name, status, sharing, oracle_maintained
from cdb_objects
where object_name like 'DBMS_CLOUD%'
/
exit

Example output

And login into the Pluggable Database (PDB) and run the following check:

COLUMN owner FORMAT A16
COLUMN object_name FORMAT A30
COLUMN status FORMAT A10
COLUMN sharing FORMAT A20
COLUMN oracle_maintained FORMAT A20
SET LINESIZE 200;
select owner, object_name, status, sharing, oracle_maintained
from dba_objects
where object_name like 'DBMS_CLOUD%'
/
exit

Example output

Prior to Oracle AI Database 26ai, every Oracle databases required a client wallet to be configured to avoid an ORA-29024 error message.

ERROR at line 1:
ORA-29273: HTTP request failed
ORA-29024: Certificate validation failure
ORA-06512: at “SYS.UTL_HTTP”, line 380
ORA-06512: at “SYS.UTL_HTTP”, line 1189
ORA-06512: at line 8
Help: https://docs.oracle.com/error-help/db/ora-29273/

With Oracle AI Database 26ai we no longer need to create an Oracle wallet as the database can now utilise the operating system certificate store instead.

url_test.sql
set serveroutput on;
declare
l_url varchar2(100) := 'https://www.ronekins.com';
l_request utl_http.req;
l_response utl_http.resp;
l_buffer varchar2(32766);
begin
l_request := utl_http.begin_request(l_url);
-- get Response
l_response := utl_http.get_response(l_request);
dbms_output.put_line('Test :' || l_url);
dbms_output.put_line('Response status code: ' || l_response.status_code);
-- Loop through the response.
begin
loop
utl_http.read_text(l_response, l_buffer, 32766);
dbms_output.put_line (l_buffer); exit;
end loop;
exception
when utl_http.end_of_body then
utl_http.end_response(l_response);
end;
end;
/
exit

Using the above we can see https://ronekins.com works just fine.


$ sqlplus / as sysdba @url_test.sql

SQL*Plus: Release 23.26.1.0.0 – Production on Wed Jun 10 16:04:33 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 – Production
Version 23.26.1.0.0
Test :https://www.ronekins.com
Response status code: 200
<!DOCTYPE html>
<html lang=”en-GB”>
<head>
<meta charset=”UTF-8″

PL/SQL procedure successfully completed.
Disconnected from Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 – Production
Version 23.26.1.0.0

Summary

In this blog post I have shared how to install DBMS_CLOUD into Oracle AI Database 26ai, and test website access using UTL_HTTP without the need to first create an Oracle wallet.

In my next post I share how we can access a website which is using a self-signed certificate, by installing the certificate into the servers certificate store.

Leave a Reply

Create a website or blog at WordPress.com

Up ↑

Discover more from Ron Ekins' - Oracle Technology, DevOps and Kubernetes Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading