Ensemble DBMS_DATA_ACCESS
L'ensemble DBMS_DATA_ACCESS fournit des sous-programmes pour générer et gérer les hyperliens de table pour les jeux de données.
- Aperçu de DBMS_DATA_ACCESS
Décrit l'utilisation de l'ensembleDBMS_DATA_ACCESS. - DBMS_DATA_ACCESS Security Model (Modèle de sécurité)
La sécurité de cet ensemble peut être contrôlée en accordantEXECUTEsur cet ensemble à des utilisateurs ou rôles sélectionnés. - Sommaire des sous-programmes DBMS_DATA_ACCESS
Cette section traite des sous-programmesDBMS_DATA_ACCESSfournis avec Autonomous AI Database.
Aperçu de DBMS_DATA_ACCESS
Décrit l'utilisation de l'ensemble DBMS_DATA_ACCESS.
DBMS_DATA_ACCESS prend en charge les opérations suivantes :
- Génération d'un hyperlien de table
- Invalidation manuelle d'un hyperlien de table
- Liste des hyperliens de table actifs
Rubrique parent : Ensemble DBMS_DATA_ACCESS
Modèle de sécurité DBMS_DATA_ACCESS
La sécurité de cet ensemble peut être contrôlée en accordant EXECUTE sur cet ensemble aux utilisateurs ou rôles sélectionnés.
EXECUTE sur DBMS_DATA_ACCESS, il peut créer, lister ou invalider les hyperliens de table créés par l'utilisateur. En outre, l'utilisateur ADMIN dispose par défaut des privilèges suivants :
- L'utilisateur ADMIN doté du rôle
PDB_DBAdispose du privilègeEXECUTEsurDBMS_DATA_ACCESS. - L'utilisateur ADMIN doté du rôle
PDB_DBApeut lister ou invalider tout hyperlien de table dans une instance de base de données du service d'intelligence artificielle autonome.
Rubrique parent : Ensemble DBMS_DATA_ACCESS
Sommaire des sous-programmes DBMS_DATA_ACCESS
Cette section décrit les sous-programmes DBMS_DATA_ACCESS fournis avec Autonomous AI Database.
| Sous-programme | Description |
|---|---|
|
Cette procédure ajoute un hyperlien de table existant au groupe d'hyperliens de table en tant que membre. |
|
|
Cette procédure génère un hyperlien de table ou un groupe d'hyperliens de table. |
|
|
Cette procédure prolonge la durée de vie d'un hyperlien de table. |
|
| CREATE_FEDERATED_TABLE | Cette procédure crée une table fédérée. |
| DROP_FEDERATED_TABLE | Cette procédure supprime une table fédérée. |
|
Cette procédure génère un hyperlien de table. Cette procédure est obsolète. Utilisez plutôt la procédure CREATE_URL. |
|
|
Cette procédure invalide un hyperlien de table. |
|
|
Cette fonction liste tous les hyperliens de table actuellement actifs. |
|
|
Cette procédure répertorie les membres d'un groupe d'hyperliens de table. |
|
|
Cette procédure supprime un membre d'un groupe d'hyperliens de table. |
|
|
Cette procédure met à jour les propriétés d'un hyperlien de table ou d'un groupe d'hyperliens de table. |
- Procédure ADD_MEMBER
Cette procédure ajoute un hyperlien de table existant au groupe d'hyperliens de table en tant que membre. - Procédure CREATE_URL
Cette procédure génère un hyperlien de table ou un groupe d'hyperliens de table. Un groupe d'hyperliens de table permet d'accéder à plusieurs hyperliens de table avec une seule URL. Cette procédure est surchargée. - Procédure CREATE_FEDERATED_TABLE
Une base de données Consumer AI utilise cette procédure pour créer une table fédérée. Cette procédure est surchargée. - Procédure DROP_FEDERATED_TABLE
- Procédure GET_PREAUTHENTICATED_URL
Cette procédure génère un hyperlien de table. - Procédure EXTEND_URL
Cette procédure prolonge la durée de vie d'un hyperlien de table ou d'un groupe d'hyperliens de table. - Procédure INVALIDATE_URL
Cette procédure invalide un hyperlien de table ou un groupe d'hyperliens de table. - Fonction LIST_ACTIVE_URLS
Cette fonction liste tous les hyperliens de table et groupes d'hyperliens de table actuellement actifs. - Procédure LIST_MEMBERS
Cette procédure liste les membres d'un groupe d'hyperliens de table. - Procédure REMOVE_MEMBER
Cette procédure supprime un membre d'un groupe d'hyperliens de table. - Procédure UPDATE_URL
Cette procédure met à jour les propriétés d'un hyperlien de table ou d'un groupe d'hyperliens de table.
Rubrique parent : Ensemble DBMS_DATA_ACCESS
ADD_MEMBER Procédure
Cette procédure ajoute un hyperlien de table existant au groupe d'hyperliens de table en tant que membre.
Syntaxe
DBMS_DATA_ACCESS.ADD_MEMBER(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'identificateur du groupe d'hyperliens de table. |
member_id |
Indique l'identificateur de l'hyperlien de table à ajouter au groupe. |
|
|
Fournit JSON pour indiquer si l'invalidation est un succès ou un échec ( |
Exemple
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.ADD_MEMBER(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
CREATE_URL Procédure
Syntaxe
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);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique le responsable de l'objet. |
|
|
Indique l'objet de schéma (table ou vue). |
|
|
Ce paramètre facultatif spécifie une valeur d'ID utilisateur d'application. Lorsque vous accédez à l'hyperlien de table ou au groupe d'hyperliens de table, la valeur sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')Vous pouvez définir des stratégies de BDVP qui utilisent cette valeur dans le contexte d'application pour limiter la visibilité des enregistrements à l'utilisateur de l'application. |
|
|
Ce paramètre facultatif spécifie la durée en minutes de validité de l'hyperlien de table ou du groupe d'hyperliens de table. Le délai d'expiration maximal autorisé est de 90 jours (129600 minutes). Si la valeur est supérieure à 129600, la valeur utilisée est 129600 minutes (90 jours). Si Valeur par défaut : lorsque |
|
|
Ce paramètre facultatif spécifie le nombre d'accès autorisés sur l'hyperlien de table ou sur le groupe d'hyperliens de table. Il n'existe aucune valeur par défaut. Si Si |
|
|
Ce paramètre est facultatif. Lorsque cette option est réglée à Lorsque Exemple : Remarque : si l'activité de la base de données est importante et que suffisamment de temps passe entre l'extraction de la première page et l'extraction d'une page suivante, il peut ne pas être possible d'extraire des données ultérieures cohérentes avec le premier accès. Dans ce cas, l'extraction entraîne une erreur. Remarque : si l'activité de la base de données est importante et que suffisamment de temps passe entre l'extraction de la première page et l'extraction d'une page suivante, il peut ne pas être possible d'extraire des données ultérieures cohérentes avec le premier accès. Dans ce cas, l'extraction entraîne une erreur. La valeur par défaut est |
|
|
Service de base de données à utiliser pour l'extraction de données lors de l'utilisation de l'hyperlien de table. Spécifiez la garantie de niveau de service et les ressources utilisées pour traiter cet hyperlien de table. Par exemple, l'accès à un objet ou à une instruction SQL peut être mappé avec les services HIGH ou MEDIUM, tandis que l'accès à un autre objet ou à une autre instruction SQL peut être mappé avec le service LOW. Les valeurs prises en charge sont La valeur par défaut est |
|
|
Valeur JSON qui spécifie les options par colonne. Les options prises en charge spécifiées dans le paramètre
Le paramètre Le formulaire est le suivant : Exemple : Valeurs par défaut : Si Si |
|
|
Spécifie les valeurs par défaut d'une ou de plusieurs variables de liaison (pour une valeur Cela permet à un consommateur d'hyperliens de table d'accéder aux données d'hyperliens de table avec des valeurs de liaison par défaut, sans fournir les valeurs de liaison en tant que paramètres d'interrogation. |
|
|
Ce paramètre est facultatif. Réglez la valeur à Lorsque le paramètre n'est pas fourni ou que la valeur du paramètre est réglée à Si aucune liste de contrôle d'accès n'est configurée pour la base de données du fournisseur, la valeur Lorsque La valeur par défaut est |
|
|
Ce paramètre est facultatif. Le paramètre Lorsque le paramètre La longueur minimale du mot de passe est de 12 caractères et le mot de passe doit comprendre au moins une lettre majuscule, une lettre minuscule et un caractère numérique. Ces règles sont les mêmes que celles appliquées aux règles de complexité de mot de passe pour un utilisateur de base de données associé à une fonction PVF La valeur par défaut est |
|
|
Spécifie un tableau JSON des énoncés ou des objets de schéma Voir la description suivante pour plus de détails sur le format du tableau JSON. |
|
|
Spécifie le texte de l'interrogation de l'énoncé |
|
|
Ce paramètre est facultatif. Le paramètre Si le paramètre Le paramètre La valeur par défaut de ce paramètre est |
|
|
Ce paramètre est facultatif. Ce paramètre s'applique uniquement lorsque le paramètre Le paramètre La valeur par défaut pour ce paramètre est 10. |
|
|
JSON qui indique le résultat de l'opération. |
Le format du tableau JSON que vous fournissez en tant que paramètre sqls est :
| Nom d'attribut | Obligatoire | Description |
|---|---|---|
name |
Nombre | Indique le nom du membre du groupe. Lorsqu'aucun nom n'est indiqué, la procédure crée un nom par défaut. |
description |
Nombre | Description du membre du groupe |
sql_statement |
Fournir |
Énoncé SQL pour le membre
Voir Créer un hyperlien de table avec un énoncé Select pour plus de détails. |
schema_name |
Nombre |
Nom du schéma pour le membre. Indiquez une valeur Voir Créer un hyperlien de table pour une table ou une vue pour plus de détails. |
schema_object_name |
Fournir |
Nom de la table/vue pour le membre
Voir Créer un hyperlien de table pour une table ou une vue pour plus de détails. |
default_bind_variable |
Nombre | Applicable uniquement pour sql_statements avec des variables de liaison
Voir Créer un hyperlien de table avec un énoncé Select pour plus de détails. |
column_lists |
Nombre | Identique à la définition pour la création d'un hyperlien de table hors groupe
Voir Créer un hyperlien de table avec les fonctions d'interface utilisateur spécifiées sur les colonnes pour plus de détails. |
Notes d'utilisation
-
Il y a une limite de 128 hyperliens de table actifs sur une instance de base de données d'IA autonome.
- Lorsque vous utilisez un hyperlien de table à partir d'un navigateur, les options suivantes sont prises en charge :
- Affichez les données retournées dans le format de table sans coloriage (par défaut), en ajoutant le paramètre d'interrogation
?view=tableà l'hyperlien de table. - Affichez les données retournées au format de table et sélectionnez la ou les colonnes à colorier avec des couleurs prédéfinies en fonction des valeurs de colonne. Pour ce faire, ajoutez le paramètre d'interrogation
?view=table&colored_column_names=column_name_1,column_name_2,...column_name_nà l'hyperlien de table, oùcolumn_name_1àcolumn_name_nsont les noms des colonnes que vous voulez colorier. - Consultez les données retournées dans le format de table et sélectionnez un type de données de colonne spécifique que vous voulez colorier avec des couleurs prédéfinies, en ajoutant le paramètre d'interrogation
?view=table&colored_column_types=data_type. Les valeurs de paramètredata_typeprises en charge sontVARCHARetNONE. -
La valeur du paramètre
sql_statementdoit être un énoncéSELECT. L'énoncéSELECTprend en charge les variables de liaison.Si des variables de liaison sont incluses dans l'énoncé de sélection et que les valeurs ne sont pas définies dans le paramètre
default_bind_values, les valeurs de variable de liaison doivent être ajoutées à l'hyperlien de table généré en tant que paramètre d'interrogation lors de l'accès aux données.Lorsque vous incluez le paramètre
default_bind_values, lorsque vous accédez aux données, vous pouvez omettre les valeurs de variable de liaison lorsque des valeurs par défaut sont spécifiées dans le paramètredefault_bind_values. Vous pouvez remplacer une valeur de variable de liaison par défaut spécifiée avecdefault_bind_valuesen fournissant explicitement la valeur de variable de liaison en tant que paramètre d'interrogation.
- Affichez les données retournées dans le format de table sans coloriage (par défaut), en ajoutant le paramètre d'interrogation
-
Lorsque vous générez un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé, le résultat inclut un nom
private_preauth_urlavec la valeur du formulaire :"https://private-endpoint/adb/p/parurl-token/data".Lorsque vous générez un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé et que le point d'extrémité privé est configuré avec l'option Autoriser l'accès public activée, le résultat inclut
preauth_urlpour le point d'extrémité public etprivate_preauth_url.Pour plus d'informations, voir Configurer des points d'extrémité privés et Utiliser un point d'extrémité privé avec accès public autorisé.
Exemples
Exemple - Hyperlien de table généré pour un objet spécifique
L'exemple suivant génère un hyperlien de table pour 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;
/
Exemple - Hyperlien de table généré pour un énoncé SQL
L'exemple suivant génère un hyperlien de table pour un énoncé 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;
/
Exemple - Hyperlien de table généré pour une instruction SQL avec une variable de liaison
L'exemple suivant utilise une variable attachée dans l'énoncé SELECT pour générer l'hyperlien de table :
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;
/
Pour utiliser l'hyperlien de table généré, la valeur de la variable de liaison doit être transmise. L'exemple suivant utilise l'hyperlien de table généré pour accéder aux données de l'arbre du premier comté :
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Utiliser l'hyperlien de table pour accéder aux données avec des variables de liaison
L'exemple suivant utilise une variable de liaison dans l'énoncé SELECT et inclut le paramètre default_bind_values pour générer l'hyperlien de table :
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;
/
Dans ce cas, la valeur de variable de liaison par défaut est utilisée et vous n'avez pas besoin de la fournir en tant que paramètre d'interrogation. Exemple :
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"}
]}
Vous pouvez remplacer la valeur de variable de liaison par défaut en spécifiant explicitement la valeur en tant que paramètre d'interrogation. Exemple :
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Exemple - Hyperlien de table généré pour un objet spécifique avec des colonnes Regrouper par
L'exemple suivant génère un hyperlien de table pour une table spécifique avec les colonnes Group By spécifiées :
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;
/
Exemple - Créer un groupe d'hyperliens de table
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;
/
Exemple - Créer un hyperlien de table avec une liste de contrôle d'accès (LCA) pour spécifier des consommateurs valides, un mot de passe et des options de vue de données cohérentes
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;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
CREATE_FEDERATED_TABLE Procédure
Syntaxe
procedure create_federated_table (
table_name IN VARCHAR2,
remote_schema_name IN VARCHAR2,
remote_schema_object_name IN VARCHAR2,
db_ocids IN CLOB
);
procedure create_federated_table (
table_name IN VARCHAR2,
remote_schema_name IN VARCHAR2,
remote_schema_object_name IN VARCHAR2,
db_names IN CLOB
);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Spécifie le nom de la table fédérée à créer dans l'instance de base de données de l'IA autonome du consommateur. |
|
|
Spécifie le nom du schéma dans l'instance de base de données de l'IA autonome du fournisseur distant. |
remote_schema_object_name |
Spécifie le nom de l'objet dans l'instance de base de données d'IA autonome distante. |
|
|
Spécifie le tableau JSON (dans l'objet CLOB) répertoriant tous les OCID de région/base de données. Chaque entrée doit contenir à la fois la région et l'OCID de la base de données. |
|
|
Spécifie le tableau JSON (dans CLOB) répertoriant tous les noms de région/base de données pour la table fédérée. Chaque entrée doit contenir à la fois le code de région et le nom de la base de données. |
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
DROP_FEDERATED_TABLE Procédure
Cette procédure supprime une table fédérée dans une base de données Consumer Autonomous AI Database.
Syntaxe
procedure drop_federated_table (
table_name IN VARCHAR2
);
Paramètres
table_name : Spécifie le nom de table existant à supprimer.
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
GET_PREAUTHENTICATED_URL Procédure
La procédure
GET_PREAUTHENTICATED_URL est obsolète, utilisez plutôt la procédure CREATE_URL pour générer un hyperlien de table.
Il existe deux formulaires, l'un pour générer l'hyperlien de table pour un objet spécifique (table ou vue). Le formulaire surchargé, à l'aide du paramètre sql_statement, génère un hyperlien de table pour un énoncé SQL.
Syntaxe
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);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique le responsable de l'objet. |
|
|
Indique l'objet de schéma (table ou vue). |
|
|
Spécifie le texte de l'interrogation de l'énoncé |
|
|
Indique une valeur d'ID utilisateur d'application. Lorsque vous accédez à l'hyperlien de table, la valeur sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')Vous pouvez définir des stratégies de BDVP qui utilisent cette valeur dans le contexte d'application pour limiter la visibilité des enregistrements à l'utilisateur de l'application. |
|
|
Spécifie les valeurs par défaut d'une ou de plusieurs variables de liaison (pour une valeur Cela permet à un consommateur d'hyperliens de table d'accéder aux données d'hyperliens de table avec des valeurs de liaison par défaut, sans fournir les valeurs de liaison en tant que paramètres d'interrogation. |
|
|
Durée de validité en minutes de l'hyperlien de table. Le délai d'expiration maximal autorisé est de 90 jours (129600 minutes). Si la valeur est supérieure à 129600, la valeur utilisée est 129600 minutes (90 jours). Si Valeur par défaut : lorsque |
|
|
Nombre d'accès autorisés dans l'hyperlien de la table. Il n'existe aucune valeur par défaut. Si Si |
|
|
Service de base de données à utiliser pour l'extraction de données lors de l'utilisation de l'hyperlien de table. Spécifiez la garantie de niveau de service et les ressources utilisées pour traiter cet hyperlien de table. Par exemple, l'accès à un objet ou à une instruction SQL peut être mappé avec les services HIGH ou MEDIUM, tandis que l'accès à un autre objet ou à une autre instruction SQL peut être mappé avec le service LOW. Les valeurs prises en charge sont La valeur par défaut est |
|
|
Valeur JSON qui spécifie les options par colonne. Les options prises en charge spécifiées dans le paramètre
Le paramètre Le formulaire est le suivant :
Exemple :
Valeurs par défaut : Si Si |
|
|
Réglez la valeur de ce paramètre à Lorsque le paramètre n'est pas fourni ou que la valeur du paramètre est réglée à Si aucune liste de contrôle d'accès n'est configurée pour la base de données du fournisseur, la valeur La valeur par défaut est |
|
|
JSON qui indique le résultat de l'opération. |
Notes d'utilisation
-
Cette procédure est obsolète. Utilisez plutôt la procédure CREATE_URL.
-
Il y a une limite de 128 hyperliens de table actifs sur une instance de base de données d'IA autonome.
-
Lorsque vous générez un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé, le résultat inclut un nom
private_preauth_urlavec la valeur du formulaire :"https://private-endpoint/adb/p/parurl-token/data".Lorsque vous générez un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé et que le point d'extrémité privé est configuré avec l'option Autoriser l'accès public activée, le résultat inclut
preauth_urlpour le point d'extrémité public etprivate_preauth_url.Pour plus d'informations, voir Configurer des points d'extrémité privés et Utiliser un point d'extrémité privé avec accès public autorisé.
Exemple - Hyperlien de table généré pour un objet spécifique
L'exemple suivant génère un hyperlien de table pour 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;
/
Exemple - Hyperlien de table généré pour un énoncé SQL
L'exemple suivant génère un hyperlien de table pour un énoncé 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;
/
Exemple - Hyperlien de table généré pour une instruction SQL avec une variable de liaison
L'exemple suivant utilise une variable attachée dans l'énoncé SELECT pour générer l'hyperlien de table :
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;
/
Pour utiliser l'hyperlien de table généré, la valeur de la variable de liaison doit être transmise. L'exemple suivant utilise l'hyperlien de table généré pour accéder aux données de l'arbre du premier comté :
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
Utiliser l'hyperlien de table pour accéder aux données avec des variables de liaison
L'exemple suivant utilise une variable de liaison dans l'énoncé SELECT et inclut le paramètre default_bind_values pour générer l'hyperlien de table :
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;
/
Dans ce cas, la valeur de variable de liaison par défaut est utilisée et vous n'avez pas besoin de la fournir en tant que paramètre d'interrogation. Exemple :
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"}
]}
Vous pouvez remplacer la valeur de variable de liaison par défaut en spécifiant explicitement la valeur en tant que paramètre d'interrogation. Exemple :
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
Pour plus d'informations, voir ProcédureGET_PREAUTHENTICATED_URL.
Exemple - Hyperlien de table généré pour un objet spécifique avec des colonnes Regrouper par
L'exemple suivant génère un hyperlien de table pour une table spécifique avec les colonnes Group By spécifiées :
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;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
EXTEND_URL Procédure
Cette procédure prolonge la durée de vie d'un hyperlien de table ou d'un groupe d'hyperliens de table.
Syntaxe :
DBMS_DATA_ACCESS.EXTEND_URL(
id IN VARCHAR2,
extend_expiration_minutes_by IN NUMBER,
extend_expiration_count_by IN NUMBER,
result OUT CLOB);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'ID de l'hyperlien de table ou du groupe d'hyperliens de table à étendre. |
|
|
Nombre de minutes de prolongation du délai d'expiration de l'hyperlien de table. Le délai d'expiration est réglé au délai d'expiration courant plus la valeur de La valeur de Si La valeur par défaut est NULL. |
|
|
Le nombre d'accès sur l'hyperlien de table est étendu par ce nombre. Le nombre d'expiration est réglé au nombre d'expiration courant plus la valeur de Si La valeur par défaut est nulle. |
|
|
JSON qui indique le résultat de l'opération. |
Note d'utilisation
Avec un groupe d'hyperliens de table id, la procédure étend tous les hyperliens de table membres à l'exception des membres ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER. Les membres qui ont été ajoutés au groupe d'hyperliens de table avec DBMS_DATA_ACCESS.ADD_MEMBER conservent leurs valeurs d'invalidation d'hyperlien de table indépendantes et vous pouvez les étendre individuellement à l'aide de DBMS_DATA_ACCESS.EXTEND_URL.
Exemple - Prolonger les minutes d'expiration de l'hyperlien de table
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;
/Exemple - Nombre d'expiration de prolongation de l'hyperlien de table
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;
/Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
INVALIDATE_URL Procédure
Cette procédure invalide un hyperlien de table ou un groupe d'hyperliens de table.
Syntaxe
DBMS_DATA_ACCESS.INVALIDATE_URL(
id IN VARCHAR2,
kill_sessions IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'identificateur de l'hyperlien de table ou du groupe d'hyperliens de table à invalider. |
|
|
Ce paramètre est facultatif. Par défaut, lorsque vous exécutez Valeurs valides : |
|
|
Fournit JSON pour indiquer si l'invalidation est un succès ou un échec ( |
Note d'utilisation
Lorsque le paramètre DBMS_DATA_ACCESS.INVALIDATE_URL id est un groupe d'hyperliens de table, la procédure invalide le groupe et tous les membres du groupe, à l'exception de tous les membres du groupe qui ont été ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER. Après avoir exécuté DBMS_DATA_ACCESS.INVALIDATE_URL, les membres ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER conservent leurs valeurs d'invalidation d'hyperlien de table indépendantes et vous pouvez invalider ces hyperliens de table individuellement à l'aide de DBMS_DATA_ACCESS.INVALIDATE_URL.
Exemple
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
Fonction LIST_ACTIVE_URLS
Cette fonction liste tous les hyperliens de table et groupes d'hyperliens de table actuellement actifs.
Syntaxe
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS RETURN CLOB;
Paramètres
| Paramètre | Description |
|---|---|
RETURN |
La valeur retournée est un tableau JSON. |
Exemple
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"}]
Notes d'utilisation
-
Le comportement de
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSdépend de l'appelant. Si l'appelant est ADMIN ou tout utilisateur doté du rôlePDB_DBA, la fonction liste tous les hyperliens de table actifs, quel que soit l'utilisateur qui a généré l'hyperlien de table. Si l'appelant n'est pas l'utilisateur ADMIN et n'est pas un utilisateur doté du rôlePDB_DBA, la liste inclut uniquement les hyperliens de table actifs générés par l'appelant. -
Lorsque vous générez et lister un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé, le résultat inclut un nom
private_preauth_urlavec la valeur du formulaire :"https://private-endpoint/adb/p/parurl-token/data".Lorsque vous générez et lister un hyperlien de table sur une instance de base de données de l'IA autonome avec un point d'extrémité privé et que le point d'extrémité privé est configuré avec l'option Autoriser l'accès public activée, le résultat inclut à la fois
preauth_urlpour le point d'extrémité public etprivate_preauth_url.Pour plus d'informations, voir Configurer des points d'extrémité privés et Utiliser un point d'extrémité privé avec accès public autorisé.
-
Lorsqu'un hyperlien de table est un membre du groupe, l'entrée de réponse
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSaffiche "group_ids" avec une valeur non nulle qui inclut un ou plusieurs ID. Les ID affichent les ID de groupe d'hyperliens de table dont l'hyperlien de table (membre de groupe) est membre.
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
LIST_MEMBERS Procédure
Cette procédure répertorie les membres d'un groupe d'hyperliens de table.
Syntaxe
DBMS_DATA_ACCESS.LIST_MEMBERS(
id IN VARCHAR2,
result OUT CLOB);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'identificateur du groupe d'hyperliens de table. |
|
|
Fournit JSON pour indiquer si l'invalidation est un succès ou un échec ( |
Exemple
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.LIST_MEMBERS(
id => 'aGnHVyZ4vBo4_Fq2R0A2G2-y6TdUKRHeveqyGJ3_example',
result => status);
dbms_output.put_line(status);
END;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
REMOVE_MEMBER Procédure
Cette procédure supprime un membre d'un groupe d'hyperliens de table.
Syntaxe
DBMS_DATA_ACCESS.REMOVE_MEMBER(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'identificateur du groupe d'hyperliens de table. |
member_id |
Indique l'identificateur du membre de groupe à supprimer du groupe d'hyperliens de table. |
|
|
Fournit JSON pour indiquer si l'invalidation est un succès ou un échec ( |
Notes d'utilisation
- La valeur
member_idne peut pas être un ID groupe d'hyperliens de table (is_group_urldoit êtrefalse). -
Si le membre supprimé est un hyperlien de table existant qui a été ajouté au groupe à l'aide de
DBMS_DATA_ACCESS.ADD_MEMBER, le membre est supprimé du groupe, mais il est possible d'accéder directement à l'hyperlien de table jusqu'à ce qu'il soit explicitement invalidé ou expire. -
Si un groupe d'hyperliens de table contient un seul membre et que ce membre est supprimé, le groupe est invalidé.
Exemple
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.REMOVE_MEMBER(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS
UPDATE_URL Procédure
Cette procédure met à jour les propriétés d'un hyperlien de table ou d'un groupe d'hyperliens de table.
Syntaxe :
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);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Indique l'ID de l'hyperlien de table ou du groupe d'hyperliens de table à étendre. |
|
|
Nombre de minutes de prolongation du délai d'expiration de l'hyperlien de table. Le délai d'expiration est réglé au délai d'expiration courant plus la valeur de Si vous ne spécifiez pas de valeur pour La valeur par défaut est |
|
|
Le nombre d'accès sur l'hyperlien de table est étendu par ce nombre. Le nombre d'expiration est réglé au nombre d'expiration courant plus la valeur de La valeur par défaut est |
|
|
Met à jour la valeur des listes de contrôle d'accès héritées. Lorsque ce paramètre est Lorsque la valeur du paramètre est Lorsque le paramètre n'est pas fourni, la valeur existante de |
|
|
Met à jour la valeur du paramètre Pour désactiver la liste de contrôle d'accès propre à un hyperlien de table, spécifiez la valeur |
|
|
JSON qui indique le résultat de l'opération. |
Note d'utilisation
Avec un groupe d'hyperliens de table id, la procédure applique la propriété mise à jour à tous les hyperliens de table membres, à l'exception des membres ajoutés avec DBMS_DATA_ACCESS.ADD_MEMBER. Les membres qui ont été ajoutés au groupe d'hyperliens de table avec DBMS_DATA_ACCESS.ADD_MEMBER conservent leurs valeurs de paramètre d'hyperlien de table indépendantes et vous pouvez les mettre à jour individuellement à l'aide de UPDATE_URL.
Exemple - Mettre à jour le nombre d'expiration pour un hyperlien de table
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;
/Rubrique parent : Sommaire des sous-programmes DBMS_DATA_ACCESS