DBMS_CLOUD_FUNCTION-Package

Mit dem Package DBMS_CLOUD_FUNCTION können Sie OCI- und AWS Lambda-Remotefunktionen in Ihrer autonomen KI-Datenbank als SQL-Funktionen aufrufen.

Hinweis:

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

Zusammenfassung der DBMS_CLOUD_FUNCTION-Unterprogramme

In dieser Tabelle werden die Unterprogramme zusammengefasst, die im Package DBMS_CLOUD_FUNCTION enthalten sind.

Tabelle - DBMS_CLOUD_FUNCTION-Unterprogramme

Unterprogramm Beschreibung
Prozedur CREATE_CATALOG Mit diesem Verfahren wird ein Katalog erstellt.
Prozedur CREATE_FUNCTION Mit dieser Prozedur werden Funktionen in einem Katalog erstellt.
Prozedur DROP_CATALOG Diese Prozedur löscht einen Katalog und Funktionen, die mit dem Katalog erstellt wurden.
Prozedur DROP_FUNCTION Diese Prozedur löscht Funktionen aus einem Katalog.
Prozedur LIST_FUNCTIONS Diese Prozedur listet alle Funktionen in einem Katalog auf.
Prozedur SYNC_FUNCTIONS Mit dieser Prozedur können Sie dem Katalog neue Funktionen hinzufügen und Funktionen entfernen, die aus dem Katalog gelöscht wurden.

Prozedur CREATE_CATALOG

Die Prozedur DBMS_CLOUD_FUNCTION.CREATE_CATALOG erstellt einen Katalog in der Datenbank. Ein Katalog ist eine Gruppe von Funktionen, mit denen die erforderliche Infrastruktur zur Ausführung von Unterroutinen erstellt wird.

Syntax

DBMS_CLOUD_FUNCTION.CREATE_CATALOG (
    credential_name             IN VARCHAR2,
    catalog_name                IN VARCHAR2,
    service_provider            IN VARCHAR2, 
    cloud_params                IN CLOB
);

Parameter

Parameter Beschreibung

credential_name

Gibt den Namen der Zugangsdaten für die Authentifizierung an.

Dieser Parameter ist obligatorisch.

service_provider

Gibt den Typ des Serviceproviders an.

Dieser Parameter kann OCI oder AWS als Parameterwert haben.

Dieser Parameter ist obligatorisch.

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

cloud_params

Stellt Parameter für die Funktion bereit. Beispiel: Compartment-OCID und Regionen.

Dieser Parameter ist obligatorisch.

Fehler

Fehlercode Beschreibung

ORA-20000

Dieser Fehler wird in der folgenden Bedingung ausgelöst:

  • cloud_params-Wert fehlt, oder falsche Parameterwerte werden übergeben.

ORA-20001

Dieser Fehler wird in der folgenden Bedingung ausgelöst:

  • Die Zugangsdaten, auf die in credential_name verwiesen wird, sind nicht vorhanden.

ORA-20002

Dieser Fehler wird in der folgenden Bedingung ausgelöst:

  • Dieser Fehler wird ausgelöst, wenn der Katalog bereits vorhanden ist.

ORA-20009

Dieser Fehler wird ausgelöst, wenn der Serviceprovider nicht vorhanden ist.

Beispiele

BEGIN
    DBMS_CLOUD_FUNCTION.CREATE_CATALOG (
        credential_name  => 'DEFAULT_CREDENTIAL', 
        catalog_name     => 'OCI_DEMO_CATALOG', 
        service_provider => 'OCI',
        cloud_params     => ("region_id":"us-phoenix-1", "compartment_id":"compartment_id"
 );
END;
/

Hinweis zur Verwendung

  • Um einen Katalog zu erstellen, müssen Sie als Benutzer ADMIN angemeldet sein oder über Berechtigungen für Folgendes verfügen:
    • DBMS_CLOUD_OCI_FNC_FUNCTIONS_INVOKE

    • DBMS_CLOUD_OCI_FNC_FUNCTIONS_INVOKE_INVOKE_FUNCTION_RESPONSE_T

    • DBMS_CLOUD

    • Leseberechtigung auf USER_CLOUD_FUNCTION

    • Leseberechtigung auf USER_CLOUD_FUNCTION_CATALOG

Prozedur CREATE_FUNCTION

Mit dieser Prozedur werden Funktionen in einem Katalog erstellt.

Syntax

Die Prozedur DBMS_CLOUD_FUNCTION.CREATE_FUNCTION wird nur für Cloudfunktionen unterstützt.

DBMS_CLOUD_FUNCTION.CREATE_FUNCTION (
    credential_name   IN VARCHAR2,
    catalog_name      IN VARCHAR2,
    function_name     IN VARCHAR2,
    function_id       IN VARCHAR2,
    input_args        IN CLOB      DEFAULT NULL,
    return_type       IN VARCHAR2  DEFAULT 'CLOB',
    response_handler  IN VARCHAR2  DEFAULT NULL
);

Antwort-Handler-Signatur

<USER DEFINED TYPE> response_handler_name(function_response in CLOB)RETURNS CLOB;

Der Rückgabetyp ist ein benutzerdefinierter Typ oder PL/SQL-Typ. Die function_response ist von JSON mit Feldern.

'{  
"STATUS":"<RESPONCE STATUS>",  
"RESPONSE_BODY":"<FUNCTION RESPONSE>"
}'

Parameter

Parameter Beschreibung

credential_name

Gibt den Namen der Zugangsdaten für die Authentifizierung an.

Dieser Parameter ist obligatorisch.

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

function_name

Gibt den PL/SQL-Funktionsnamen an.

Dieser Parameter ist obligatorisch.

function_id

Der Parameterwert function_id bezieht sich auf die OCI-Funktion oder AWS Lambda.

Dieser Parameter ist obligatorisch.

input_args

Gibt das JSON-Schlüsselwertpaar an, das Eingabeargumente und deren Typen akzeptiert.

return_type

Definiert den Rückgabetyp der Funktion.

Der Rückgabetyp ist der Datentyp CLOB.

response_handler

Gibt den benutzerdefinierten Rückruf an, der die Antwort verarbeitet.

Fehler

Fehlercode Beschreibung

ORA-20001

Dieser Fehler wird ausgelöst, wenn die in credential_name referenzierten Zugangsdaten nicht vorhanden sind.

ORA-20003

Dieser Fehler wird ausgelöst, wenn der angegebene Katalog nicht vorhanden ist.

ORA-20004

Dieser Fehler wird ausgelöst, wenn die angegebene Funktion bereits vorhanden ist.

ORA-20005

Dieser Fehler wird ausgelöst, wenn die Funktions-ID oder die Funktion "Amazon Resource Names" (ARN) nicht vorhanden ist.

ORA-20006

Dieser Fehler wird ausgelöst, wenn die Eingabeargumente ungültig sind.

ORA-20007

Dieser Fehler wird ausgelöst, wenn der Rückgabetyp fehlt oder ungültig ist.

ORA-20008

Dieser Fehler wird ausgelöst, wenn der Antwort-Handler fehlt oder ungültig ist.

Beispiel

VAR function_args CLOB;
EXEC :function_args := TO_CLOB('{"command": "VARCHAR2", "value": "VARCHAR2"}');
BEGIN
    DBMS_CLOUD_FUNCTION.CREATE_FUNCTION (
	credential_name  => 'DEFAULT_CREDENTIAL',    
       catalog_name     => 'OCI_DEMO_CATALOG',
       function_name    => 'demo_function', 
       function_id      => 'ocid1.fnfunc.oc1.phx.aaaaaaaazkrbjv6ntowwxlbbp5ct4otsj4o2hdw4ayosyosv4sthmya2lyza',
       input_args       => :function_args);
 );
END;
/

Prozedur DROP_CATALOG

Die Prozedur DBMS_CLOUD_FUNCTION.DROP_CATALOG löscht den Katalog und die mit dem Katalog erstellten Funktionen.

Syntax

DBMS_CLOUD_FUNCTION.DROP_CATALOG (
    catalog_name      IN VARCHAR2
 );

Parameter

Parameter Beschreibung

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

Fehler

Fehlercode Beschreibung

ORA-20003

Dieser Fehler wird ausgelöst, wenn der angegebene Katalog nicht vorhanden ist.

Beispiel:

BEGIN
    DBMS_CLOUD_FUNCTION.DROP_CATALOG (
      catalog_name     => 'OCI_DEMO_CATALOG'
  );
END;
/

Prozedur DROP_FUNCTION

Die Prozedur DBMS_CLOUD_FUNCTION.DROP_FUNCTION löscht die Funktion.

Syntax

Die Prozedur DBMS_CLOUD_FUNCTION.DROP_FUNCTION wird nur für Cloudfunktionen unterstützt.

DBMS_CLOUD_FUNCTION.DROP_FUNCTION (
    catalog_name      IN VARCHAR2,
    function_name     IN VARCHAR2
);

Parameter

Parameter Beschreibung

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

function_name

Gibt den Namen der Funktion an, die gelöscht werden soll.

Dieser Parameter ist obligatorisch.

Fehler

Fehlercode Beschreibung

ORA-20003

Dieser Fehler wird ausgelöst, wenn die angegebene Funktion nicht vorhanden ist.

Beispiele

BEGIN
    DBMS_CLOUD_FUNCTION.DROP_FUNCTION (
       catalog_name     => 'OCI_DEMO_CATALOG',
       function_name    => 'demo_function');
END;
/

Prozedur LIST_FUNCTIONS

Diese Prozedur listet alle Funktionen in einem Katalog auf.

Syntax

DBMS_CLOUD_FUNCTION.LIST_FUNCTIONS (
    credential_name   IN VARCHAR2,
    catalog_name      IN VARCHAR2,
    function_list     OUT VARCHAR2
);

Parameter

Parameter Beschreibung

credential_name

Gibt den Namen der Zugangsdaten für die Authentifizierung an.

Dieser Parameter ist obligatorisch.

function_list

Gibt die Liste der Funktionen im JSON-Format zurück.

Dieser Parameter ist obligatorisch.

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

Fehler

Fehlercode Beschreibung

ORA-20000

Dieser Fehler wird ausgelöst, wenn falsche Parameterwerte übergeben werden.

ORA-20001

Dieser Fehler wird ausgelöst, wenn die in credential_name referenzierten Zugangsdaten nicht vorhanden sind.

ORA-20003

Dieser Fehler wird ausgelöst, wenn der angegebene Katalog nicht vorhanden ist.

Beispiel:

VAR function_list CLOB;
BEGIN
    DBMS_CLOUD_FUNCTION.LIST_FUNCTIONS (
	credential_name  => 'DEFAULT_CREDENTIAL', 
	catalog_name     => 'OCI_DEMO_CATALOG',  
	function_list    => :function_list);
 );
END;
/
SELECT JSON_QUERY(:function_list, '$' RETURNING VARCHAR2(32676) pretty) AS search_results FROM dual;

Prozedur SYNC_FUNCTIONS

Mit dieser Prozedur können Sie dem Katalog neue Funktionen hinzufügen und Funktionen entfernen, die aus dem Katalog gelöscht wurden.

Syntax

DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS (
    catalog_name      IN VARCHAR2,
    refresh_rate     IN VARCHAR2 DEFAULT 'DAILY'
);

Parameter

Parameter Beschreibung

catalog_name

Gibt den Katalognamen an.

Dieser Parameter ist obligatorisch.

refresh_rate

Gibt die Aktualisierungsrate der Funktion an.

refresh_rate kann die folgenden Werte akzeptieren:
  • HOURLY

  • DAILY

  • WEEKLY

  • MONTHLY

Der Standardwert für diesen Parameter ist DAILY.

Fehler

Fehlercode Beschreibung

ORA-20003

Dieser Fehler wird ausgelöst, wenn der angegebene Katalog nicht vorhanden ist.

ORA-20004

Dieser Fehler wird ausgelöst, wenn ein ungültiger Wert für den Parameter refresh_rate übergeben wird.

Beispiel:


BEGIN
    DBMS_CLOUD_FUNCTION.SYNC_FUNCTIONS (
       catalog_name     => 'OCI_DEMO_CATALOG'
 );
END;
/