DBMS_DATA_ACCESS-Package
Das Package DBMS_DATA_ACCESS
enthält Routinen zum Generieren und Verwalten von Tabellen-Hyperlinks für Datasets.
- DBMS_DATA_ACCESS Überblick
Beschreibt die Verwendung des PackagesDBMS_DATA_ACCESS
. - DBMS_DATA_ACCESS Sicherheitsmodell
Die Sicherheit für dieses Package kann gesteuert werden, indem ausgewählten Benutzern oder RollenEXECUTE
für dieses Package erteilt wird. - Zusammenfassung der DBMS_DATA_ACCESS-Unterprogramme
In diesem Abschnitt werden dieDBMS_DATA_ACCESS
-Unterprogramme behandelt, die mit Autonomous AI Database bereitgestellt werden.
Übergeordnetes Thema: Von autonomer KI-Datenbank bereitgestellte Packagereferenz
DBMS_DATA_ACCESS - Überblick
Beschreibt die Verwendung des Packages DBMS_DATA_ACCESS
.
DBMS_DATA_ACCESS
unterstützt die folgenden Vorgänge:
- Generierung eines Tabellen-Hyperlinks
- Manuelle Invalidierung eines Tabellen-Hyperlinks
- Liste der aktiven Tabellen-Hyperlinks
Übergeordnetes Thema: DBMS_DATA_ACCESS Package
DBMS_DATA_ACCESS-Sicherheitsmodell
Die Sicherheit für dieses Package kann gesteuert werden, indem ausgewählten Benutzern oder Rollen EXECUTE
für dieses Package erteilt wird.
EXECUTE
in DBMS_DATA_ACCESS
erteilt wurde, können er die Tabellen-Hyperlinks erstellen, auflisten oder invalidieren, die vom Benutzer erstellt werden. Darüber hinaus verfügt der ADMIN-Benutzer standardmäßig über die folgenden Berechtigungen:
- Der ADMIN-Benutzer mit der Rolle
PDB_DBA
verfügt über die BerechtigungEXECUTE
fürDBMS_DATA_ACCESS
. - Der ADMIN-Benutzer mit der Rolle
PDB_DBA
kann jeden Tabellen-Hyperlink in einer autonomen KI-Datenbankinstanz auflisten oder invalidieren.
Übergeordnetes Thema: DBMS_DATA_ACCESS Package
Zusammenfassung der DBMS_DATA_ACCESS-Unterprogramme
In diesem Abschnitt werden die DBMS_DATA_ACCESS
-Unterprogramme behandelt, die mit der autonomen KI-Datenbank bereitgestellt werden.
Unterprogramm | Beschreibung |
---|---|
Im Folgenden wird ein vorhandener Tabellen-Hyperlink zur Tabellen-Hyperlink-Gruppe als Element hinzugefügt. |
|
Im Folgenden wird ein Tabellen-Hyperlink oder eine Tabellen-Hyperlink-Gruppe generiert. |
|
Dieses Verfahren verlängert die Lebensdauer eines Tabellen-Hyperlinks. |
|
Dieses Verfahren generiert einen Tabellen-Hyperlink. Dieses Verfahren ist veraltet. Verwenden Sie stattdessen die Prozedur CREATE_URL. |
|
Diese Prozedur invalidiert einen Tabellen-Hyperlink. |
|
Diese Funktion listet alle derzeit aktiven Tabellen-Hyperlinks auf. |
|
Im Folgenden werden die Elemente einer Tabellen-Hyperlink-Gruppe aufgeführt. |
|
Bei dieser Prozedur wird ein Element aus einer Tabellen-Hyperlink-Gruppe entfernt. |
|
Mit diesem Verfahren werden Eigenschaften für einen Tabellen-Hyperlink oder für eine Tabellen-Hyperlink-Gruppe aktualisiert. |
- Prozedur ADD_MEMBER
Im Folgenden wird ein vorhandener Tabellen-Hyperlink zur Tabellen-Hyperlink-Gruppe als Element hinzugefügt. - Prozedur CREATE_URL
Dieses Verfahren generiert einen Tabellen-Hyperlink oder eine Tabellen-Hyperlink-Gruppe. Eine Tabellen-Hyperlink-Gruppe ermöglicht den Zugriff auf mehrere Tabellen-Hyperlinks mit einer einzigen URL. Diese Prozedur ist überladen. - Prozedur GET_PREAUTHENTICATED_URL
Diese Prozedur generiert einen Tabellen-Hyperlink. - Prozedur EXTEND_URL
Dieses Verfahren verlängert die Lebensdauer eines Tabellen-Hyperlinks oder einer Tabellen-Hyperlink-Gruppe. - Prozedur INVALIDATE_URL
Dieses Verfahren invalidiert einen Tabellen-Hyperlink oder eine Tabellen-Hyperlink-Gruppe. - LIST_ACTIVE_URLS-Funktion
Diese Funktion listet alle derzeit aktiven Tabellen-Hyperlinks und Tabellen-Hyperlinkgruppen auf. - Prozedur LIST_MEMBERS
In dieser Prozedur werden die Elemente einer Tabellen-Hyperlink-Gruppe aufgeführt. - Prozedur REMOVE_MEMBER
In diesem Verfahren wird ein Element aus einer Tabellen-Hyperlink-Gruppe entfernt. - Prozedur UPDATE_URL
Mit diesem Verfahren werden Eigenschaften für einen Tabellen-Hyperlink oder für eine Tabellen-Hyperlink-Gruppe aktualisiert.
Übergeordnetes Thema: DBMS_DATA_ACCESS Package
Prozedur ADD_MEMBER
Im Folgenden wird ein vorhandener Tabellen-Hyperlink zur Tabellen-Hyperlink-Gruppe als Element hinzugefügt.
Syntax
DBMS_DATA_ACCESS.ADD_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID für die Tabellen-Hyperlinkgruppe an. |
member_id |
Gibt die ID für den Tabellen-Hyperlink an, der der Gruppe hinzugefügt werden soll. |
|
Stellt JSON bereit, um anzugeben, ob die Invalidierung erfolgreich oder nicht erfolgreich ist ( |
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;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur CREATE_URL
Syntax
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name IN VARCHAR2,
schema_object_name IN VARCHAR2,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
consistent IN BOOLEAN DEFAULT FALSE,
service_name IN VARCHAR2,
column_lists IN CLOB,
default_bind_values IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
password IN VARCHAR2 DEFAULT NULL,
acl IN CLOB DEFAULT NULL,
max_failed_access_attempts IN NUMBER DEFAULT 10,
result OUT CLOB);
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement IN CLOB,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
consistent IN BOOLEAN DEFAULT FALSE,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
default_bind_values IN CLOB,
password IN VARCHAR2 DEFAULT NULL,
acl IN CLOB DEFAULT NULL,
max_failed_access_attempts IN NUMBER DEFAULT 10,
result OUT CLOB);
DBMS_DATA_ACCESS.CREATE_URL
(
sqls IN CLOB,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
consistent IN BOOLEAN DEFAULT FALSE,
service_name IN VARCHAR2,
inherit_acl IN BOOLEAN DEFAULT FALSE,
password IN VARCHAR2 DEFAULT NULL
acl IN CLOB DEFAULT NULL,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt den Eigentümer des Objekts an. |
|
Gibt das Schemaobjekt (Tabelle oder View) an. |
|
Dieser optionale Parameter gibt einen Wert für die Anwendungsbenutzer-ID an. Wenn auf den Tabellen-Hyperlink oder die Tabellen-Hyperlink-Gruppe zugegriffen wird, ist der bei der Generierung des Tabellen-Hyperlinks angegebene Wert von sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') Sie können VPD-Policys definieren, die diesen Wert im Anwendungskontext verwenden, um die Zeilen einzuschränken, die für den Anwendungsbenutzer sichtbar sind. |
|
Dieser optionale Parameter gibt die Gültigkeitsdauer des Tabellen-Hyperlinks oder der Tabellen-Hyperlink-Gruppe in Minuten an. Die maximal zulässige Ablaufzeit beträgt 90 Tage (129600 Minuten). Wenn der Wert größer als 129600 ist, wird der Wert 129600 Minuten (90 Tage) verwendet. Wenn Standardwert: Wenn |
|
Dieser optionale Parameter gibt die Anzahl der zulässigen Zugriffe auf den Tabellen-Hyperlink oder die Tabellen-Hyperlink-Gruppe an. Hierfür gibt es keinen Standardwert. Wenn Wenn |
|
Dieser Parameter ist optional. Wenn dieser Wert auf Wenn Beispiel:
Hinweis: Wenn eine hohe Datenbankaktivität vorliegt und genügend Zeit zwischen dem Abrufen der ersten Seite und dem Abrufen einer nachfolgenden Seite vergeht, ist es möglicherweise nicht möglich, nachfolgende Daten abzurufen, die mit dem ersten Zugriff konsistent sind. In diesem Fall führt der Abruf zu einem Fehler. Hinweis: Wenn eine hohe Datenbankaktivität vorliegt und genügend Zeit zwischen dem Abrufen der ersten Seite und dem Abrufen einer nachfolgenden Seite vergeht, ist es möglicherweise nicht möglich, nachfolgende Daten abzurufen, die mit dem ersten Zugriff konsistent sind. In diesem Fall führt der Abruf zu einem Fehler. Der Standardwert ist |
|
Der Datenbankservice, der für den Datenabruf bei Verwendung des Tabellen-Hyperlinks verwendet wird. Geben Sie die Service-Level-Garantie und die Ressourcen an, die für den Service dieses Tabellen-Hyperlinks verwendet werden. Beispiel: Der Zugriff auf ein Objekt oder eine SQL-Anweisung kann den Services HIGH oder MEDIUM zugeordnet werden, während der Zugriff auf ein anderes Objekt oder eine andere SQL-Anweisung dem LOW-Service zugeordnet werden kann. Unterstützte Werte sind Der Standardwert ist |
|
Ein JSON-Wert, der Optionen nach Spalte angibt. Die im Parameter
Der Parameter Das Formular ist:
Beispiel:
Standardwerte: Wenn Wenn |
|
Gibt die Standardwerte einer oder mehrerer Bind-Variablen an (für eine mit Bind-Variablen angegebene Dadurch kann ein Tabellen-Hyperlink-Consumer mit Default Bind-Werten auf die Tabellen-Hyperlink-Daten zugreifen, ohne die Bind-Werte als Abfrageparameter anzugeben. |
|
Dieser Parameter ist optional. Setzen Sie den Wert auf Wenn der Parameter nicht angegeben oder der Parameterwert auf Wenn für die Producer-Datenbank keine ACLs konfiguriert sind, wird der Wert Wenn Der Standardwert ist |
|
Dieser Parameter ist optional. Der Parameter Wenn der Parameter Das Kennwort muss mindestens 12 Zeichen lang sein. Das Kennwort muss mindestens einen Großbuchstaben, einen Kleinbuchstaben und ein numerisches Zeichen enthalten. Diese Regeln sind mit denen identisch, die für Kennwortkomplexitätsregeln für einen Datenbankbenutzer durchgesetzt werden, der mit einer Der Standardwert ist |
|
Gibt ein JSON-Array der Details zum Format des JSON-Arrays finden Sie in der folgenden Beschreibung. |
|
Gibt den Abfragetext der |
|
Dieser Parameter ist optional. Der Parameter Wenn der Parameter Der Parameter Der Standardwert dieses Parameters ist |
|
Dieser Parameter ist optional. Dieser Parameter gilt nur, wenn der Parameter Der Parameter Der Standardwert für diesen Parameter ist 10. |
|
JSON, die das Ergebnis des Vorgangs angibt. |
Das Format des JSON-Arrays, das Sie als Parameter sqls
angeben, 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-Anweisung für das Mitglied
Weitere Informationen finden Sie unter Tabellen-Hyperlink mit einer SELECT-Anweisung erstellen. |
schema_name |
Nein |
Schemaname für das Element. Geben Sie nur dann einen Weitere Informationen finden Sie unter Tabellen-Hyperlink für eine Tabelle oder Ansicht erstellen. |
schema_object_name |
Die Angabe von |
Tabellen-/View-Name für das Element
Weitere Informationen finden Sie unter Tabellen-Hyperlink für eine Tabelle oder Ansicht erstellen. |
default_bind_variable |
Nein | Gilt nur für sql_statements mit Bind-Variablen
Weitere Informationen finden Sie unter Tabellen-Hyperlink mit einer SELECT-Anweisung erstellen. |
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 erstellen. |
Hinweise zur Verwendung
-
Es sind maximal 128 aktive Tabellenhyperlinks auf einer autonomen AI-Datenbankinstanz zulässig.
- Wenn Sie einen Tabellen-Hyperlink über einen Browser verwenden, werden die folgenden Optionen unterstützt:
- Zeigen Sie die zurückgegebenen Daten im Tabellenformat ohne Farbgebung (Standard) an, indem Sie den Abfrageparameter
?view=table
an den Tabellen-Hyperlink anhängen. - Zeigen Sie die zurückgegebenen Daten im Tabellenformat an, und wählen Sie die Spalte(n) aus, die basierend auf Spaltenwerten mit voreingestellten Farben eingefärbt werden sollen. Hängen Sie dazu den Abfrageparameter
?view=table&colored_column_names=column_name_1,column_name_2
,...column_name_n
an den Tabellen-Hyperlink an, wobeicolumn_name_1
biscolumn_name_n
die Namen der Spalten sind, die farbig sein sollen. - Zeigen Sie die zurückgegebenen Daten im Tabellenformat an, und wählen Sie einen bestimmten Spaltendatentyp aus, der mit voreingestellten Farben eingefärbt werden soll, indem Sie den Abfrageparameter
?view=table&colored_column_types=data_type
anhängen. Die unterstützten Parameterwerte fürdata_type
sindVARCHAR
undNONE
. -
Der Parameterwert
sql_statement
muss eineSELECT
-Anweisung sein. DieSELECT
-Anweisung unterstützt Bind-Variablen.Wenn Bind-Variablen in der SELECT-Anweisung enthalten sind und keine Werte im Parameter
default_bind_values
festgelegt sind, müssen Bind-Variablenwerte beim Zugriff auf die Daten als Abfrageparameter an den generierten Tabellen-Hyperlink angehängt werden.Wenn Sie den Parameter
default_bind_values
einschließen, können Sie beim Zugriff auf die Daten die Werte der Bind-Variablen weglassen, wenn Standardwerte im Parameterdefault_bind_values
angegeben werden. Sie können einen mitdefault_bind_values
angegebenen Standard-Bind-Variablenwert außer Kraft setzen, indem Sie den Wert der Bind-Variablen explizit als Abfrageparameter angeben.
- Zeigen Sie die zurückgegebenen Daten im Tabellenformat ohne Farbgebung (Standard) an, indem Sie den Abfrageparameter
-
Wenn Sie einen Tabellen-Hyperlink in einer autonomen KI-Datenbankinstanz 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 einen Tabellenhyperlink in einer autonomen KI-Datenbankinstanz 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 auchprivate_preauth_url
.Weitere Informationen finden Sie unter Private Endpunkte konfigurieren und Privaten Endpunkt mit zulässigem öffentlichem Zugriff verwenden.
Beispiele
Beispiel - Für ein bestimmtes Objekt generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für STUDENTS_VIEW
generiert:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'USER1',
schema_object_name => 'STUDENTS_VIEW',
expiration_minutes => 120,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
Beispiel - Für eine SQL-Anweisung generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für eine SQL-Anweisung SELECT
generiert:
DECLARE
status CLOB;
par_url_app_string CLOB;
BEGIN
par_url_app_string := 1919292929;
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement => 'SELECT student_id, student_name FROM STUDENTS_VIEW ORDER BY student_id',
application_user_id => par_url_app_string,
expiration_count => 25,
result => status);
END;
/
Beispiel - Tabellen-Hyperlink, der für eine SQL-Anweisung mit einer Bind-Variablen generiert wurde
Im folgenden Beispiel wird eine Bind-Variable in der Anweisung SELECT
verwendet, um den Tabellen-Hyperlink zu generieren:
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement => 'select * from TREE_DATA WHERE COUNTY = :countyNAME',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
Um den generierten Tabellen-Hyperlink zu verwenden, muss der Wert der Bind-Variablen übergeben werden. Im folgenden Beispiel wird der generierte Tabellen-Hyperlink verwendet, um auf Baumdaten für den ersten Kreis zuzugreifen:
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Tabellen-Hyperlink für den Zugriff auf Daten mit Bind-Variablen verwenden
Das folgende Beispiel verwendet eine Bind-Variable in der Anweisung SELECT
und enthält den Parameter default_bind_values
, um den Tabellen-Hyperlink zu generieren:
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
In diesem Fall wird der Standard-Bind-Variablenwert verwendet, und Sie müssen den Wert nicht als Abfrageparameter angeben. Beispiel:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
{"items":[
{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51}],
"hasMore":false,
"limit":100,
"offset":0,
"count":6,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/gTlbq...example/data"}
]}
Sie können den Wert der Standard-Bind-Variablen überschreiben, indem Sie den Wert explizit als Abfrageparameter angeben. Beispiel:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Beispiel - Für ein bestimmtes Objekt mit Gruppierungsspalten generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für eine bestimmte Tabelle mit angegebenen Gruppierungsspalten generiert:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'ADMIN',
schema_object_name => 'TREE_DATA',
expiration_minutes => 360,
service_name => 'HIGH',
column_lists => {"group_by_columns": ["COUNTY", "SPECIES"]}',
result => status);
dbms_output.put_line(status);
END;
/
Beispiel - Tabellen-Hyperlinkgruppe erstellen
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sqls => '[{"name": "employee", "description": "employee description", "schema_name":"admin", "schema_object_name":"employee"},
{"name":"tree", "description": "tree description", "sql_statement": "select * from admin.tree_data"}]',
expiration_count => 10,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
Beispiel - Erstellen Sie einen Tabellen-Hyperlink mit einer Access Control-Liste (ACL), um gültige Consumer, Kennwort und konsistente Datenansichtsoptionen anzugeben
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'USER1',
schema_object_name => 'STUDENTS_VIEW',
expiration_minutes => 120,
consistent => TRUE,
service_name => 'HIGH',
PASSWORD => '<user_provided_password>'
acl => ''["1.1.1.1", "1.1.1.0/24"]',
result => status);
dbms_output.put_line(status);
END;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur GET_PREAUTHENTICATED_URL
Die Prozedur
GET_PREAUTHENTICATED_URL
ist veraltet. Verwenden Sie stattdessen die Prozedur CREATE_URL, um einen Tabellen-Hyperlink zu generieren.
Es gibt zwei Formen, eine zum Generieren des Tabellen-Hyperlinks für ein bestimmtes Objekt (Tabelle oder View). Das überladene Formular generiert mit dem Parameter sql_statement
einen Tabellen-Hyperlink für eine SQL-Anweisung.
Syntax
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name IN VARCHAR2,
schema_object_name IN VARCHAR2,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement IN CLOB,
application_user_id IN VARCHAR2,
default_bind_values IN CLOB,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt den Eigentümer des Objekts an. |
|
Gibt das Schemaobjekt (Tabelle oder View) an. |
|
Gibt den Abfragetext der |
|
Gibt einen Wert für die Anwendungsbenutzer-ID an. Wenn auf den Tabellen-Hyperlink zugegriffen wird, ist der bei der Tabellen-Hyperlink-Generierung angegebene Wert von sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') Sie können VPD-Policys definieren, die diesen Wert im Anwendungskontext verwenden, um die Zeilen einzuschränken, die für den Anwendungsbenutzer sichtbar sind. |
|
Gibt die Standardwerte einer oder mehrerer Bind-Variablen an (für eine mit Bind-Variablen angegebene Dadurch kann ein Tabellen-Hyperlink-Consumer mit Default Bind-Werten auf die Tabellen-Hyperlink-Daten zugreifen, ohne die Bind-Werte als Abfrageparameter anzugeben. |
|
Gültigkeitsdauer des Tabellen-Hyperlinks in Minuten. Die maximal zulässige Ablaufzeit beträgt 90 Tage (129600 Minuten). Wenn der Wert größer als 129600 ist, wird der Wert 129600 Minuten (90 Tage) verwendet. Wenn Standardwert: Wenn |
|
Anzahl der zulässigen Zugriffe auf den Tabellen-Hyperlink. Hierfür gibt es keinen Standardwert. Wenn Wenn |
|
Der Datenbankservice, der für den Datenabruf bei Verwendung des Tabellen-Hyperlinks verwendet wird. Geben Sie die Service-Level-Garantie und die Ressourcen an, die für den Service dieses Tabellen-Hyperlinks verwendet werden. Beispiel: Der Zugriff auf ein Objekt oder eine SQL-Anweisung kann den Services HIGH oder MEDIUM zugeordnet werden, während der Zugriff auf ein anderes Objekt oder eine andere SQL-Anweisung dem LOW-Service zugeordnet werden kann. Unterstützte Werte sind Der Standardwert ist |
|
Ein JSON-Wert, der Optionen nach Spalte angibt. Die im Parameter
Der Parameter Das Formular ist:
Beispiel:
Standardwerte: Wenn Wenn |
|
Setzen Sie den Wert dieses Parameters auf Wenn der Parameter nicht angegeben oder der Parameterwert auf Wenn für die Producer-Datenbank keine ACLs konfiguriert sind, wird der Wert Der Standardwert ist |
|
JSON, die das Ergebnis des Vorgangs angibt. |
Hinweise zur Verwendung
-
Dieses Verfahren ist veraltet. Verwenden Sie stattdessen die Prozedur CREATE_URL.
-
Es sind maximal 128 aktive Tabellenhyperlinks auf einer autonomen AI-Datenbankinstanz zulässig.
-
Wenn Sie einen Tabellen-Hyperlink in einer autonomen KI-Datenbankinstanz 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 einen Tabellenhyperlink in einer autonomen KI-Datenbankinstanz 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 auchprivate_preauth_url
.Weitere Informationen finden Sie unter Private Endpunkte konfigurieren und Privaten Endpunkt mit zulässigem öffentlichem Zugriff verwenden.
Beispiel - Für ein bestimmtes Objekt generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für STUDENTS_VIEW
generiert:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name => 'USER1',
schema_object_name => 'STUDENTS_VIEW',
expiration_minutes => 120,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
Beispiel - Für eine SQL-Anweisung generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für eine SQL-Anweisung SELECT
generiert:
DECLARE
status CLOB;
par_url_app_string CLOB;
BEGIN
par_url_app_string := 1919292929;
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement => 'SELECT student_id, student_name FROM STUDENTS_VIEW ORDER BY student_id',
application_user_id => par_url_app_string,
expiration_count => 25,
result => status);
END;
/
Beispiel - Tabellen-Hyperlink, der für eine SQL-Anweisung mit einer Bind-Variablen generiert wurde
Im folgenden Beispiel wird eine Bind-Variable in der Anweisung SELECT
verwendet, um den Tabellen-Hyperlink zu generieren:
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement => 'select * from TREE_DATA WHERE COUNTY = :countyNAME',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
Um den generierten Tabellen-Hyperlink zu verwenden, muss der Wert der Bind-Variablen übergeben werden. Im folgenden Beispiel wird der generierte Tabellen-Hyperlink verwendet, um auf Baumdaten für den ersten Kreis zuzugreifen:
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Tabellen-Hyperlink für den Zugriff auf Daten mit Bind-Variablen verwenden
Das folgende Beispiel verwendet eine Bind-Variable in der Anweisung SELECT
und enthält den Parameter default_bind_values
, um den Tabellen-Hyperlink zu generieren:
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
In diesem Fall wird der Standard-Bind-Variablenwert verwendet, und Sie müssen den Wert nicht als Abfrageparameter angeben. Beispiel:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
{"items":[
{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51}],
"hasMore":false,
"limit":100,
"offset":0,
"count":6,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/gTlbq...example/data"}
]}
Sie können den Wert der Standard-Bind-Variablen überschreiben, indem Sie den Wert explizit als Abfrageparameter angeben. Beispiel:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Weitere Informationen finden Sie unter Prozedur GET_PREAUTHENTICATED_URL.
Beispiel - Für ein bestimmtes Objekt mit Gruppierungsspalten generierter Tabellen-Hyperlink
Im folgenden Beispiel wird ein Tabellen-Hyperlink für eine bestimmte Tabelle mit angegebenen Gruppierungsspalten generiert:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name => 'ADMIN',
schema_object_name => 'TREE_DATA',
expiration_minutes => 360,
service_name => 'HIGH',
column_lists => {"group_by_columns": ["COUNTY", "SPECIES"]}',
result => status);
dbms_output.put_line(status);
END;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur EXTEND_URL
Mit diesem Verfahren wird die Lebensdauer eines Tabellen-Hyperlinks oder einer Tabellen-Hyperlink-Gruppe verlängert.
Syntax:
DBMS_DATA_ACCESS.EXTEND_URL(
id IN VARCHAR2,
extend_expiration_minutes_by IN NUMBER,
extend_expiration_count_by IN NUMBER,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID des Tabellen-Hyperlinks oder der Tabellen-Hyperlink-Gruppe an, die erweitert werden soll. |
|
Anzahl der Minuten, um die die Ablaufzeit des Tabellen-Hyperlinks verlängert werden soll. Die Ablaufzeit wird auf die aktuelle Ablaufzeit plus dem Wert Der Wert für Wenn Standardwert ist NULL. |
|
Die Anzahl der Zugriffe auf den Tabellen-Hyperlink wird um diese Anzahl erweitert. Die Ablaufanzahl wird auf die aktuelle Ablaufanzahl plus den Wert Wenn Der Standardwert ist Null. |
|
JSON, die das Ergebnis des Vorgangs angibt. |
Hinweis zur Verwendung
Bei einer Tabellen-Hyperlink-Gruppe id
erweitert die Prozedur alle Element-Tabellen-Hyperlinks mit Ausnahme der Elemente, die mit DBMS_DATA_ACCESS.ADD_MEMBER
hinzugefügt wurden. Die Elemente, die der Tabellen-Hyperlinkgruppe mit DBMS_DATA_ACCESS.ADD_MEMBER
hinzugefügt wurden, verwalten ihre unabhängigen Tabellen-Hyperlink-Invalidierungswerte, und Sie können sie einzeln mit DBMS_DATA_ACCESS.EXTEND_URL
erweitern.
Beispiel - Ablaufminuten für Tabellen-Hyperlink verlängern
set serveroutput on
declare
status clob;
js_status json_object_t;
js_arr json_array_t;
url_id varchar2(4000);
begin
-- Initially sets the expiration time to 60 minutes
dbms_data_access.get_preauthenticated_url(
schema_name => 'SCOTT', -- Schema name
schema_object_name => 'EMPLOYEE', -- Schema object name
expiration_minutes => 60, -- Expiration minutes
service_name => 'HIGH',
result => status);
js_status := json_object_t.parse(status);
url_id := js_status.get_string('id');
dbms_output.put_line('The url id of url: ' || url_id);
dbms_output.put_line('Initial Expiration Time: ' ||
js_status.get_string('expiration_ts'));
-- Extend the expiration minutes by 1 day, the url would now expire
-- 24 hours later than the previous expiration time
dbms_data_access.extend_url(
id => url_id,
extend_expiration_minutes_by => 1440,
result => status);
-- List urls created
status := dbms_data_access.list_active_urls;
js_arr := json_array_t.parse(status);
for indx in 0.. js_arr.get_size - 1
loop
js_status := TREAT (js_arr.get (indx) AS json_object_t);
if js_status.get_string('id') = url_id then
dbms_output.put_line('New Expiration Time : ' ||
js_status.get_string('expiration_time'));
exit;
end if;
end loop;
end;
/
Beispiel - Ablaufanzahl für Tabellen-Hyperlink erweitern
set serveroutput on
declare status clob;
js_status json_object_t;
js_arr json_array_t;
url_id varchar2(4000);
begin
-- Initially sets the expiration count to 100
dbms_data_access.get_preauthenticated_url(
schema_name => 'SCOTT', -- Schema name
schema_object_name => 'EMPLOYEE', -- Schema object name
expiration_count => 100, -- Expiration count
service_name => 'HIGH',
result => status);
js_status := json_object_t.parse(status);
url_id := js_status.get_string('id');
dbms_output.put_line('The url id of url: ' || url_id);
dbms_output.put_line('Initial Expiration Count: ' ||
js_status.get_string('expiration_count'));
-- Extends access count by 100 so url would expire after 200 accesses
dbms_data_access.extend_url(
id => url_id,
extend_expiration_count_by => 100,
result => status);
-- List urls created
status := dbms_data_access.list_active_urls;
js_arr := json_array_t.parse(status);
for indx in 0.. js_arr.get_size - 1
loop
js_status := TREAT (js_arr.get (indx) AS json_object_t);
if js_status.get_string('id') = url_id then
dbms_output.put_line('New Expiration Count : ' ||
js_status.get_string('expiration_count'));
exit;
end if;
end loop;
end;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur INVALIDATE_URL
Diese Prozedur invalidiert einen Tabellen-Hyperlink oder eine Tabellen-Hyperlink-Gruppe.
Syntax
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id IN VARCHAR2,
kill_sessions IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID für den Tabellen-Hyperlink oder die zu invalidierende Tabellen-Hyperlink-Gruppe an. |
|
Dieser Parameter ist optional. Wenn Sie Gültige Werte: |
|
Stellt JSON bereit, um anzugeben, ob die Invalidierung erfolgreich oder nicht erfolgreich ist ( |
Hinweis zur Verwendung
Wenn der Parameter DBMS_DATA_ACCESS.INVALIDATE_URL
id
eine Tabellen-Hyperlink-Gruppe 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.
Beispiel
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Funktion LIST_ACTIVE_URLS
Diese Funktion listet alle derzeit aktiven Tabellen-Hyperlinks und Tabellen-Hyperlink-Gruppen auf.
Syntax
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
RETURN CLOB;
Parameter
Parameter | Beschreibung |
---|---|
RETURN |
Der Rückgabewert ist ein JSON-Array. |
Beispiel
DECLARE
result CLOB;
BEGIN
result := DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
;
DBMS_OUTPUT.PUT_LINE(result);
END;
[{"id":"pT36lYHFGA4s3UXSNBCRO13v3D4_example1",
"created_by":"SCOTT",
"service_name":"HIGH",
"expiration_time":"2025-07-28T16:38:02.723Z",
"expiration_count":10,
"access_count":0,
"created":"2025-04-29T16:38:02.977Z",
"inherit_acl":true,
"sql_statement":"select * FROM TREE_DATA WHERE COUNTY = :county"}]
Hinweise zur Verwendung
-
Das Verhalten von
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
hängt vom ausführenden Benutzer ab. Wenn der ausführende Benutzer ADMIN oder ein Benutzer mit der RollePDB_DBA
ist, listet die Funktion alle aktiven Tabellen-Hyperlinks auf, unabhängig vom Benutzer, der den Tabellen-Hyperlink generiert hat. Wenn der ausführende Benutzer nicht der ADMIN-Benutzer und kein Benutzer mit der RollePDB_DBA
ist, enthält die Liste nur die aktiven Tabellen-Hyperlinks, die vom ausführenden Benutzer generiert werden. -
Wenn Sie einen Tabellen-Hyperlink in einer autonomen KI-Datenbankinstanz mit einem privaten Endpunkt generieren und auflisten, 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 einen Tabellenhyperlink in einer autonomen KI-Datenbankinstanz mit einem privaten Endpunkt generieren und auflisten 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 dieprivate_preauth_url
.Weitere Informationen finden Sie unter Private Endpunkte konfigurieren und Privaten Endpunkt mit zulässigem öffentlichem Zugriff verwenden.
-
Wenn ein Tabellen-Hyperlink ein Gruppenmitglied ist, zeigt der
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
-Antworteintrag "group_ids
" mit einem Wert ungleich null an, der mindestens eine ID enthält. Die IDs zeigen die Tabellen-Hyperlink-Gruppen-IDs an, zu denen der Tabellen-Hyperlink (Gruppenmitglied) gehört.
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur LIST_MEMBERS
Im Folgenden werden die Elemente einer Tabellen-Hyperlink-Gruppe aufgeführt.
Syntax
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id IN VARCHAR2,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID für die Tabellen-Hyperlinkgruppe an. |
|
Stellt JSON bereit, um anzugeben, ob die Invalidierung erfolgreich oder nicht erfolgreich ist ( |
Beispiel
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id => 'aGnHVyZ4vBo4_Fq2R0A2G2-y6TdUKRHeveqyGJ3_example',
result => status);
dbms_output.put_line(status);
END;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur REMOVE_MEMBER
Bei dieser Prozedur wird ein Element aus einer Tabellen-Hyperlink-Gruppe entfernt.
Syntax
DBMS_DATA_ACCESS.REMOVE_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID für die Tabellen-Hyperlinkgruppe an. |
member_id |
Gibt die ID für das Gruppenmitglied an, das aus der Tabellen-Hyperlink-Gruppe entfernt werden soll. |
|
Stellt JSON bereit, um anzugeben, ob die Invalidierung erfolgreich oder nicht erfolgreich ist ( |
Hinweise zur Verwendung
- Der Wert
member_id
darf keine Tabellen-Hyperlinkgruppen-ID sein (is_group_url
mussfalse
sein). -
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.
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;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur UPDATE_URL
Mit diesem Verfahren werden Eigenschaften für einen Tabellen-Hyperlink oder für eine Tabellen-Hyperlink-Gruppe aktualisiert.
Syntax:
DBMS_DATA_ACCESS.UPDATE_URL
(
id IN VARCHAR2,
extend_expiration_minutes_by IN NUMBER,
extend_expiration_count_by IN NUMBER,
inherit_acl IN BOOLEAN DEFAULT NULL,
acl IN CLOB DEFAULT NULL,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt die ID des Tabellen-Hyperlinks oder der Tabellen-Hyperlink-Gruppe an, die erweitert werden soll. |
|
Anzahl der Minuten, um die die Ablaufzeit des Tabellen-Hyperlinks verlängert werden soll. Die Ablaufzeit wird auf die aktuelle Ablaufzeit plus dem Wert Wenn Sie keinen Wert für Der Standardwert ist |
|
Die Anzahl der Zugriffe auf den Tabellen-Hyperlink wird um diese Anzahl erweitert. Die Ablaufanzahl wird auf die aktuelle Ablaufanzahl plus den Wert Der Standardwert ist |
|
Aktualisiert den Wert der übernommenen ACLs. Wenn dieser Parameter Wenn der Parameterwert Wenn der Parameter nicht angegeben wird, wird der vorhandene Wert der |
|
Aktualisiert den Wert des Parameters Um die für einen Tabellen-Hyperlink spezifische ACL zu deaktivieren, geben Sie den Wert |
|
JSON, die das Ergebnis des Vorgangs angibt. |
Hinweis zur Verwendung
Bei einer Tabellen-Hyperlink-Gruppe id
wendet die Prozedur die aktualisierte Eigenschaft auf alle Element-Tabellen-Hyperlinks an, mit Ausnahme der Elemente, die mit DBMS_DATA_ACCESS.ADD_MEMBER
hinzugefügt wurden. Die Elemente, die der Tabellen-Hyperlink-Gruppe mit DBMS_DATA_ACCESS.ADD_MEMBER
hinzugefügt wurden, verwalten ihre unabhängigen Tabellen-Hyperlink-Parameterwerte, und Sie können sie mit UPDATE_URL
einzeln aktualisieren.
Beispiel - Ablaufanzahl für einen Tabellen-Hyperlink aktualisieren
set serveroutput on
declare status clob;
js_status json_object_t;
js_arr json_array_t;
url_id varchar2(4000);
begin
-- Initially sets the expiration count to 100
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'SCOTT', -- Schema name
schema_object_name => 'EMPLOYEE', -- Schema object name
expiration_count => 100, -- Expiration count
service_name => 'HIGH',
result => status);
js_status := json_object_t.parse(status);
url_id := js_status.get_string('id');
dbms_output.put_line('The url id of url: ' || url_id);
dbms_output.put_line('Initial Expiration Count: ' ||
js_status.get_string('expiration_count'));
-- Extends access count by 100 so url would expire after 200 accesses
DBMS_DATA_ACCESS.UPDATE_URL
(
id => url_id,
extend_expiration_count_by => 100,
result => status);
-- List urls created
status := DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
;
js_arr := json_array_t.parse(status);
for indx in 0.. js_arr.get_size - 1
loop
js_status := TREAT (js_arr.get (indx) AS json_object_t);
if js_status.get_string('id') = url_id then
dbms_output.put_line('New Expiration Count : ' ||
js_status.get_string('expiration_count'));
exit;
end if;
end loop;
end;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS