Tabellen-Hyperlinkgruppen erstellen und verwalten

Mit Tabellen-Hyperlinkgruppen können Sie über eine einzelne URL auf Daten von mehreren Objekten oder mehreren SELECT-Anweisungen zugreifen. Die Verwendung einer Tabellen-Hyperlink-Gruppe vereinfacht den Datenabruf, indem Informationen aus verschiedenen Objekten in einem Zugriffspunkt (URL) konsolidiert werden.

Tabellen-Hyperlinkgruppe erstellen

Zeigt die Schritte zum Erstellen einer Tabellen-Hyperlink-Gruppe an, die Zugriff auf mehrere Tabellen-Hyperlinks mit einer einzigen URL bietet.

Beim Zugriff auf eine Tabellen-Hyperlink-Gruppe werden die Berechtigungen verwendet, die dem Datenbankbenutzer erteilt wurden, der die Tabellen-Hyperlink-Gruppe erstellt. Der Benutzer, der eine Tabellen-Hyperlink-Gruppe erstellt, muss über die Mindestberechtigungen verfügen, die für den Zugriff auf die Daten erforderlich sind. Um die Sicherheit aufrechtzuerhalten, empfiehlt Oracle, DBMS_DATA_ACCESS.CREATE_URL nicht als ADMIN-Benutzer auszuführen.

So erstellen Sie eine Tabellen-Hyperlink-Gruppe:

  1. Identifizieren Sie die Objekte (Tabellen oder Ansichten) und die SELECT-Anweisungen mit den Informationen, die Sie freigeben möchten.
  2. Führen Sie DBMS_DATA_ACCESS.CREATE_URL aus, um die Tabellen-Hyperlink-Gruppe zu generieren.

    Beispiel:

    DECLARE
       status CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              sqls => '[{"name": "employee", "description": "employee description", "schema_name":"SCOTT", "schema_object_name":"employee"},
                  {"name":"TREE", "description": "tree description", "sql_statement": "select * from admin.tree_data"}]',
              expiration_minutes   => 360,
              result               => status);
           dbms_output.put_line(status);
        END;
    /

    In diesem Beispiel lauten die Parameter:

    • sqls: Gibt als JSON-Array die Elementdetails für ein oder mehrere Schemaobjekte oder SQL-SELECT-Anweisungen an, die als Mitglieder einer Tabellen-Hyperlinkgruppe erstellt werden sollen.

      Das Format des JSON-Arrays lautet:

      Attributname Erforderlich Beschreibung
      name Nein Gibt den Namen des Gruppenmitglieds an. Wenn kein Name angegeben wird, erstellt die Prozedur einen Standardnamen.
      description Nein Gruppenmitgliedsbeschreibung
      sql_statement

      Die Angabe von sql_statement oder schema_object_name ist erforderlich

      SQL-Anweisung für das Mitglied

      Weitere Informationen finden Sie unter Tabellen-Hyperlink mit einer Select-Anweisung generieren.

      schema_name Nein

      Schemaname für das Element. Geben Sie nur dann einen schema_name-Wert an, wenn die in schema_object_name angegebene Tabelle/View im aktuellen Schema nicht verfügbar ist

      Weitere Informationen finden Sie unter Tabellen-Hyperlink für eine Tabelle oder Ansicht generieren.

      schema_object_name

      Die Angabe von sql_statement oder schema_object_name ist erforderlich

      Tabellen-/View-Name für das Element

      Weitere Informationen finden Sie unter Tabellen-Hyperlink für eine Tabelle oder Ansicht generieren.

      default_bind_variable Nein Gilt nur für sql_statements mit Bind-Variablen

      Weitere Informationen finden Sie unter Tabellen-Hyperlink mit einer Select-Anweisung generieren.

      column_lists Nein Entspricht der Definition für die Erstellung eines Nicht-Gruppen-Tabellen-Hyperlinks

      Weitere Informationen finden Sie unter Tabellen-Hyperlink mit in Spalten angegebenen UI-Features generieren.

    • expiration_minutes: Gibt an, dass die Tabellen-Hyperlinkgruppe abläuft und nach 360 Minuten invalidiert wird.

    • service_name: Gibt an, dass die generierte Tabellen-Hyperlinkgruppe mit einer bestimmten Service-Level-Garantie und Ressourcen verarbeitet wird. Beispiel: Verwenden Sie den Parameter service_name, um anzugeben, dass der Zugriff auf das Objekt dem HIGH-Service zugeordnet wird.

    • result: stellt JSON bereit, das das Ergebnis des Vorgangs angibt.

    Weitere Informationen finden Sie unter Prozedur CREATE_URL.

  3. Prüfen Sie das Ergebnis.

    Die status enthält das Ergebnis, das die Details der Tabellen-Hyperlinkgruppe enthält. Beispiel:

    {
      "status" : "SUCCESS",
      "id" : "P4LmrWC2-tGeHVlF6FRaQUIN2fW5nixkXa2t4ZGx6ubxxxyyyzzz-itojFFJFMooj",
      "preauth_url" : "https://dataaccess.adb.us-phoenix-1.oraclecloudapps.com/adb/p/QHD_Yvonle1eUCoxbN6bO...xyzabcFQEg/data",
      "member_ids" :
      [
        "zAhrHMBwknDwmmA7Nh4fR3-Wuva6io_3y-Vv-iZNNc8XplGDxyxabc7SXf5xLmFGY",
        "JKYigWp5fvAftcRsuoFeaZx2JqMn9yk71KtEleBMWZ8XcDWxyzabcPKGOTJRHVu"
      ],
      "expiration_ts" : "2025-07-18T18:12:19.311Z",
      "expiration_count" : null
    }
Hinweis

Mit DBMS_DATA_ACCESS.LIST_ACTIVE_URLS und DBMS_DATA_ACCESS.LIST_MEMBERS können Sie Tabellen-Hyperlinkgruppen und Tabellen-Hyperlinkgruppenmitglieder auflisten. Weitere Informationen finden Sie unter Hyperlinks, Gruppen und Gruppenmitglieder für Listentabellen.

Hinweise zum Erstellen einer Tabellen-Hyperlink-Gruppe:

  • Die result enthält den Wert preauth_url. Dies ist die URL, mit der Sie auf die Tabellen-Hyperlinkgruppe zugreifen. Weitere Informationen finden Sie unter Tabellen-Hyperlinkgruppe für den Zugriff auf Daten verwenden.

  • Wenn Sie eine Tabellen-Hyperlinkgruppe in einer Autonomous Database-Instanz mit einem privaten Endpunkt generieren, enthält das Ergebnis den Namen private_preauth_url mit dem Wert des folgenden Formulars: "https://private-endpoint/adb/p/parurl-token/data".

    Wenn Sie eine Tabellen-Hyperlinkgruppe in einer Autonomous Database-Instanz mit einem privaten Endpunkt generieren und der private Endpunkt mit aktiviertem Öffentlichen Zugriff zulassen konfiguriert ist, enthält das Ergebnis sowohl die preauth_url für den öffentlichen Endpunkt als auch private_preauth_url.

    Weitere Informationen finden Sie unter Private Endpunkte konfigurieren und Privaten Endpunkt mit zulässigem öffentlichem Zugriff verwenden.

  • Verwenden Sie DBMS_DATA_ACCESS.EXTEND_URL, um die Lebensdauer einer Tabellen-Hyperlinkgruppe zu verlängern. Wenn Sie DBMS_DATA_ACCESS.EXTEND_URL mit einem id für eine Tabellen-Hyperlinkgruppe ausführen, verlängert dies nur den Ablauf der hinzugefügten Elemente, wenn Sie die Gruppe mit DBMS_DATA_ACCESS.CREATE_URL erstellen (dies umfasst keine Tabellen-Hyperlinks, die mit DBMS_DATA_ACCESS.ADD_MEMBER hinzugefügt werden). Mit DBMS_DATA_ACCESS.ADD_MEMBER hinzugefügte Tabellen-Hyperlinks existieren auch unabhängig außerhalb des Kontextes der Tabellen-Hyperlinkgruppe. Sie können DBMS_DATA_ACCESS.EXTEND_URL unabhängig von diesen Tabellen-Hyperlinks ausführen.

    Weitere Informationen finden Sie unter Prozedur EXTEND_URL.

  • Weitere Informationen zu optionalen Parametern für DBMS_DATA_ACCESS.CREATE_URL finden Sie unter Hinweise zum Erstellen eines Tabellen-Hyperlinks.

Tabellen-Hyperlink-Gruppenmitglied hinzufügen

Ein Benutzer mit entsprechenden Berechtigungen kann jederzeit ein Element zu einer Tabellen-Hyperlink-Gruppe hinzufügen.

Verwenden Sie DBMS_DATA_ACCESS.ADD_MEMBER, um einer Gruppe einen vorhandenen Tabellen-Hyperlink hinzuzufügen. Beispiel:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.ADD_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

Die Parameter sind:

  • id: Gibt die Tabellen-Hyperlinkgruppen-ID an. Dies ist der id-Wert, der im Ergebnis angezeigt wird, wenn Sie eine Tabellen-Hyperlinkgruppe erstellen. Weitere Informationen finden Sie unter Tabellen-Hyperlinkgruppe erstellen.

  • member_id: Gibt eine vorhandene Tabellen-Hyperlink-ID an, die der Gruppe hinzugefügt werden soll. Der Wert member_id darf keine Tabellen-Hyperlinkgruppen-ID sein (is_group_url muss false sein). Weitere Informationen finden Sie unter Listen-Tabellen-Hyperlinks und Tabellen-Hyperlinkgruppen.
  • result: stellt JSON bereit, das das Ergebnis des Vorgangs angibt.

Weitere Informationen finden Sie unter Prozedur ADD_MEMBER.

Tabellen-Hyperlink-Gruppenmitglied entfernen

Ein Benutzer mit entsprechenden Berechtigungen kann jederzeit ein Element aus einer Tabellen-Hyperlink-Gruppe entfernen.

Verwenden Sie DBMS_DATA_ACCESS.REMOVE_MEMBER, um ein Element aus einer Tabellen-Hyperlinkgruppe zu entfernen. Beispiel:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.REMOVE_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

Die Parameter sind:

  • id: Gibt die Tabellen-Hyperlinkgruppen-ID an. Dies ist der id-Wert, der im Ergebnis angezeigt wird, wenn Sie eine Tabellen-Hyperlinkgruppe erstellen. Weitere Informationen finden Sie unter Tabellen-Hyperlinkgruppe erstellen.

  • member_id: Gibt die Element-ID an, die aus der Tabellen-Hyperlinkgruppe entfernt werden soll.

  • result: stellt JSON bereit, das das Ergebnis des Vorgangs angibt.

Hinweise zum Entfernen eines Mitglieds:

  • Der Wert member_id darf keine Tabellen-Hyperlinkgruppen-ID sein (is_group_url muss false sein). Weitere Informationen finden Sie unter Hinweise zum Auflisten von Tabellen-Hyperlinks und Tabellen-Hyperlinkgruppen.
  • Mit DBMS_DATA_ACCESS.LIST_MEMBERS können Sie die Elemente einer Tabellen-Hyperlinkgruppe auflisten. Weitere Informationen finden Sie unter Hinweise zum Auflisten von Tabellen-Hyperlinks und Tabellen-Hyperlinkgruppen.

  • Wenn das entfernte Element ein vorhandener Tabellen-Hyperlink ist, der der Gruppe mit DBMS_DATA_ACCESS.ADD_MEMBER hinzugefügt wurde, wird das Element aus der Gruppe entfernt, aber der Tabellen-Hyperlink kann direkt aufgerufen werden, bis er explizit invalidiert wird oder abläuft.

  • Wenn eine Tabellen-Hyperlink-Gruppe nur ein Element enthält und dieses Element entfernt wird, wird die Gruppe invalidiert.

Weitere Informationen finden Sie unter Prozedur REMOVE_MEMBER.

Tabellen-Hyperlinkgruppe invalidieren

Ein Benutzer mit entsprechenden Berechtigungen kann eine Tabellen-Hyperlink-Gruppe jederzeit invalidieren.

Verwenden Sie DBMS_DATA_ACCESS.INVALIDATE_URL, um eine Tabellen-Hyperlinkgruppe zu invalidieren. Beispiel:

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.INVALIDATE_URL(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

Die Parameter sind:

  • id: Gibt die Tabellen-Hyperlinkgruppen-ID an. Dies ist der id-Wert, der im Ergebnis angezeigt wird, wenn Sie eine Tabellen-Hyperlinkgruppe erstellen. Weitere Informationen finden Sie unter Tabellen-Hyperlinkgruppe erstellen.

  • result: stellt JSON bereit, das das Ergebnis des Vorgangs angibt.

Hinweis

Wenn der Parameter DBMS_DATA_ACCESS.INVALIDATE_URL id eine Tabellen-Hyperlinkgruppe ist, invalidiert die Prozedur die Gruppe und alle Gruppenmitglieder, mit Ausnahme aller Gruppenmitglieder, die mit DBMS_DATA_ACCESS.ADD_MEMBER hinzugefügt wurden. Nachdem Sie DBMS_DATA_ACCESS.INVALIDATE_URL ausgeführt haben, verwalten die Elemente, die mit DBMS_DATA_ACCESS.ADD_MEMBER hinzugefügt wurden, ihre unabhängigen Tabellen-Hyperlink-Invalidierungswerte, und Sie können diese Tabellen-Hyperlinks einzeln mit DBMS_DATA_ACCESS.INVALIDATE_URL invalidieren.

Weitere Informationen finden Sie unter Prozedur INVALIDATE_URL.