Synthetische Datengenerierung

Generieren Sie synthetische Daten mithilfe von Zufallsgeneratoren, Algorithmen, statistischen Modellen und Large Language Models (LLMs), um echte Daten für die effektive Entwicklung und Prüfung von Lösungen zu simulieren.

Hinweis:

Unterstützung für die Generierung synthetischer Daten ist ab Version 19.29 in Oracle Database 19c und ab Version 23.26 in Oracle AI Database 26ai verfügbar.

Synthetische Daten können ein leistungsfähiges Werkzeug bei der Entwicklung und dem Testen von Lösungen sein, insbesondere wenn tatsächliche Daten noch nicht vorhanden sind oder nicht verwendet werden dürfen. Synthetische oder künstlich erzeugte Daten können viele der Eigenschaften von realen Daten haben. Synthetische Daten werden in der Regel mit Zufallsgeneratoren, Algorithmen oder statistischen Modellen erstellt, um die Eigenschaften und Verteilungen von realen Daten zu simulieren. Dies kann jedoch komplex sein, um Werkzeuge mit Merkmalen unterschiedlicher Raffinesse herzustellen oder sich darauf zu verlassen. Mit der Verfügbarkeit von Large Language Models (LLMs) können relevantere und schemaspezifische Daten generiert werden, die Merkmale berücksichtigen, die in natürlicher Sprache ausgedrückt werden.

Themen

Vorteile der Generierung synthetischer Daten

Die synthetische Datengenerierung ermöglicht das Auffüllen von Klonen für Datenbankmetadaten und unterstützt Entwicklungs-, Test- und ML-Projekte, ohne sensible Daten aus ursprünglichen Tabellen zu verwenden.

Synthetische Datengenerierung bietet folgende Vorteile:
  • Metadatenklone mit synthetischen Daten auffüllen: Ein Metadatenklon repliziert die Struktur einer Datenbank oder eines Schemas, ohne tatsächliche Daten einzuschließen. Select AI ermöglicht es der synthetischen Datengenerierung, diese Klone zu füllen und vertrauliche Daten zu schützen und gleichzeitig die Entwicklung, das Testen und das Erstellen von Vorlagen zu ermöglichen. Dieser Ansatz unterstützt Performance- und Skalierbarkeitstests.

  • Neue Projekte starten: Beim Start eines neuen Projekts sind möglicherweise keine Istdaten verfügbar. Synthetische Daten liefern realistische Proben, um Konzepte zu demonstrieren und Unterstützung für Projektvorschläge zu erhalten.

  • Validierung der Benutzererfahrung: Synthetische Daten helfen beim Testen von Benutzeroberflächen, indem sie verschiedene Datasets bereitstellen, um Designfehler, Performance- und Skalierbarkeitsprobleme aufzudecken.

  • Unterstützung von KI- und ML-Projekten: Synthetische Daten sind nützlich für das Training von KI- und ML-Modellen, wenn echte Daten nicht verfügbar oder eingeschränkt sind. LLMs können Daten mit bestimmten Mustern generieren, um das Modelltraining und -scoring zu erleichtern.

Synthetische Daten generieren

Verwenden Sie die Funktion DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA, um synthetische Daten zu generieren und die Daten mit Select AI-Aktionen abzufragen.

Synthetische Datengenerierung überwachen und Fehler beheben

Wenn große Datenmengen über viele Tabellen generiert werden, teilt Select AI Aufgaben zur Generierung synthetischer Daten in kleinere Chunks auf und führt Aufgaben parallel aus. Der Status jedes Chunks wird in der Tabelle SYNTHETIC_DATA$<operation_id>_STATUS verfolgt.

Synthetische Datengenerierungsvorgänge werden in den Tabellen DBA_LOAD_OPERATIONS und USER_LOAD_OPERATIONS protokolliert. Verwenden Sie diese Tabellen, um den Vorgang DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA zu überwachen. Weitere Informationen finden Sie unter Ladevorgänge in DBMS_CLOUD verfolgen.

Nachdem Sie die Generierung synthetischer Daten in einer bestimmten Session ausgeführt haben, können Sie die neueste <operation_id> aus USER_LOAD_OPERATION abrufen. Verwenden Sie dazu Folgendes:
SELECT max(id) FROM user_load_operations;

Um die in einer anderen Session ausgeführten synthetischen Datenvorgänge anzuzeigen, verwenden Sie die Ansicht DBA_LOAD_OPERATIONS.

Status der Generierung synthetischer Daten anzeigen

Die Statustabelle des Synthetischen Datengenerierungsvorgangs zeigt den Fortschritt jeder Tabelle und den entsprechenden Chunk an. Die Spalte STATUS_TABLE in USER_LOAD_OPERATIONS oder DBA_LOAD_OPERATIONS zeigt den Namen der Statustabelle an. Der Tabellenname lautet SYNTHETIC_DATA$<operation_id>_STATUS und enthält die folgenden Spalten:

Name Datentyp Beschreibung

ID

NUMBER

Eindeutige ID des Datensatzes.

NAME

VARCHAR2

Der qualifizierte Name der Tabelle, beispielsweise "ADB_USER"."EMPLOYEES"

BYTES

NUMBER

Gewünschte Anzahl der Datensätze für diese Datengenerierungsaufgabe

ROWS_LOADED

NUMBER

Tatsächliche Anzahl generierter Datensätze.

CHECKSUM

VARCHAR2

Startwert für den Primärschlüssel während dieser Datengenerierungsaufgabe.

LAST_MODIFIED

TIMESTAMP WITH TIME ZONE

Zeitstempel, der angibt, wann der Datensatz zuletzt geändert wurde.

STATUS

VARCHAR2

Status der Datengenerierungsaufgabe. Die gültigen Werte sind:
  • COMPLETED
  • FAILED
  • PENDING
  • SKIPPED

ERROR_CODE

NUMBER

Fehlercode, wenn die Datengenerierungsaufgabe nicht erfolgreich ist.

ERROR_MESSAGE

VARCHAR2

Fehlermeldung, wenn die Aufgabe nicht erfolgreich war.

END_TIME

TIMESTAMP WITH TIME ZONE

Zeitstempel für das Ende der Datengenerierungsaufgabe.
Beispiel: Anzahl der für jede Tabelle generierten Datensätze prüfen

Um die Anzahl der für jede Tabelle generierten Datensätze zu prüfen, geben Sie Folgendes aus:

SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;

Fragen Sie ROWS_LOADED ab, um zu bestätigen, wie viele Zeilen für jeden Chunk geladen werden, und SUM(ROWS_LOADED) für Zeilen für jede Tabelle.

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "DIRECTOR","record_count":150},
                         {"owner": "ADB_USER", "name": "MOVIE_ACTOR","record_count":300},
                         {"owner": "ADB_USER", "name": "CLASSES", "user_prompt":"all in fall semester","record_count":5},
                         {"owner": "ADB_USER", "name": "ACTOR","record_count":220},
                         {"owner": "ADB_USER", "name": "MOVIE","record_count":50}]'
    );
END;
/
 
 
-- Check loaded rows for each chunk
SQL> SELECT name, rows_loaded FROM synthetic_data$141_status order by name;
NAME                           ROWS_LOADED
------------------------------------------
"ADB_USER"."ACTOR"                        188
"ADB_USER"."ACTOR"                         32
"ADB_USER"."CLASSES"                        5
"ADB_USER"."DIRECTOR"                     150
"ADB_USER"."MOVIE"                         50
"ADB_USER"."MOVIE_ACTOR"                   38
"ADB_USER"."MOVIE_ACTOR"                  114
"ADB_USER"."MOVIE_ACTOR"                  148
 
 
 
-- Check loaded rows for each table
SQL> SELECT name, SUM(rows_loaded) FROM synthetic_data$141_status group by name;
 
NAME                      SUM(ROWS_LOADED)
------------------------------------------
"ADB_USER"."DIRECTOR"                     150
"ADB_USER"."MOVIE_ACTOR"                  300
"ADB_USER"."CLASSES"                        5
"ADB_USER"."ACTOR"                        220
"ADB_USER"."MOVIE"                         50

Beispiel: Synthetische Daten generieren

In diesem Beispiel wird erläutert, wie Sie synthetische Daten generieren können, die Eigenschaften und die Verteilung realer Daten nachahmen.

Hinweis:

Unterstützung für die Generierung synthetischer Daten ist ab Version 19.29 in Oracle Database 19c und ab Version 23.26 in Oracle Database 26ai verfügbar.

Das folgende Beispiel zeigt, wie Sie einige Tabellen in Ihrem Schema erstellen, OCI Generative AI als AI-Provider verwenden, um ein AI-Profil zu erstellen, Daten mit der Funktion DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA in diesen Tabellen zu synthetisieren und Antworten auf Eingabeaufforderungen in natürlicher Sprache mit Select AI abzufragen oder zu generieren.

--Create tables or use cloned tables

CREATE TABLE ADB_USER.Director (
    director_id     INT PRIMARY KEY,
    name            VARCHAR(100)
);
CREATE TABLE ADB_USER.Movie (
    movie_id        INT PRIMARY KEY,
    title           VARCHAR(100),
    release_date    DATE,
    genre           VARCHAR(50),
    director_id     INT,
    FOREIGN KEY (director_id) REFERENCES ADB_USER.Director(director_id)
);
CREATE TABLE ADB_USER.Actor (
    actor_id        INT PRIMARY KEY,
    name            VARCHAR(100)
);
CREATE TABLE ADB_USER.Movie_Actor (
    movie_id        INT,
    actor_id        INT,
    PRIMARY KEY (movie_id, actor_id),
    FOREIGN KEY (movie_id) REFERENCES ADB_USER.Movie(movie_id),
    FOREIGN KEY (actor_id) REFERENCES ADB_USER.Actor(actor_id)
);

-- Create the GenAI credential
BEGIN                                                                       
  DBMS_CLOUD.create_credential(                                             
    credential_name => 'GENAI_CRED',                                        
    user_ocid       => 'ocid1.user.oc1....',
    tenancy_ocid    => 'ocid1.tenancy.oc1....',
    private_key     => 'vZ6cO...',
    fingerprint     => '86:7d:...'    
  );                                                                        
END;                                                                       
/
 
-- Create a profile
BEGIN                                                                      
  DBMS_CLOUD_AI.CREATE_PROFILE(                                            
      profile_name =>'GENAI',                                                           
      attributes  =>'{"provider": "oci",                                                                 
        "credential_name": "GENAI_CRED",                                   
        "object_list": [{"owner": "ADB_USER", 
		"oci_compartment_id": "ocid1.compartment.oc1...."}]          
       }');                                                                
END;                                                                       
/
 
 
EXEC DBMS_CLOUD_AI.set_profile('GENAI');

-- Run the API for single table
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_name  => 'Director',
        owner_name   => 'ADB_USER',
        record_count => 5
    );
END;
/
PL/SQL procedure successfully completed.
 
 
-- Query the table to see results
SQL> SELECT * FROM ADB_USER.Director;
 
DIRECTOR_ID NAME
----------- ----------------------------------------------------------------------------------------------------
          1 John Smith
          2 Emily Chen
          3 Michael Brown
          4 Sarah Taylor
          5 David Lee
 
 
-- Or ask select ai to show the results
SQL> select ai how many directors are there;
 
NUMBER_OF_DIRECTORS
-------------------
                  5
Beispiel: Synthetische Daten für mehrere Tabellen generieren

Nachdem Sie Ihr AI-Providerprofil erstellt und festgelegt haben, generieren Sie Daten für mehrere Tabellen mit der DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA. Sie können Select AI abfragen oder verwenden, um auf die Eingabeaufforderungen in natürlicher Sprache zu reagieren.

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
                         {"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
                         {"owner": "ADB_USER", "name": "Actor","record_count":10},
                         {"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies released in 2009"}]'
    );
END;
/
PL/SQL procedure successfully completed.
 
 
-- Query the table to see results
SQL> select * from ADB_USER.Movie;

 MOVIE_ID TITLE                                                     RELEASE_D                            GENRE                                 DIRECTOR_ID	
---------- -------------------------------------------------------- --------- --------------------------------------------------------------- -----------	
         1 The Dark Knight                                           15-JUL-09                              Action                              8	
         2 Inglourious Basterds                                      21-AUG-09                              War                                 3	
         3 Up in the Air                                             04-SEP-09                              Drama                               6	
         4 The Hangover                                              05-JUN-09                              Comedy                              1	
         5 District 9                                                14-AUG-09                              Science Fiction                     10	
	

 
-- Or ask select ai to show the results
SQL> select ai how many actors are there;
 
Number of Actors
----------------
              10
Beispiel: Anleitung zur Generierung synthetischer Daten mit Beispielzeilen

Um den AI-Service beim Generieren synthetischer Daten zu unterstützen, können Sie nach dem Zufallsprinzip vorhandene Datensätze aus einer Tabelle auswählen. Beispiel: Wenn Sie dem Argument params {"sample_rows": 5} hinzufügen, können Sie 5 Beispielzeilen aus einer Tabelle an den AI-Provider senden. In diesem Beispiel werden 10 zusätzliche Zeilen basierend auf den Beispielzeilen aus der Tabelle Transactions generiert.

BEGIN
  DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
    profile_name => 'GENAI',
    object_name  => 'Transactions',
    owner_name   => 'ADB_USER',
    record_count => 10,
    params       => '{"sample_rows":5}'
  );
END;
/
Beispiel: Synthetische Datengenerierung mit Benutzer-Prompts anpassen

Mit dem Argument user_prompt können Sie zusätzliche Regeln oder Anforderungen für die Datengenerierung angeben. Dies kann auf eine einzelne Tabelle oder als Teil des Arguments object_list für mehrere Tabellen angewendet werden. Beispiel: Bei den folgenden Aufrufen von DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA weist der Prompt die KI an, synthetische Daten für Filme zu generieren, die 2009 veröffentlicht wurden.

-- Definition for the Movie table CREATE TABLE Movie 

CREATE TABLE Movie (
    movie_id        INT PRIMARY KEY,
    title           VARCHAR(100),
    release_date    DATE,
    genre           VARCHAR(50),
    director_id     INT,
    FOREIGN KEY (director_id) REFERENCES Director(director_id)
);
 
 
 
BEGIN
  DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
    profile_name      => 'GENAI',
    object_name       => 'Movie',
    owner_name        => 'ADB_USER',
    record_count      => 10,
    user_prompt       => 'all movies are released in 2009',
    params            => '{"sample_rows":5}'
  );
END;
/
 
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
                         {"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
                         {"owner": "ADB_USER", "name": "Actor","record_count":10},
                         {"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
    );
END;
/
Beispiel: Synthetische Datenqualität mit Tabellenstatistiken verbessern

Wenn eine Tabelle Spaltenstatistiken enthält oder aus einer Datenbank geklont wird, die Metadaten enthält, kann Select AI diese Statistiken verwenden, um Daten zu generieren, die den ursprünglichen Daten ähnlich oder konsistent sind.

Bei NUMBER-Spalten leiten die Werte für "Hoch" und "Niedrig" aus den Statistiken den Wertebereich. Beispiel: Wenn die Spalte SALARY in der ursprünglichen Tabelle EMPLOYEES zwischen 1000 und 10000 liegt, fallen auch die synthetischen Daten für diese Spalte in diesen Bereich.

Für Spalten mit eindeutigen Werten, wie z.B. eine Spalte STATE mit den Werten CA, WA und TX, verwenden die synthetischen Daten diese spezifischen Werte. Sie können dieses Feature mit dem Parameter {"table_statistics": true/false} verwalten. Standardmäßig sind die Tabellenstatistiken aktiviert.

BEGIN
  DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
    profile_name      => 'GENAI',
    object_name       => 'Movie',
    owner_name        => 'ADB_USER',
    record_count      => 10,
    user_prompt => 'all movies released in 2009',
    params            => '{"sample_rows":5,"table_statistics":true}'
  );
END;
/
Beispiel: Mit Spaltenkommentaren die Datengenerierung steuern

Wenn Spaltenkommentare vorhanden sind, schließt Select AI diese automatisch ein, um während der Datengenerierung zusätzliche Informationen für das LLM bereitzustellen. Beispiel: Ein Kommentar in der Spalte Status einer Transaktionstabelle kann zulässige Werte auflisten, wie successful, failed, pending, canceled und need manual check. Sie können auch Kommentare hinzufügen, um die Spalte weiter zu erläutern und KI-Services präzisere Anweisungen oder Hinweise zur Generierung genauer Daten zu geben. Standardmäßig sind Kommentare deaktiviert. Weitere Informationen finden Sie unter Optionale Parameter.

-- Use comment on column
COMMENT ON COLUMN Transaction.status IS 'the value for state should either be ''successful'', ''failed'', ''pending'' or ''canceled''';
/
 
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name  => 'GENAI',
        object_name   => 'employees',
        owner_name    => 'ADB_USER',
        record_count  => 10
        params        => '{"comments":true}'
 
    );
END;
/
Beispiel: Eindeutige Werte in der Generierung synthetischer Daten festlegen

Wenn große Mengen synthetischer Daten mit LLMs generiert werden, treten wahrscheinlich doppelte Werte auf. Um dies zu verhindern, richten Sie einen eindeutigen Constraint für die relevante Spalte ein. Dadurch wird sichergestellt, dass Select AI Zeilen mit doppelten Werten in der LLM-Antwort ignoriert. Um außerdem Werte für bestimmte Spalten einzuschränken, können Sie die user_prompt verwenden oder Kommentare hinzufügen, um die zulässigen Werte anzugeben, wie z.B. die Begrenzung einer STATE-Spalte auf CA, WA und TX.

-- Use 'user_prompt'
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name  => 'GENAI',
        object_name   => 'employees',
        owner_name    => 'ADB_USER',
        user_prompt   => 'the value for state should either be CA, WA, or TX',
        record_count  => 10
    );
END;
/
 
 
-- Use comment on column
COMMENT ON COLUMN EMPLOYEES.state IS 'the value for state should either be CA, WA, or TX'
/
Beispiel: Synthetische Datengenerierung durch parallele Verarbeitung verbessern

Um die Laufzeit zu reduzieren, teilt Select AI Aufgaben zur synthetischen Datengenerierung in kleinere Chunks für Tabellen ohne Primärschlüssel oder mit numerischen Primärschlüsseln auf. Diese Aufgaben werden parallel ausgeführt und interagieren mit dem KI-Provider, um Daten effizienter zu generieren. Der Parallelitätsgrad (DOP) in Ihrer Datenbank, der von Ihrer Autonomous AI Database on Dedicated Exadata Infrastructure-Serviceebene und den ECPU- oder OCPU-Einstellungen beeinflusst wird, bestimmt die Anzahl der Datensätze, die jeder Chunk-Prozess verarbeitet. Die parallele Ausführung von Aufgaben verbessert im Allgemeinen die Performance, insbesondere wenn große Datenmengen über viele Tabellen hinweg generiert werden. Um die parallele Verarbeitung der synthetischen Datengenerierung zu verwalten, legen Sie priority als optionalen Parameter fest. Siehe Optionale Parameter.

Beispiel: Datenzugriff aktivieren oder deaktivieren

Dieses Beispiel veranschaulicht, wie Administratoren den Datenzugriff kontrollieren und verhindern können, dass Select AI tatsächliche Schematabellen an das LLM sendet.

Datenzugriff deaktivieren

Um den Zugriff auf Schematabellen einzuschränken, melden Sie sich als Administrator an, und führen Sie das folgende Verfahren aus.

EXEC DBMS_CLOUD_AI.DISABLE_DATA_ACCESS;
 
PL/SQL procedure successfully completed.

Deaktivieren von Datenzugriffsbeschränkungen Wählen Sie die narrate-Aktion von AI und die Generierung synthetischer Daten aus. Die Aktion narrate und die Generierung synthetischer Daten lösen einen Fehler aus.

Melden Sie sich als Datenbankbenutzer an, und erstellen und konfigurieren Sie Ihr AI-Profil. Prüfen Sie KI-Profile mit DBMS_CLOUD_AI konfigurieren, um Ihr KI-Profil zu konfigurieren.

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name =>'DATA_ACCESS',
          attributes   =>'{"provider": "openai",
            "credential_name": "OPENAI_CRED",
            "object_list": [{"owner":"SH"}]
          }');
END;
/

EXEC DBMS_CLOUD_AI.SET_PROFILE('DATA_ACCESS');
 

select ai how many customers;

NUM_CUSTOMERS
55500

select ai narrate what are the top 3 customers in San Francisco;

ORA-20000: Data access is disabled for SELECT AI.
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 2228
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 13157
ORA-06512: at line 1 https://docs.oracle.com/error-help/db/ora-20000/
The stored procedure 'raise_application_error' was called which causes this error to be generated
Error at Line: 1 Column: 6

Das folgende Beispiel zeigt die Fehler, die ausgelöst werden, wenn Sie versuchen, synthetische Daten zu generieren.

BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'DATA_ACCESS_SDG',
object_name => 'CUSTOMERS_NEW',
owner_name => 'ADB_USER,
record_count => 5
);
END;
/ 

ERROR at line 1:

ORA-20000: Data access is disabled for SELECT AI.
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 2228
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 13401

ORA-06512: at line 2
Datenzugriff aktivieren

Das folgende Beispiel zeigt, wie Sie den Datenzugriff aktivieren. Melden Sie sich als Administrator an, und führen Sie das folgende Verfahren aus:

EXEC DBMS_CLOUD_AI.ENABLE_DATA_ACCESS;
 
PL/SQL procedure successfully completed.

Melden Sie sich als Datenbankbenutzer an, und erstellen und konfigurieren Sie Ihr AI-Profil. Prüfen Sie KI-Profile mit DBMS_CLOUD_AI konfigurieren, um Ihr KI-Profil zu konfigurieren.

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name =>'DATA_ACCESS_NEW',
          attributes   =>'{"provider": "openai",
            "credential_name": "OPENAI_CRED",
            "object_list": [{"owner":"SH"}]
          }');
   END;
   /

PL/SQL procedure successfully completed.

EXEC DBMS_CLOUD_AI.SET_PROFILE('DATA_ACCESS_NEW');

PL/SQL procedure successfully completed.


select ai how many customers;

NUM_CUSTOMERS
55500

select ai narrate what are the top 3 customers in San Francisco;

"RESPONSE"
"The top 3 customers in San Francisco are Cody Seto, Lauren Yaskovich, and Ian Mc"

Das folgende Beispiel zeigt eine erfolgreiche Generierung synthetischer Daten nach dem Aktivieren des Datenzugriffs.

BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'DATA_ACCESS_SDG',
object_name => 'CUSTOMERS_NEW',
owner_name => 'ADB_USER',
record_count => 5
);
END;
/ 

PL/SQL procedure successfully completed.