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 999COLUMN owner FORMAT A16COLUMN object_name FORMAT A30COLUMN status FORMAT A10COLUMN sharing FORMAT A20COLUMN oracle_maintained FORMAT A20SET LINESIZE 200;select con_id, owner, object_name, status, sharing, oracle_maintained from cdb_objects where object_name like 'DBMS_CLOUD%'/exit

And login into the Pluggable Database (PDB) and run the following check:
COLUMN owner FORMAT A16COLUMN object_name FORMAT A30COLUMN status FORMAT A10COLUMN sharing FORMAT A20COLUMN oracle_maintained FORMAT A20SET LINESIZE 200;select owner, object_name, status, sharing, oracle_maintained from dba_objects where object_name like 'DBMS_CLOUD%'/exit

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