Pacchetto DBMS_DATA_ACCESS
Il pacchetto DBMS_DATA_ACCESS
fornisce le routine per generare e gestire i collegamenti ipertestuali tabella per i data set.
- DBMS_DATA_ACCESS Panoramica
Verrà descritto l'uso del pacchettoDBMS_DATA_ACCESS
. - DBMS_DATA_ACCESS Modello di sicurezza
La sicurezza di questo package può essere controllata concedendo aEXECUTE
questo package agli utenti o ai ruoli selezionati. - Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
In questa sezione vengono descritti i sottoprogrammiDBMS_DATA_ACCESS
forniti con Autonomous Database.
Argomento padre: Riferimento del package fornito per Autonomous Database
Panoramica di DBMS_DATA_ACCESS
Descrive l'uso del pacchetto DBMS_DATA_ACCESS
.
DBMS_DATA_ACCESS
supporta le operazioni riportate di seguito.
- Generazione di un collegamento ipertestuale tabella
- Invalidazione manuale di un collegamento ipertestuale tabella
- Elenco di collegamenti ipertestuali tabella attivi
Argomento padre: Pacchetto DBMS_DATA_ACCESS
Modello di sicurezza DBMS_DATA_ACCESS
La sicurezza di questo pacchetto può essere controllata assegnando EXECUTE
a utenti o ruoli selezionati.
EXECUTE
su DBMS_DATA_ACCESS
, è possibile creare, elencare o invalidare i collegamenti ipertestuali tabella creati dall'utente. Inoltre, per impostazione predefinita, l'utente ADMIN dispone dei privilegi riportati di seguito.
- L'utente ADMIN con ruolo
PDB_DBA
dispone del privilegioEXECUTE
suDBMS_DATA_ACCESS
. - L'utente ADMIN con il ruolo
PDB_DBA
è in grado di elencare o invalidare qualsiasi collegamento ipertestuale tabella in un'istanza di Autonomous Database.
Argomento padre: Pacchetto DBMS_DATA_ACCESS
Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
In questa sezione vengono descritti i programmi secondari DBMS_DATA_ACCESS
forniti con Autonomous Database.
Sottoprogramma | Descrizione |
---|---|
Questa procedura aggiunge un collegamento ipertestuale tabella esistente al gruppo di collegamenti ipertestuali tabella come membro. |
|
Questa procedura genera un collegamento ipertestuale tabella o un gruppo di collegamenti ipertestuali tabella. |
|
Questa procedura estende la durata di un collegamento ipertestuale tabella. |
|
Questa procedura genera un collegamento ipertestuale tabella. Questa procedura è deprecata. In alternativa, utilizzare la procedura CREATE_URL. |
|
Questa procedura invalida un collegamento ipertestuale tabella. |
|
Questa funzione elenca tutti i collegamenti ipertestuali tabella attualmente attivi. |
|
Questa procedura elenca i membri di un gruppo di collegamenti ipertestuali tabella. |
|
Questa procedura rimuove un membro da un gruppo di collegamenti ipertestuali tabella. |
- ADD_MEMBER Procedura
Questa procedura aggiunge un collegamento ipertestuale tabella esistente al gruppo di collegamenti ipertestuali tabella come membro. - CREATE_URL Procedura
Questa procedura genera un collegamento ipertestuale tabella o un gruppo di collegamenti ipertestuali tabella. Un gruppo di collegamenti ipertestuali tabella consente di accedere a più collegamenti ipertestuali tabella con un singolo URL. Questa procedura è sovraccaricata. - GET_PREAUTHENTICATED_URL Procedura
Questa procedura genera un collegamento ipertestuale tabella. - EXTEND_URL Procedura
Questa procedura estende la durata di un collegamento ipertestuale tabella o di un gruppo di collegamenti ipertestuali tabella. - INVALIDATE_URL Procedura
Questa procedura invalida un collegamento ipertestuale tabella o un gruppo di collegamenti ipertestuali tabella. - LIST_ACTIVE_URLS Funzione
Questa funzione elenca tutti i collegamenti ipertestuali tabella e i gruppi di collegamenti ipertestuali tabella attualmente attivi. - LIST_MEMBERS Procedura
Questa procedura elenca i membri di un gruppo di collegamenti ipertestuali tabella. - REMOVE_MEMBER Procedura
Questa procedura rimuove un membro da un gruppo di collegamenti ipertestuali tabella.
Argomento padre: Pacchetto DBMS_DATA_ACCESS
Procedura ADD_MEMBER
Questa procedura aggiunge un collegamento ipertestuale tabella esistente al gruppo di collegamenti ipertestuali tabella come membro.
Sintassi
DBMS_DATA_ACCESS.ADD_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica l'identificativo per il gruppo di collegamenti ipertestuali tabella. |
member_id |
Specifica l'identificativo per il collegamento ipertestuale tabella da aggiungere al gruppo. |
|
Fornisce la notazione JSON per indicare se l'annullamento della convalida è un operazione riuscita o un errore ( |
Esempio
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.ADD_MEMBER
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura CREATE_URL
Sintassi
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);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica un array JSON delle istruzioni Vedere la seguente descrizione per i dettagli sul formato dell'array JSON. |
|
Specifica il proprietario dell'oggetto. |
|
Specifica l'oggetto schema (tabella o vista). |
|
Specifica il testo della query dell'istruzione |
|
Questo parametro facoltativo specifica un valore ID utente applicazione. Quando si accede al collegamento ipertestuale tabella o al gruppo di collegamenti ipertestuali tabella, il valore sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') È possibile definire criteri VPD che utilizzano questo valore nel contesto dell'applicazione per limitare le righe visibili all'utente dell'applicazione. |
|
Specifica i valori predefiniti di una o più bind variable (per un valore Ciò consente a un consumer di collegamenti ipertestuali di tabella di accedere ai dati dei collegamenti ipertestuali di tabella con valori di associazione predefiniti, senza fornire i valori di associazione come parametri di query. |
|
Questo parametro facoltativo specifica la durata in minuti di validità del collegamento ipertestuale tabella o del gruppo di collegamenti ipertestuali tabella. Il tempo di scadenza massimo consentito è di 90 giorni (129600 minuti). Se il valore è impostato su maggiore di 129600, il valore utilizzato è 129600 minuti (90 giorni). Se Valore predefinito: se |
|
Questo parametro facoltativo specifica il numero di accessi consentiti nel collegamento ipertestuale tabella o nel gruppo di collegamenti ipertestuali tabella. Non è disponibile alcun valore predefinito. Se Se |
|
Servizio di database da utilizzare per il recupero dei dati quando si utilizza il collegamento ipertestuale tabella. Specificare la garanzia a livello di servizio e le risorse utilizzate per servire questo collegamento ipertestuale tabella. Ad esempio, l'accesso a un oggetto o a un'istruzione SQL può essere mappato ai servizi HIGH o MEDIUM, mentre l'accesso a un altro oggetto o a un'istruzione SQL può essere mappato al servizio LOW. I valori supportati sono Il valore predefinito è |
|
Valore JSON che specifica le opzioni per colonna. Le opzioni supportate specificate nel parametro
Il parametro Il formato è il seguente:
Ad esempio:
Valori predefiniti: Se Se |
|
Si tratta di un parametro facoltativo. Impostare il valore su Se il parametro non viene fornito o il valore del parametro è impostato su Se nel database del producer non sono configurate ACL, il valore Il valore predefinito è |
|
JSON che indica il risultato dell'operazione. |
Il formato dell'array JSON fornito come parametro sqls
è:
Nome attributo | Obbligatorio | Descrizione |
---|---|---|
name |
N | Specifica il nome del membro del gruppo. Quando non viene fornito alcun nome, viene creato un nome predefinito nella procedura. |
description |
N | Descrizione membro gruppo |
sql_statement |
Fornire |
Istruzione SQL per il membro
Per informazioni dettagliate, vedere Generare un collegamento ipertestuale di tabella con un'istruzione Select. |
schema_name |
N |
Nome dello schema per il membro. Fornire un valore Per informazioni dettagliate, vedere Generare un collegamento ipertestuale tabella per una tabella o una vista. |
schema_object_name |
Fornire |
Nome tabella/vista per il membro
Per informazioni dettagliate, vedere Generare un collegamento ipertestuale tabella per una tabella o una vista. |
default_bind_variable |
N | Applicabile solo per sql_statements con bind variable
Per informazioni dettagliate, vedere Generare un collegamento ipertestuale di tabella con un'istruzione Select. |
column_lists |
N | Come definito per la creazione di un collegamento ipertestuale tabella non di gruppo
Per informazioni dettagliate, vedere Generare un collegamento ipertestuale di tabella con le funzioni dell'interfaccia utente specificate nelle colonne. |
Note sull'uso
-
È previsto un limite di 128 collegamenti ipertestuali tabella attivi in un'istanza di Autonomous Database.
- Quando si utilizza un collegamento ipertestuale tabella da un browser, sono supportate le opzioni riportate di seguito.
- Visualizzare i dati restituiti in formato tabella senza colorazione (impostazione predefinita) aggiungendo il parametro di query
?view=table
al collegamento ipertestuale tabella. - Visualizzare i dati restituiti in formato tabella e selezionare la colonna o le colonne da colorare con colori preimpostati in base ai valori di colonna. A tale scopo, aggiungere il parametro di query
?view=table&colored_column_names=column_name_1,column_name_2
,...column_name_n
al collegamento ipertestuale tabella, dove dacolumn_name_1
acolumn_name_n
sono i nomi delle colonne che si desidera colorare. - Visualizzare i dati restituiti in formato tabella e selezionare un tipo di dati di colonna specifico da colorare con colori preimpostati, aggiungendo il parametro di query
?view=table&colored_column_types=data_type
. I valori dei parametri supportatidata_type
sonoVARCHAR
eNONE
. -
Il valore del parametro
sql_statement
deve essere un'istruzioneSELECT
. L'istruzioneSELECT
supporta le bind variable.Se le bind variable sono incluse nell'istruzione SELECT e i valori non sono impostati nel parametro
default_bind_values
, i valori delle bind variable devono essere aggiunti al collegamento ipertestuale tabella generato come parametro di query quando si accede ai dati.Quando si include il parametro
default_bind_values
, quando si accede ai dati è possibile omettere i valori delle bind variable quando vengono specificati valori predefiniti nel parametrodefault_bind_values
. È possibile sostituire un valore di bind variable predefinito specificato condefault_bind_values
specificando in modo esplicito il valore della bind variable come parametro di query.
- Visualizzare i dati restituiti in formato tabella senza colorazione (impostazione predefinita) aggiungendo il parametro di query
-
Quando si genera un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato, il risultato include un nome
private_preauth_url
con il valore del formato:"https://private-endpoint/adb/p/parurl-token/data"
.Quando si genera un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato e l'endpoint privato viene configurato con l'opzione Consenti accesso pubblico abilitata, il risultato include sia l'opzione
preauth_url
per l'endpoint pubblico che l'opzioneprivate_preauth_url
.Per ulteriori informazioni, vedere Configura endpoint privati e Usa un endpoint privato con accesso pubblico consentito.
Esempi
Esempio - Collegamento ipertestuale tabella generato per un oggetto specifico
L'esempio riportato di seguito genera un collegamento ipertestuale tabella per STUDENTS_VIEW
.
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;
/
Esempio - Collegamento ipertestuale tabella generato per un'istruzione SQL
Nell'esempio seguente viene generato un collegamento ipertestuale tabella per un'istruzione SQL SELECT
.
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;
/
Esempio - Collegamento ipertestuale tabella generato per un'istruzione SQL con una variabile di binding
Nell'esempio seguente viene utilizzata una bind variable nell'istruzione SELECT
per generare il collegamento ipertestuale tabella.
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;
/
Per utilizzare il collegamento ipertestuale tabella generato, è necessario passare il valore della bind variable. Nell'esempio seguente viene utilizzato il collegamento ipertestuale tabella generato per accedere ai dati della struttura per la prima contea.
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Usa collegamento ipertestuale tabella per accedere ai dati con variabili di binding
L'esempio seguente utilizza una bind variable nell'istruzione SELECT
e include il parametro default_bind_values
per generare il collegamento ipertestuale tabella.
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 questo caso, viene utilizzato il valore della bind variable predefinito e non è necessario fornire il valore come parametro di query. Ad esempio:
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"}
]}
È possibile sostituire il valore della bind variable predefinita specificando in modo esplicito il valore come parametro di query. Ad esempio:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Esempio - Collegamento ipertestuale tabella generato per un oggetto specifico con colonne Raggruppa per
Nell'esempio seguente viene generato un collegamento ipertestuale tabella per una tabella specifica con le colonne Raggruppa per specificate:
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;
/
Esempi
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;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura GET_PREAUTHENTICATED_URL
Esistono due moduli, uno per generare il collegamento ipertestuale tabella per un oggetto specifico (tabella o vista). Il form sovraccarico, utilizzando il parametro sql_statement
, genera un collegamento ipertestuale tabella per un'istruzione SQL.
Sintassi
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);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica il proprietario dell'oggetto. |
|
Specifica l'oggetto schema (tabella o vista). |
|
Specifica il testo della query dell'istruzione |
|
Specifica un valore ID utente applicazione. Quando si accede al collegamento ipertestuale della tabella, il valore sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') È possibile definire criteri VPD che utilizzano questo valore nel contesto dell'applicazione per limitare le righe visibili all'utente dell'applicazione. |
|
Specifica i valori predefiniti di una o più bind variable (per un valore Ciò consente a un consumer di collegamenti ipertestuali di tabella di accedere ai dati dei collegamenti ipertestuali di tabella con valori di associazione predefiniti, senza fornire i valori di associazione come parametri di query. |
|
Durata in minuti di validità del collegamento ipertestuale tabella. Il tempo di scadenza massimo consentito è di 90 giorni (129600 minuti). Se il valore è impostato su maggiore di 129600, il valore utilizzato è 129600 minuti (90 giorni). Se Valore predefinito: se |
|
Numero di accessi consentiti nel collegamento ipertestuale tabella. Non è disponibile alcun valore predefinito. Se Se |
|
Servizio di database da utilizzare per il recupero dei dati quando si utilizza il collegamento ipertestuale tabella. Specificare la garanzia a livello di servizio e le risorse utilizzate per servire questo collegamento ipertestuale tabella. Ad esempio, l'accesso a un oggetto o a un'istruzione SQL può essere mappato ai servizi HIGH o MEDIUM, mentre l'accesso a un altro oggetto o a un'istruzione SQL può essere mappato al servizio LOW. I valori supportati sono Il valore predefinito è |
|
Valore JSON che specifica le opzioni per colonna. Le opzioni supportate specificate nel parametro
Il parametro Il formato è il seguente:
Ad esempio:
Valori predefiniti: Se Se |
|
Impostare il valore di questo parametro su Se il parametro non viene fornito o il valore del parametro è impostato su Se nel database del producer non sono configurate ACL, il valore Il valore predefinito è |
|
JSON che indica il risultato dell'operazione. |
Note sull'uso
-
Questa procedura è deprecata. In alternativa, utilizzare la procedura CREATE_URL.
-
È previsto un limite di 128 collegamenti ipertestuali tabella attivi in un'istanza di Autonomous Database.
-
Quando si genera un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato, il risultato include un nome
private_preauth_url
con il valore del formato:"https://private-endpoint/adb/p/parurl-token/data"
.Quando si genera un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato e l'endpoint privato viene configurato con l'opzione Consenti accesso pubblico abilitata, il risultato include sia l'opzione
preauth_url
per l'endpoint pubblico che l'opzioneprivate_preauth_url
.Per ulteriori informazioni, vedere Configura endpoint privati e Usa un endpoint privato con accesso pubblico consentito.
Esempio - Collegamento ipertestuale tabella generato per un oggetto specifico
L'esempio riportato di seguito genera un collegamento ipertestuale tabella per STUDENTS_VIEW
.
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;
/
Esempio - Collegamento ipertestuale tabella generato per un'istruzione SQL
Nell'esempio seguente viene generato un collegamento ipertestuale tabella per un'istruzione SQL SELECT
.
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;
/
Esempio - Collegamento ipertestuale tabella generato per un'istruzione SQL con una variabile di binding
Nell'esempio seguente viene utilizzata una bind variable nell'istruzione SELECT
per generare il collegamento ipertestuale tabella.
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;
/
Per utilizzare il collegamento ipertestuale tabella generato, è necessario passare il valore della bind variable. Nell'esempio seguente viene utilizzato il collegamento ipertestuale tabella generato per accedere ai dati della struttura per la prima contea.
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Usa collegamento ipertestuale tabella per accedere ai dati con variabili di binding
L'esempio seguente utilizza una bind variable nell'istruzione SELECT
e include il parametro default_bind_values
per generare il collegamento ipertestuale tabella.
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 questo caso, viene utilizzato il valore della bind variable predefinito e non è necessario fornire il valore come parametro di query. Ad esempio:
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"}
]}
È possibile sostituire il valore della bind variable predefinita specificando in modo esplicito il valore come parametro di query. Ad esempio:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Per ulteriori informazioni, vedere GET_PREAUTHENTICATED_URL Procedure.
Esempio - Collegamento ipertestuale tabella generato per un oggetto specifico con colonne Raggruppa per
Nell'esempio seguente viene generato un collegamento ipertestuale tabella per una tabella specifica con le colonne Raggruppa per specificate:
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;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura EXTEND_URL
Questa procedura estende la durata di un collegamento ipertestuale tabella o di un gruppo di collegamenti ipertestuali tabella.
Sintassi:
DBMS_DATA_ACCESS.EXTEND_URL(
id IN VARCHAR2,
extend_expiration_minutes_by IN NUMBER,
extend_expiration_count_by IN NUMBER,
result OUT CLOB);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica l'ID del collegamento ipertestuale tabella o del gruppo di collegamenti ipertestuali tabella da estendere. |
|
Numero di minuti entro i quali estendere la durata di scadenza del collegamento ipertestuale tabella. L'ora di scadenza è impostata sull'ora di scadenza corrente più il valore Il valore per Se Il valore predefinito è NULL. |
|
Il numero di accessi sul collegamento ipertestuale tabella viene esteso da questo conteggio. Il conteggio delle scadenze viene impostato sul conteggio delle scadenze corrente più il valore Se Il valore predefinito è nullo. |
|
JSON che indica il risultato dell'operazione. |
Nota per l'uso
Con un gruppo di collegamenti ipertestuali tabella id
, la procedura estende tutti i collegamenti ipertestuali tabella membri ad eccezione dei membri aggiunti con DBMS_DATA_ACCESS.ADD_MEMBER
. I membri aggiunti al gruppo di collegamenti ipertestuali tabella con DBMS_DATA_ACCESS.ADD_MEMBER
mantengono i valori di invalidazione dei collegamenti ipertestuali tabella indipendenti ed è possibile estenderli singolarmente utilizzando DBMS_DATA_ACCESS.EXTEND_URL
.
Esempio - Estendi minuti scadenza collegamento ipertestuale tabella
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;
/
Esempio - Estendi conteggio scadenza collegamento ipertestuale tabella
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;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura INVALIDATE_URL
Questa procedura invalida un collegamento ipertestuale tabella o un gruppo di collegamenti ipertestuali tabella.
Sintassi
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id IN VARCHAR2,
kill_sessions IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica l'identificativo del collegamento ipertestuale tabella o del gruppo di collegamenti ipertestuali tabella da invalidare. |
|
Si tratta di un parametro facoltativo. Per impostazione predefinita, quando si eseguono Valori validi: |
|
Fornisce la notazione JSON per indicare se l'annullamento della convalida è un operazione riuscita o un errore ( |
Nota per l'uso
Quando il parametro DBMS_DATA_ACCESS.INVALIDATE_URL
id
è un gruppo di collegamenti ipertestuali tabella, la procedura invalida il gruppo e tutti i membri del gruppo, ad eccezione dei membri del gruppo aggiunti con DBMS_DATA_ACCESS.ADD_MEMBER
. Dopo aver eseguito DBMS_DATA_ACCESS.INVALIDATE_URL
, i membri aggiunti con DBMS_DATA_ACCESS.ADD_MEMBER
mantengono i valori di invalidazione dei collegamenti ipertestuali tabella indipendenti ed è possibile invalidare questi collegamenti ipertestuali tabella singolarmente utilizzando DBMS_DATA_ACCESS.INVALIDATE_URL
.
Esempio
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Funzione LIST_ACTIVE_URLS
Questa funzione elenca tutti i collegamenti ipertestuali tabella e i gruppi di collegamenti ipertestuali tabella attualmente attivi.
Sintassi
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
RETURN CLOB;
Parametri
Parametro | Descrizione |
---|---|
RETURN |
Il valore restituito è un array JSON. |
Esempio
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"}]
Note sull'uso
-
Il comportamento di
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
dipende dal chiamante. Se il chiamante è ADMIN o un utente con ruoloPDB_DBA
, la funzione elenca tutti i collegamenti ipertestuali tabella attivi, indipendentemente dall'utente che ha generato il collegamento ipertestuale tabella. Se il chiamante non è l'utente ADMIN e non un utente con ruoloPDB_DBA
, l'elenco include solo i collegamenti ipertestuali tabella attivi generati dal chiamante. -
Quando si genera ed elenca un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato, il risultato include un nome
private_preauth_url
con il valore del formato:"https://private-endpoint/adb/p/parurl-token/data"
.Quando si genera ed elenca un collegamento ipertestuale tabella in un'istanza di Autonomous Database con un endpoint privato e l'endpoint privato è configurato con l'opzione Consenti accesso pubblico abilitata, il risultato include sia l'opzione
preauth_url
per l'endpoint pubblico che l'opzioneprivate_preauth_url
.Per ulteriori informazioni, vedere Configura endpoint privati e Usa un endpoint privato con accesso pubblico consentito.
-
Quando un collegamento ipertestuale tabella è un membro di gruppo, la voce di risposta
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
mostra "group_ids
" con un valore non nullo che include uno o più ID. Gli ID mostrano gli ID del gruppo di collegamenti ipertestuali tabella di cui è membro il collegamento ipertestuale tabella (membro del gruppo).
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura LIST_MEMBERS
Questa procedura elenca i membri di un gruppo di collegamenti ipertestuali tabella.
Sintassi
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id IN VARCHAR2,
result OUT CLOB);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica l'identificativo per il gruppo di collegamenti ipertestuali tabella. |
|
Fornisce la notazione JSON per indicare se l'annullamento della convalida è un operazione riuscita o un errore ( |
Esempio
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id => 'aGnHVyZ4vBo4_Fq2R0A2G2-y6TdUKRHeveqyGJ3_example',
result => status);
dbms_output.put_line(status);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS
Procedura REMOVE_MEMBER
Questa procedura rimuove un membro da un gruppo di collegamenti ipertestuali tabella.
Sintassi
DBMS_DATA_ACCESS.REMOVE_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Parametri
Parametro | Descrizione |
---|---|
|
Specifica l'identificativo per il gruppo di collegamenti ipertestuali tabella. |
member_id |
Specifica l'identificativo per il membro del gruppo da rimuovere dal gruppo di collegamenti ipertestuali tabella. |
|
Fornisce la notazione JSON per indicare se l'annullamento della convalida è un operazione riuscita o un errore ( |
Note sull'uso
- Il valore
member_id
non può essere un ID gruppo collegamenti ipertestuali tabella (is_group_url
deve esserefalse
). -
Se il membro rimosso è un collegamento ipertestuale tabella esistente aggiunto al gruppo utilizzando
DBMS_DATA_ACCESS.ADD_MEMBER
, il membro viene rimosso dal gruppo, ma è possibile accedere direttamente al collegamento ipertestuale tabella fino a quando non viene invalidato o non scade in modo esplicito. -
Se un gruppo di collegamenti ipertestuali tabella contiene un solo membro e tale membro viene rimosso, il gruppo viene invalidato.
Esempio
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.REMOVE_MEMBER
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
Argomento padre: Riepilogo dei sottoprogrammi DBMS_DATA_ACCESS