Restoring a single table from a OCI Cloud Manager backup

Restoring a single table from a OCI Cloud Manager backup

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

When upgrading an Oracle E-Business Suite environment to both 23ai (see here) and leveraging the new, pre-built integration between EBS and Oracle APEX (https://www.linkedin.com/posts/johannes-michler-099892ab_enhanced-integration-with-ebs-122-and-apex-activity-7265427474598043648-lIsr) I accidentally screwed up the FND_ORACLE_USERID table of my testing environment.

To avoid having to do a new Production to test clone to try again I investigated the (quite new) feature of RMAN to restore a single table within my PDB. Fortunately, I had taken a backup using E-Business Suite Cloud manager a few days ago; and since that table doesn't change a lot this backup should have all the relevant data.

Let's see how the restore was performed:

Connecting to OCI Backup Service

Since the instance where the problem occurred was a testing instance that is not regularly backed up and the Cloud Manager tooling, I used to create the backup a few days ago, only created a temporary connection, I first had to setup the OCI Cloud Backup module.

After downloading the module from http://www.oracle.com/technetwork/database/availability/oracle-cloud-backup-2162729.html the first step was to create a installation and configuration of the tool. This is done with the following command:

java -jar oci_install.jar -host https://objectstorage.eu-frankfurt-1.oraclecloud.com -pvtKeyFile johannes.key.pem -pubFingerPrint a0:... -uOCID ocid1.user.oc1..yyyy -tOCID ocid1.tenancy.oc1..zzzz -walletDir /tmp/opc/wallet/ -libDir /tmp/opc/lib/ -bucket TESTD_23a1DB

Connecting to rman

The next step was to verify the backup. In my case since the control file still knew everything about the backup that was straightforward. But in some situations you may have to look into cataloging the backup first as described here.

To verify the backup I ran:

SET ENCRYPTION ON IDENTIFIED BY 'Top-SeCrEt2024' ONLY;
run{
ALLOCATE CHANNEL CH1 TYPE SBT PARMS='SBT_LIBRARY=/tmp/opc/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/23.0.0.0/dbhome_1/dbs/opcCDBTESTD.ora)';
RESTORE DATABASE PREVIEW SUMMARY FROM TAG='TESTD250117_23A1';
RESTORE DATABASE VALIDATE HEADER FROM TAG='TESTD250117_23A1';
RELEASE CHANNEL CH1;
}

Running recover table

After connectivity and access is established the actual restore is very easy. The documentation for this is https://docs.oracle.com/en/database/oracle/oracle-database/23/bradv/rman-recovering-tables-partitions.html#GUID-B8245791-9B75-4AE7-ACE9-D9EDBC2DACC0.

The only challenge I faced was that the command does not allow to be executed in a run block with explicitly allocated channels (see 2105325.1). Instead, I had to configure the device first:

configure channel device type sbt_tape FORMAT '%U' PARMS='SBT_LIBRARY=/tmp/opc/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/23.0.0.0/dbhome_1/dbs/opcCDBTESTD.ora)';
CONFIGURE DEVICE TYPE sbt PARALLELISM 4;

Then I was able to run the actual recover command as follows:

recover table applsys.FND_ORACLE_USERID 
OF PLUGGABLE DATABASE TESTD
UNTIL SCN 12489980593436
auxiliary destination '/u01/install/custom/aux' 
remap table 'APPLSYS'.'FND_ORACLE_USERID':'OLD_FND_ORACLE_USERID';

Let's break this down:

  • First, I had to provide the table to be restored
  • Then it is important to specify the "of pluggable database" clause; otherwise, the command will search for the table in the CDB
  • then you must of course provide the scn or sequence or "as of" date to which you want to recover
  • furthermore, you need to provide a (aux) location where the restore/recovery takes place. In my case for a (small) part of the E-Business suite that location used up to 75 GB of space during the restore
  • Finally, you can remap the table in order to not overwrite the original table. It's also possible to just create a dump file that can then be imported with impdb.

After starting the command, it took roughly 30 minutes where the rman command created a temporary instance, restored the relevant datafiles, recovered the relevant table, dumped it using expdb and finally imported it under a new name into my actual database.

export of the relevant table from the aux database

After the process completed I was able to access my lost/broken data again 🙂

Accessing the remapped and restored table data

Summary

The process allows restoring a single (or some) tables without restoring the entire database. Of course if you "know and plan" before there are more efficient ways as well (flashback or just a create table as select copy). But as a last mean, the approach shown here was very helpful.

Do you need support running your Oracle E-Business Suite? With extensive experience in the Oracle ecosystem, PROMATIS ensures efficient data backup while also optimizing your Oracle Cloud environment strategically.

Restoring a single table from a OCI Cloud Manager backup

Migrating E-Business Suite with Cloud Manager to a private subnet

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

Sometimes during the initial setup of E-Business Suite on OCI the setup is done with a public load balancer subnet for both the Cloud Manager web interface as well as the E-Business Suite environments. Hopefully such scenarios are always at least secured through IP Whitelisting and HTTPS-Only. But still, it may be necessary to improve security later on by migrating to private subnets for those load balancers.

Here are the steps we recently performed in a customer project:

Preparation of Cloud Manager

For the Cloud Manager web access, the following initial steps are required:

  • create a new private subnet in the Virtual Cloud Network
  • add proper routing rules and security lists to the subnet
  • modify the cloud manager subnet security list
  • Modify the linux-firewall of cloud manager:
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=172.31.15.0/24 port port=8081 protocol=tcp accept' --permanent
  • Create a new load balancer in the private subnet and add the backend

The actual "cutover" step then depends on the fact if you can use the same hostname as before:

  1. If you can use an unchanged hostname: change the DNS entry to point to the private IP address
  2. If you have to modify the hostname: re-wire Cloud Manager and IDCS; see Oracle documentation of Cloud Manager for "Update the Oracle E-Business Suite Cloud Manager Load Balancer Fully Qualified Domain Name (FQDN)" https://docs.oracle.com/cd/E18727_01/doc.121/f35809/T679330T679341.htm#cmg_manage_cmlbfqdn

The final step is to retire the old load balancer for the Cloud manager.

Preparation for E-Business Suite environment

The initial steps for E-Business Suite are the same as for the Cloud Manager load balancer. For me it was not necessary to modify the linux firewall; this may depend on the OS of the E-Business Suite Apps Tier though.

In addition to the basic setup, after the access through the new load balancer works, the following steps must be performed:

  1. un-register the environment from Cloud Manager
  2. create a new network profile with the private net
  3. re-register the environment with Cloud Manager


New network profile with private subnet

Summary

Even though the overall procedure to migrate E-Business Suite Cloud Manager environments from a public to a private load balancer subnet is straight forward, the exact steps unfortunately are not officially documented. With the above guidance, the migration as performed by PROMATIS in the projects can be done, though – and I highly recommend doing this for security reasons in all production/important environments.

Restoring a single table from a OCI Cloud Manager backup

Upgrade E-Business Suite Database to 23ai

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

In December 2024 Oracle certified E-Business Suite on 23ai for platforms, where the 23ai database is already available.

Recently I implemented this for a customer that runs E-Business Suite on OCI with Base Database service (single node VM). With this it should be possible to simplify the architecture of NLQ (see here) to not need an additional database; I'll blog on this in a few weeks.

Documentation Pointers

The central documentations for the upgrade are in My Oracle Support as follows:

  • Upgrading Oracle E-Business Suite Release 12.2 with Oracle Database 19c to 23ai on Oracle Base Database Service DB Systems (Doc ID 2999993.1)
  • Installing Oracle Database 23ai Patch Updates for Oracle E-Business Suite Release 12.2 on Oracle Base Database Service 1-Node DB Systems (Doc ID 3019997.1)
  • Interoperability Notes: Oracle E-Business Suite Release 12.2 with Oracle Database 23ai (Doc ID 2962871.1)
  • Database Initialization Parameters for Oracle E-Business Suite Release 12 (Doc ID 396009.1)

When planning the upgrade keep in mind, that first of all a SR to get a Download token has to be created.

ETCC strangeness

As outlined in 2962871.1 it is necessary to apply 29949547 to the 10.1.2 Oracle Home on the Apps Tier; I did this in a patching cycle as follows:

. setenv_patch.sh
cd ~
unzip /mnt/CloudRepo/patches/2025-01-patches/apps_tech/etcc-bundle/LINUX_X86-64/forms/10.1.0.5.0/p29949547_10105_LINUX.zip
cd ~/29949547/
$ORACLE_HOME/OPatch/opatch apply


cd $ORACLE_HOME/procbuilder/lib
make -f ins_procbuilder.mk install
cd $ORACLE_HOME/forms/lib
make -f ins_forms.mk sharedlib
make -f ins_forms.mk install
cd $ORACLE_HOME/reports/lib
make -f ins_reports.mk install

While etcc (january 2025 release) technically checks for that patch for me it didn't complain that the patch is missing. I installed it anyway; since it was definitely not applied.

Issue during dbua upgrade

During the dbcli based upgrade of the database, before the upgrade really started I ran into an error that the instance could not be started from the 23ai Oracle Home:

ORA-01078: failure in processing system parameters

Trying to start the instance manually from the 23ai Oracle Home gave the same error. Drilling down into the pfile created through dbua (/u01/app/oracle/product/23.0.0.0/dbhome_1/dbs/initCDBTESTD.ora) and by eliminating row by row I found the following line to cause the problem:

_bct_public_dba_buffer_size=""

Bringing up the 19c database up again doing

SQL> show parameter "_bct_public_dba_buffer_size";
SQL>

Bringing up the 19c database up again doing

SQL> create pfile='/tmp/pfile_org.ora' from spfile;

File created.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
[oracle@master240125db ~]$ grep bct /tmp/pfile_org.ora
ebscdb._bct_public_dba_buffer_size=2621376#_bct_public_dba_buffer_size

The strange thing is that ebscdb is not a SID that was ever valid on this environment. Eventually this is part of the initial deployment through EBS Cloud Manager.

Anyway the good thing is that the solution is easy:

alter system reset "_bct_public_dba_buffer_size" scope=SPFILE sid='ebscdb';

A second attempt to run dbcli upgrade-database was successful then.

txkPostPDBCreationTasks

After the upgrade there was an error regarding the local_listener parameter in the alert log preventing the registration of the DB. I thus did:

alter system reset local_listener scope=BOTH;

The step regarding txkPostPDBCreationTasks is a bit unclear for me. Especially since the syntax for a single node environment is different between 2999975.1 and 2999993.1. I decided to skip the scan/virtual parameter since the "old" context file also didn't have them:

. txkSetCfgCDB.env dboraclehome=/u01/app/oracle/product/23.0.0.0/dbhome_1
perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl 
-dboraclehome=/u01/app/oracle/product/23.0.0.0/dbhome_1 
-outdir=/u01/app/oracle/product/23.0.0.0/dbhome_1/appsutil/log 
-cdbname=CDBTESTD 
-dbuniquename=CDBTESTD_gs8_fra 
-cdbsid=CDBTESTD 
-pdbsid=TESTD 
-appsuser=apps 
-israc=no 
-dbport=1521 
-generateutlfiledir=yes 
-servicetype=dbsystem

Invalid objects

We had a bunch of invalid objects especially regarding OLAP: The documentation regarding the OLAP support with 23ai for EBS is a bit misleading; for us fortunately the feature is not necessary and we were able to get rid of it by doing what is described in "How to resolve FPA invalid objects after 12.2 upgrade? (Doc ID 2344684.1)".

Furthermore the deprecation/desupport of DBMS_OBFUSCATION_TOOLKIT broke some third party tools; hopefully their vendor can replace the package with DBMS_CRYPTO soon.

We're still chasing some issues with the Payroll module and java class / version incompatibilities; since that module is not used a lot in germany that is just "not nice" but "not a real issue".

Summary

Most of the documentation for the 23ai upgrade is straightforward; except for the above mentioned topics no further issues arose. The EBS instance is working without further issues after the upgrade so far.

I'm looking forward how this makes usage of the EBS (and custom) NLQ functionalities even more straight forward (see over here).

Restoring a single table from a OCI Cloud Manager backup

E-Business Suite with Analytics Publisher 12c and ETCC

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

Recently I described in a blog post how and why you want to migrate to Analytics Publisher 12c for your Oracle E-Business Suite built-in reporting.

After doing so for two different customers we ran into a small bug during patching that is so far unpublished; so here it is described should you run into issues with etcc/OPatch afterwards. Let's have a look at the details:

ETCC failing

After having activated Analytics Publisher 12c by setting s_xdo_runtime_release to xdo12c in the config file and running autoconfig on a subsequent checkMTpatch.sh (after sourcing the RUN or PATCH filesystem) you'll see:

===============================================================================
Oracle Fusion Middleware (FMW) - Web Tier
===============================================================================
Now examining Oracle Fusion Middleware (FMW) - Web Tier.
Inventory load failed... OPatch cannot load inventory for the given Oracle Home.

LsInventorySession failed: Unable to create patchObject
Possible causes are:
ORACLE_HOME/inventory/oneoffs/22290164 is corrupted. /u01/install/APPS/fs1/FMW_Home/webtier/inventory/oneoffs/22290164/etc/config/actions.xml with Invalid index

Cannot confirm bugfixes applied to /u01/install/APPS/fs1/FMW_Home/webtier

Inventory could not be checked. Error code: 73.

Exiting.

Drilling into the logfile of the actual opatch session is not really helpful either:

[oracle@entw241211app01 etcc]$ cat /u01/install/APPS/fs1/FMW_Home/webtier/cfgtoollogs/opatch/opatch2025-01-21_13-50-38PM_1.log
[Jan 21, 2025 1:50:39 PM] OPatch invoked as follows: 'lsinventory -invPtrLoc /u01/install/APPS/fs1/FMW_Home/webtier/oraInst.loc -detail '
[Jan 21, 2025 1:50:39 PM] OUI-67077:
Oracle Home : /u01/install/APPS/fs1/FMW_Home/webtier
Central Inventory : /u01/install/APPS/oraInventory
from : /u01/install/APPS/fs1/FMW_Home/webtier/oraInst.loc
OPatch version : 11.1.0.12.9
OUI version : 11.1.0.11.0
OUI location : /u01/install/APPS/fs1/FMW_Home/webtier/oui
Log file location : /u01/install/APPS/fs1/FMW_Home/webtier/cfgtoollogs/opatch/opatch2025-01-21_13-50-38PM_1.log
[Jan 21, 2025 1:50:39 PM] Patch history file: /u01/install/APPS/fs1/FMW_Home/webtier/cfgtoollogs/opatch/opatch_history.txt
[Jan 21, 2025 1:50:39 PM] OPatch detects the Middleware Home as "/u01/install/APPS/fs1/FMW_Home"
[Jan 21, 2025 1:50:39 PM] Starting LsInventorySession at Tue Jan 21 13:50:39 CET 2025
[Jan 21, 2025 1:50:40 PM]
[Jan 21, 2025 1:50:40 PM] OUI-67028:Inventory load failed... OPatch cannot load inventory for the given Oracle Home.
[Jan 21, 2025 1:50:40 PM] OUI-67073:LsInventorySession failed: Unable to create patchObject
Possible causes are:
ORACLE_HOME/inventory/oneoffs/22290164 is corrupted. /u01/install/APPS/fs1/FMW_Home/webtier/inventory/oneoffs/22290164/etc/config/actions.xml with Invalid index
[Jan 21, 2025 1:50:40 PM] Finishing LsInventorySession at Tue Jan 21 13:50:40 CET 2025
[Jan 21, 2025 1:50:40 PM] Stack Description: java.lang.RuntimeException: Unable to create patchObject
Possible causes are:
ORACLE_HOME/inventory/oneoffs/22290164 is corrupted. /u01/install/APPS/fs1/FMW_Home/webtier/inventory/oneoffs/22290164/etc/config/actions.xml with Invalid index
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.HomeInventoryHelper.getOneOffEntry(HomeInventoryHelper.java:591)
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.OracleHomeInventory.load(OracleHomeInventory.java:2736)
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.LsInventorySession.loadAndPrintInventory(LsInventorySession.java:348)
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.LsInventorySession.process(LsInventorySession.java:308)
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.OPatchSession.main(OPatchSession.java:1825)
[Jan 21, 2025 1:50:40 PM] StackTrace: oracle.opatch.OPatch.main(OPatch.java:718)

Root Cause and Workaround

After a lot of searching (it is not obvious that this was caused by xdo12c if you do the enablement of xdo12c with other patching, e.g. a 12.2.14 upgrade) we found the reason to be modifications in the Classpath set during the etcc session. For us it was:

[oracle@entw241211app01 etcc]$ echo $CLASSPATH
/u01/install/APPS/fs1/EBSapps/comn/util/jdk32/lib/dt.jar:/u01/install/APPS/fs1/EBSapps/comn/util/jdk32/lib/tools.jar:/u01/install/APPS/fs1/EBSapps/comn/util/jdk32/jre/lib/rt.jar:/u01/install/APPS/fs1/EBSapps/comn/shared-libs/ebs-3rdparty/WEB-INF/lib/ebs3rdpartyManifest.jar:/u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/shared-libs/ebs-fmw/WEB-INF/lib/ebsFMWManifest.jar:/u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/shared-libs/ebs-appsborg/WEB-INF/lib/ebsAppsborgManifest.jar:/u01/install/APPS/fs1/FMW_Home/oracle_common/modules/oracle.uix_11.1.1/uix2.jar:/u01/install/APPS/fs1/EBSapps/comn/java/classes:/u01/install/APPS/fs1/EBSapps/10.1.2/forms/java:/u01/install/APPS/fs1/EBSapps/10.1.2/forms/java/frmall.jar:/u01/install/APPS/fs1/EBSapps/10.1.2/jlib/ewt3.jar:/u01/install/APPS/fs1/EBSapps/10.1.2/j2ee/OC4J_BI_Forms/applications/formsapp/formsweb/WEB-INF/lib/frmsrv.jar

The problematic part here is ebs3rdpartyManifest.jar. You can either modify CLASSPATH to be empty or at least remove that entry. Then the operation completes again:


Completed etcc run

Oracle Bug 36625901

Oracle is investigating the cause of this issue in Bug 36625901; I hope one of the upcoming versions of etcc (or opatch) will fix this issue.

Summary

While the above issue is easy to fix it may cause a lot of pain; especially since it is not yet well publicly documented. I hope this blog post helps as a workaround until a permanent solution is available.

Restoring a single table from a OCI Cloud Manager backup

EBS Natural Language Query – Ask your E-Business Suite anything with AI

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

In December, Oracle released a great new feature for Oracle E-Business Suite: Natural Language Query with Oracle Generative AI (see the announcement by Nadia Bendjedou over there: https://blogs.oracle.com/ebstech/post/enabling-natural-language-query-of-ebs-122-using-oracle-generative-ai-now-available ).

In the previous weeks, we looked into this with first customers, and the real-world results turned out at least as impressive as the demos that I've seen from Oracle's side.

In this series of blogs, I'll delve into this topic in more detail – I especially plan to cover:

  • the high-level architecture of the solutions (in this episode),
  • the in-depth steps to install the pre-built solution for Natural Language Query,
  • of course, the (GenAI/LLM) costs that are applicable to the solution (spoiler: there are no additional licensing costs to Oracle; you just have to "pay" for the calls to the LLM),
  • and – finally and probably the most important aspect –, how the blueprint from Oracle can be extended for customizations.

Oracle also documented this in great detail in the "MOS Note 3059877.1: Enabling Natural Language Query of Oracle E-Business Suite (EBS) Release 12.2, Leveraging Oracle Generative AI".

Solution Overview

The basic idea of the solution is to allow end users to ask natural language questions to the E-Business Suite, which can then be answered in tabular form. Some samples I've run for this in real customer cases as well as the according Oracle samples may be:

  • "Show employees with more than 25 years of experience along with their qualification"
  • Q1: "Show me all the outstanding orders for customer XYZ." Q2: "Segment this by the item to be delivered". Q3: "give me the order volume for these orders"
  • "Show the details of the workorders released in the last 2 weeks which are delayed"


Look and Feel of the "Ask Oracle E-Business Suite" Pre-Built APEX page; source: Oracle, see 3059877.1

High Level Architecture

The high-level architecture of the solution is depicted in the following picture:


High level architecture of the solution; source: Oracle, see 3059877.1

The user is presented with an APEX UI to ask questions. This APEX UI can (now) be easily integrated with E-Business Suite including SSO; but that is another story to be told in a separate blog.

This query is then sent to an Oracle 23ai database that knows (at least) the structure of the relevant database tables. Based on this table structure (including foreign keys, description on the relevant columns such as names, data types and comments, and eventually additional hints describing these tables), a "prompt" is prepared that brings this metadata and the actual "natural query" together with the task "craft a SQL statement for me that answers the question". Eventually, this prompt is extended by previous questions of a conversation, in order to allow the incremental refinement of the query.

Finally, this prompt (which just contains metadata; it never contains real data from your EBS tables) is sent to a large language model. We've had good experiences with the Meta Llama 3.1 model with 70b parameters (https://www.llama.com/) hosted on OCI, but that is not really the important part. The LLM then returns an SQL query, which is then executed against the "real" E-Business Suite database to hopefully answer the question answered.

Components involved

As described above, this solution uses the following core components:

  • Oracle APEX 24.1 as the UI to interact with the solution and visualize the results. I'd highly suggest using this to build extensions for your E-Business Suite independently from AI. Have a look at the new integration published in this blog post by Santiago Bastidas in November: https://blogs.oracle.com/ebstech/post/enhanced-integration-with-ebs-122-and-apex-now-available.
  • An Oracle Database 23ai for building the SQL queries and having the pre-built profiles to talk to an LLM. Now you might say: “Wait, but 23ai is not yet available on-premise, so if I run on-premise or on OCI Compute, how can my E-Business Suite database be on the 23ai release?” Fortunately, as you can see in the architecture diagram above, this can be done in a separate database. In many cases, an Autonomous DB (ADB) 23ai "free edition" suffices for this purpose, since the database simply needs to know the metadata and has no "real data". This approach works even if your E-Business Suite hasn’t been updated to the latest and greatest functional and technical releases – while being updated to the latest ECC on 12.2.14 with APEX and a 19c, or even a 23ai Database makes things easier, this approach still works with older releases.
  • A large language model supported by the DBMS_CLOUD_AI package of the 23ai Database; the pre-built solution and most of my tests were done using Meta Llama 3.1 70b running on OCI, but there is room for flexibility there.
  • A bunch of pre-built packages and APEX pages that glues all these components together.
  • And finally, 10 pre-defined "Business Domains" from Oracle that contain "secure" views, including descriptive metadata that allows you to ask your E-Business Suite in the following domains without any development: Discrete Costing, Discrete Manufacturing, Dispute (AR), Logistics, Maintenance, Order Management (OM), Payment (AP), People (HR), Process Manufacturing (GME), Project Manufacturing (PJM).

Security by design

A key aspect when building such a solution is to maintain security. Of course, you don't want your users to be able to e.g.:

  • tell the database to truncate the RA_CUSTOMER_TRX_ALL table;
  • ask the system for the salary of the CEO;
  • query sales details in a foreign legal entity.

To prevent such issues, the solution relies on the following basic principles

  • The queries are executed as a user that just has READ privileges on dedicated NLQ views.
  • Said views are secured with VPD policies that are in line with the regular access privileges given to the user. For this purpose, the Oracle pre-built domains/NLQ views rely on the Enterprise Command Center (ECC) views, which already have VPD policies in place that allow to only show "granted" records.
  • Finally, the solution integrates the standard EBS function security.

Some words on data privacy/GDPR

As you can see in the above high-level architecture, no "real" data is stored within the "Autonomous DB 23ai on OCI" database. Furthermore, no such data is sent to the large language model. By using a model that is hosted within OCI (e.g. in Frankfurt), the "query" entered by the user is also under your control and does e.g. not just go to OpenAI with "whatever privacy" they guarantee.

Summary

The new EBS Natural Language Query functionality provides a very easy-to-setup and yet powerful way to ask your E-Business Suite anything without being an SQL developer. In the next blog post episode, we'll look into the detailed procedure to get this solution installed.

Feel free to tell me about your thoughts and your potential use cases with this great new tool!