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 Database bereitgestellt werden.
Übergeordnetes Thema: Von Autonomous Database bereitgestellte Packages - Referenz
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 Autonomous Database-Instanz 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 Autonomous Database 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. |
- 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.
Ü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,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
DBMS_DATA_ACCESS.CREATE_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);
DBMS_DATA_ACCESS.CREATE_URL
(
sqls IN CLOB,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt ein JSON-Array der Details zum Format des JSON-Arrays finden Sie in der folgenden Beschreibung. |
|
Gibt den Eigentümer des Objekts an. |
|
Gibt das Schemaobjekt (Tabelle oder View) an. |
|
Gibt den Abfragetext der |
|
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. |
|
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 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 |
|
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 |
|
Dieser Parameter ist optional. Legen 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 Der Standardwert ist |
|
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 generieren. |
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 generieren. |
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 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. |
Hinweise zur Verwendung
-
In einer Autonomous Database-Instanz sind maximal 128 aktive Tabellenhyperlinks 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 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 einen Tabellen-Hyperlink 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 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;
/
Beispiele
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;
/
Übergeordnetes Thema: Zusammenfassung der Unterprogramme DBMS_DATA_ACCESS
Prozedur GET_PREAUTHENTICATED_URL
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.
-
In einer Autonomous Database-Instanz sind maximal 128 aktive Tabellenhyperlinks zulässig.
-
Wenn Sie einen Tabellen-Hyperlink 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 einen Tabellen-Hyperlink 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 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 Autonomous Database-Instanz 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 Tabellen-Hyperlink in einer Autonomous Database-Instanz 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