Paquete DBMS_DATA_ACCESS
El paquete DBMS_DATA_ACCESS proporciona rutinas para generar y gestionar hipervínculos de tabla para juegos de datos.
               
- DBMS_DATA_ACCESS Visión general
 Describe el uso del paqueteDBMS_DATA_ACCESS.
- DBMS_DATA_ACCESS Modelo de seguridad
 La seguridad de este paquete se puede controlar otorgandoEXECUTEen este paquete a los usuarios o roles seleccionados.
- Resumen de subprogramas DBMS_DATA_ACCESS
 En esta sección se tratan los subprogramasDBMS_DATA_ACCESSproporcionados con la base de datos de IA autónoma.
Visión general de DBMS_DATA_ACCESS
Describe el uso del paquete DBMS_DATA_ACCESS.
                  
DBMS_DATA_ACCESS soporta estas operaciones:
                     
- Generación de un hiperenlace de tabla
- Invalidación manual de un hiperenlace de tabla
- Lista de hiperenlaces de tablas activos
Tema principal: Paquete DBMS_DATA_ACCESS
Modelo de seguridad DBMS_DATA_ACCESS
La seguridad de este paquete se puede controlar otorgando EXECUTE en este paquete a los usuarios o roles seleccionados.
                  
EXECUTE en DBMS_DATA_ACCESS, puede crear, mostrar o invalidar los hiperenlaces de tabla que crea el usuario. Además, por defecto, el usuario ADMIN tiene los siguientes privilegios:
                     - El usuario ADMIN con el rol PDB_DBAtiene el privilegioEXECUTEenDBMS_DATA_ACCESS.
- El usuario ADMIN con el rol PDB_DBApuede mostrar o invalidar cualquier hiperenlace de tabla en una instancia de base de datos de IA autónoma.
Tema principal: Paquete DBMS_DATA_ACCESS
Resumen de Subprogramas DBMS_DATA_ACCESS
En esta sección se tratan los subprogramas DBMS_DATA_ACCESS que se proporcionan con Autonomous AI Database.
                  
| Subprograma | Descripción | 
|---|---|
| Este procedimiento agrega un hipervínculo de tabla existente al grupo de hipervínculos de tabla como miembro. | |
| Este procedimiento genera un hipervínculo de tabla o un grupo de hipervínculos de tabla. | |
| Este procedimiento prolonga la vida útil de un hiperenlace de tabla. | |
| Este procedimiento genera un hiperenlace de tabla. Este procedimiento está en desuso. En su lugar, utilice el procedimiento CREATE_URL. | |
| Este procedimiento invalida un hipervínculo de tabla. | |
| Esta función enumera todos los hipervínculos de tabla activos actualmente. | |
| Este procedimiento muestra los miembros de un grupo de hipervínculos de tabla. | |
| Este procedimiento elimina un miembro de un grupo de hipervínculos de tabla. | |
| Este procedimiento actualiza las propiedades de un hipervínculo de tabla o de un grupo de hipervínculos de tabla. | 
- Procedimiento ADD_MEMBER
 Este procedimiento agrega un hiperenlace de tabla existente al grupo de hiperenlaces de tabla como miembro.
- CREATE_URL Procedimiento
 Este procedimiento genera un hipervínculo de tabla o un grupo de hipervínculos de tabla. Un grupo de hipervínculos de tabla proporciona acceso a varios hipervínculos de tabla con una única URL. Este procedimiento está sobrecargado.
- GET_PREAUTHENTICATED_URL Procedimiento
 Este procedimiento genera un hiperenlace de tabla.
- Procedimiento EXTEND_URL
 Este procedimiento prolonga la vida de un hipervínculo de tabla o de un grupo de hipervínculos de tabla.
- Procedimiento INVALIDATE_URL
 Este procedimiento invalida un hiperenlace de tabla o un grupo de hiperenlaces de tabla.
- Función LIST_ACTIVE_URLS
 Esta función muestra todos los hipervínculos de tabla y grupos de hipervínculos de tabla activos actualmente.
- LIST_MEMBERS Procedimiento
 Este procedimiento muestra los miembros de un grupo de hipervínculos de tabla.
- REMOVE_MEMBER Procedimiento
 Este procedimiento elimina un miembro de un grupo de hipervínculos de tabla.
- Procedimiento UPDATE_URL
 Este procedimiento actualiza las propiedades de un hiperenlace de tabla o de un grupo de hiperenlaces de tabla.
Tema principal: Paquete DBMS_DATA_ACCESS
ADD_MEMBER Procedimiento
Este procedimiento agrega un hipervínculo de tabla existente al grupo de hipervínculos de tabla como miembro.
Sintaxis
DBMS_DATA_ACCESS.ADD_MEMBER(
    id        IN VARCHAR2,
    member_id       IN BOOLEAN DEFAULT FALSE,
    result          OUT CLOB);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el identificador del grupo de hipervínculos de tabla. | 
| member_id | Especifica el identificador del hiperenlace de tabla que se va a agregar al grupo. | 
| 
 | Proporciona JSON para indicar si la invalidación es correcta o fallida ( | 
Ejemplo
DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.ADD_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/
Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
CREATE_URL Procedimiento
Sintaxis
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);Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el propietario del objeto. | 
| 
 | Especifica el objeto de esquema (tabla o vista). | 
| 
 | Este parámetro opcional especifica un valor de ID de usuario de aplicación. Cuando se accede al hiperenlace de tabla o al grupo de hiperenlaces de tabla, el valor de  sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')Puede definir políticas de VPD que utilicen este valor en el contexto de aplicación para restringir las filas visibles para el usuario de la aplicación. | 
| 
 | Este parámetro opcional especifica la duración en minutos de validez del hiperenlace de tabla o del grupo de hiperenlaces de tabla. El tiempo máximo de caducidad permitido es de 90 días (129600 minutos). Si el valor se establece en mayor que 129600, el valor utilizado es 129600 minutos (90 días). Si se especifica  Valor por defecto: cuando no se proporciona  | 
| 
 | Este parámetro opcional especifica el número de accesos permitidos en el hiperenlace de tabla o en el grupo de hiperenlaces de tabla. No hay ningún valor por defecto. Si no se especifica  Si se especifica  | 
| 
 | Este parámetro es opcional. Cuando se define en  Cuando  Por ejemplo: Nota: si hay una gran cantidad de actividad de la base de datos y transcurre suficiente tiempo entre la recuperación de la primera página y la recuperación de una página posterior, puede que no sea posible recuperar datos posteriores que sean consistentes con el primer acceso. En este caso, la recuperación genera un error. Nota: si hay una gran cantidad de actividad de la base de datos y transcurre suficiente tiempo entre la recuperación de la primera página y la recuperación de una página posterior, puede que no sea posible recuperar datos posteriores que sean consistentes con el primer acceso. En este caso, la recuperación genera un error. El valor por defecto es  | 
| 
 | Servicio de base de datos que se va a utilizar para la recuperación de datos al utilizar el hiperenlace de tabla. Especifique la garantía de nivel de servicio y los recursos utilizados para realizar el servicio de este hiperenlace de tabla. Por ejemplo, el acceso a un objeto o sentencia SQL se puede asignar a los servicios HIGH o MEDIUM, mientras que el acceso a otro objeto o sentencia SQL se puede asignar al servicio LOW. Los valores soportados son  El valor por defecto es  | 
| 
 | Valor JSON que especifica opciones por columna. Las opciones soportadas especificadas en el parámetro  
 El parámetro  La fórmula es: Por ejemplo: Valores predeterminados: Si no se especifica  Si no se especifica  | 
| 
 | Especifica los valores por defecto de una o más variables de enlace (para un  Esto permite a un consumidor de hiperenlace de tabla acceder a los datos de hiperenlace de tabla con valores de enlace por defecto, sin proporcionar los valores de enlace como parámetros de consulta. | 
| 
 | Este parámetro es opcional. Defina el valor en  Cuando no se proporciona el parámetro o el valor del parámetro se define en  Si la base de datos del productor no tiene ACL configuradas, se ignora el valor  Cuando se especifica  El valor por defecto es  | 
| 
 | Este parámetro es opcional. El parámetro  Cuando se incluye el parámetro  La longitud mínima de la contraseña es de 12 caracteres y debe incluir al menos una letra en mayúscula, una letra en minúscula y un carácter numérico. Estas reglas son las mismas que las que se aplican para las reglas de complejidad de contraseñas para un usuario de base de datos asociado a un PVF  El valor por defecto es  | 
| 
 | Especifica una matriz de JSON de las sentencias  Consulte la siguiente descripción para obtener más información sobre el formato de la matriz de JSON. | 
| 
 | Especifica el texto de consulta de la sentencia  | 
| 
 | Este parámetro es opcional. El parámetro  Si el parámetro  El parámetro  El valor de este parámetro es  | 
| 
 | Este parámetro es opcional. Este parámetro solo se aplica cuando se utiliza el parámetro  El parámetro  El valor por defecto para este parámetro es 10. | 
| 
 | JSON que indica el resultado de la operación. | 
El formato de la matriz de JSON que proporciona como parámetro sqls es:
                        
| Nombre de atributo | Necesario | Descripción | 
|---|---|---|
| name | No | Especifica el nombre del miembro del grupo. Cuando no se proporciona ningún nombre, el procedimiento crea un nombre por defecto. | 
| description | No | Descripción de miembro de grupo | 
| sql_statement | Proporcionar  | Sentencia SQL para el miembro Consulte Creación de un hiperenlace de tabla con una sentencia Select para obtener más información. | 
| schema_name | No | Nombre de esquema para el miembro. Proporcione un valor  Consulte Creación de un hiperenlace de tabla para una tabla o una vista para obtener más información. | 
| schema_object_name | Proporcionar  | Nombre de tabla/vista del miembro Consulte Creación de un hiperenlace de tabla para una tabla o una vista para obtener más información. | 
| default_bind_variable | No | Aplicable solo para sql_statementscon variables de enlaceConsulte Creación de un hiperenlace de tabla con una sentencia Select para obtener más información. | 
| column_lists | No | Igual que se ha definido para la creación de un hiperenlace de tabla que no sea de grupo Consulte Creación de un hiperenlace de tabla con funciones de interfaz de usuario especificadas en columnas para obtener más información. | 
Notas de uso
- 
Hay un límite de 128 hiperenlaces de tablas activos en una instancia de base de datos de IA autónoma. 
- Cuando se utiliza un hiperenlace de tabla desde un explorador, se admiten las siguientes opciones:
                              - Para ver los datos devueltos en formato de tabla sin color (valor por defecto), agregue el parámetro de consulta ?view=tableal hiperenlace de tabla.
- Vea los datos devueltos en formato de tabla y seleccione la columna o columnas que desea que tengan colores predefinidos en función de los valores de columna. Para ello, agregue el parámetro de consulta ?view=table&colored_column_names=column_name_1,column_name_2,...column_name_nal hipervínculo de tabla, dondecolumn_name_1acolumn_name_nson los nombres de las columnas que desea que tengan color.
- Vea los datos devueltos en formato de tabla y seleccione un tipo de dato de columna específico para el que desee colorear con colores predefinidos, agregando el parámetro de consulta ?view=table&colored_column_types=data_type. Los valores de parámetrodata_typesoportados sonVARCHARyNONE.
- 
El valor del parámetro sql_statementdebe ser una sentenciaSELECT. La sentenciaSELECTsoporta variables ligadas.Si las variables de enlace se incluyen en la sentencia select y los valores no se definen en el parámetro default_bind_values, los valores de las variables de enlace se deben agregar al hiperenlace de tabla generado como parámetro de consulta al acceder a los datos.Al incluir el parámetro default_bind_values, al acceder a los datos, puede omitir los valores de variable de enlace cuando se especifican valores por defecto en el parámetrodefault_bind_values. Puede sustituir un valor de variable de enlace por defecto especificado condefault_bind_valuesproporcionando explícitamente el valor de variable de enlace como parámetro de consulta.
 
- Para ver los datos devueltos en formato de tabla sin color (valor por defecto), agregue el parámetro de consulta 
- 
Al generar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado, el resultado incluye un nombre private_preauth_urlcon el valor del formulario:"https://private-endpoint/adb/p/parurl-token/data".Al generar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado y el punto final privado está configurado con Permitir acceso público activado, el resultado incluye tanto preauth_urlpara el punto final público comoprivate_preauth_url.Consulte Configuración de puntos finales privados y Uso de un punto final privado con acceso público permitido para obtener más información. 
Ejemplos
Ejemplo - Hiperenlace de tabla generado para un objeto específico
En el siguiente ejemplo se genera un hiperenlace de tabla para 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;
/Ejemplo - Hiperenlace de tabla generado para una sentencia SQL
En el siguiente ejemplo se genera un hiperenlace de tabla para una sentencia 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;
/Ejemplo - Hiperenlace de tabla generado para una sentencia SQL con una variable de enlace
En el siguiente ejemplo se utiliza una variable de enlace en la sentencia SELECT para generar el hiperenlace de tabla:
                        
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;
/Para utilizar el hiperenlace de tabla generado, se debe transferir el valor de la variable de enlace. En el siguiente ejemplo se utiliza el hiperenlace de tabla generado para acceder a los datos del árbol del primer condado:
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=FirstUso del Hiperenlace de Tabla para Acceder a Datos con Variables de Enlace
En el siguiente ejemplo se utiliza una variable de enlace en la sentencia SELECT e incluye el parámetro default_bind_values para generar el hiperenlace de tabla:
                        
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;
/En este caso, si se utiliza el valor de variable de enlace por defecto y no es necesario que proporcione el valor como parámetro de consulta. Por ejemplo:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/datacurl 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"}
]}Puede sustituir el valor de variable de enlace por defecto especificando explícitamente el valor como parámetro de consulta. Por ejemplo:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAINEjemplo - Hiperenlace de tabla generado para un objeto específico con columnas Agrupar por
En el siguiente ejemplo se genera un hiperenlace de tabla para una tabla específica con las columnas Agrupar por especificadas:
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;
/Ejemplo - Creación de un grupo de hipervínculos de tabla
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;
/Ejemplo - Crear un hiperenlace de tabla con una lista de control de acceso (ACL) para especificar consumidores válidos, contraseñas y opciones de vista de datos coherentes
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;
/Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
GET_PREAUTHENTICATED_URL Procedimiento
El procedimiento
GET_PREAUTHENTICATED_URL está en desuso; en su lugar, utilice el procedimiento CREATE_URL para generar un hiperenlace de tabla.
                        Hay dos formas, una para generar el hiperenlace de tabla para un objeto específico (tabla o vista). La pantalla sobrecargada, que utiliza el parámetro sql_statement, genera un hiperenlace de tabla para una sentencia SQL.
                        
Sintaxis
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);Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el propietario del objeto. | 
| 
 | Especifica el objeto de esquema (tabla o vista). | 
| 
 | Especifica el texto de consulta de la sentencia  | 
| 
 | Especifica un valor de ID de usuario de aplicación. Cuando se accede al hiperenlace de tabla, el valor  sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')Puede definir políticas de VPD que utilicen este valor en el contexto de aplicación para restringir las filas visibles para el usuario de la aplicación. | 
| 
 | Especifica los valores por defecto de una o más variables de enlace (para un  Esto permite a un consumidor de hiperenlace de tabla acceder a los datos de hiperenlace de tabla con valores de enlace por defecto, sin proporcionar los valores de enlace como parámetros de consulta. | 
| 
 | Duración en minutos de validez del hipervínculo de tabla. El tiempo máximo de caducidad permitido es de 90 días (129600 minutos). Si el valor se establece en mayor que 129600, el valor utilizado es 129600 minutos (90 días). Si se especifica  Valor por defecto: cuando no se proporciona  | 
| 
 | Número de accesos permitidos en el hiperenlace de tabla. No hay ningún valor por defecto. Si no se especifica  Si se especifica  | 
| 
 | Servicio de base de datos que se va a utilizar para la recuperación de datos al utilizar el hiperenlace de tabla. Especifique la garantía de nivel de servicio y los recursos utilizados para realizar el servicio de este hiperenlace de tabla. Por ejemplo, el acceso a un objeto o sentencia SQL se puede asignar a los servicios HIGH o MEDIUM, mientras que el acceso a otro objeto o sentencia SQL se puede asignar al servicio LOW. Los valores soportados son  El valor por defecto es  | 
| 
 | Valor JSON que especifica opciones por columna. Las opciones soportadas especificadas en el parámetro  
 El parámetro  La fórmula es: Por ejemplo: Valores predeterminados: Si no se especifica  Si no se especifica  | 
| 
 | Defina el valor de este parámetro en  Cuando no se proporciona el parámetro o el valor del parámetro se define en  Si la base de datos del productor no tiene ACL configuradas, se ignora el valor  El valor por defecto es  | 
| 
 | JSON que indica el resultado de la operación. | 
Notas de uso
- 
Este procedimiento está en desuso. En su lugar, utilice el procedimiento CREATE_URL. 
- 
Hay un límite de 128 hiperenlaces de tablas activos en una instancia de base de datos de IA autónoma. 
- 
Al generar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado, el resultado incluye un nombre private_preauth_urlcon el valor del formulario:"https://private-endpoint/adb/p/parurl-token/data".Al generar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado y el punto final privado está configurado con Permitir acceso público activado, el resultado incluye tanto preauth_urlpara el punto final público comoprivate_preauth_url.Consulte Configuración de puntos finales privados y Uso de un punto final privado con acceso público permitido para obtener más información. 
Ejemplo - Hiperenlace de tabla generado para un objeto específico
En el siguiente ejemplo se genera un hiperenlace de tabla para 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;
/Ejemplo - Hiperenlace de tabla generado para una sentencia SQL
En el siguiente ejemplo se genera un hiperenlace de tabla para una sentencia 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;
/Ejemplo - Hiperenlace de tabla generado para una sentencia SQL con una variable de enlace
En el siguiente ejemplo se utiliza una variable de enlace en la sentencia SELECT para generar el hiperenlace de tabla:
                        
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;
/Para utilizar el hiperenlace de tabla generado, se debe transferir el valor de la variable de enlace. En el siguiente ejemplo se utiliza el hiperenlace de tabla generado para acceder a los datos del árbol del primer condado:
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=FirstUso del Hiperenlace de Tabla para Acceder a Datos con Variables de Enlace
En el siguiente ejemplo se utiliza una variable de enlace en la sentencia SELECT e incluye el parámetro default_bind_values para generar el hiperenlace de tabla:
                        
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;
/En este caso, si se utiliza el valor de variable de enlace por defecto y no es necesario que proporcione el valor como parámetro de consulta. Por ejemplo:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/datacurl 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"}
]}Puede sustituir el valor de variable de enlace por defecto especificando explícitamente el valor como parámetro de consulta. Por ejemplo:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAINConsulte GET_PREAUTHENTICATED_URL Procedure para obtener más información.
Ejemplo - Hiperenlace de tabla generado para un objeto específico con columnas Agrupar por
En el siguiente ejemplo se genera un hiperenlace de tabla para una tabla específica con las columnas Agrupar por especificadas:
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;
/Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
EXTEND_URL Procedimiento
Este procedimiento prolonga la vida útil de un hiperenlace de tabla o de un grupo de hiperenlaces de tabla.
Sintaxis:
DBMS_DATA_ACCESS.EXTEND_URL( 
    id                              IN VARCHAR2,
    extend_expiration_minutes_by    IN NUMBER,
    extend_expiration_count_by      IN NUMBER,
    result                          OUT CLOB);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el ID del hiperenlace de tabla o del grupo de hiperenlaces de tabla que se va a ampliar. | 
| 
 | Número de minutos para ampliar el tiempo de caducidad del hiperenlace de tabla. El tiempo de caducidad se define en el tiempo de caducidad actual más el valor de  El valor de  Si  El valor por defecto es NULL. | 
| 
 | Este recuento amplía el número de accesos en el hipervínculo de tabla. El recuento de caducidad se define en el recuento de caducidad actual más el valor de  Si  El valor por defecto es nulo. | 
| 
 | JSON que indica el resultado de la operación. | 
Nota de uso
Con un grupo de hipervínculos de tabla id, el procedimiento amplía todos los hipervínculos de tabla de miembros excepto los miembros agregados con DBMS_DATA_ACCESS.ADD_MEMBER. Los miembros que se agregaron al grupo de hiperenlaces de tablas con DBMS_DATA_ACCESS.ADD_MEMBER mantienen sus valores de invalidación de hiperenlaces de tablas independientes y puede ampliarlos individualmente mediante DBMS_DATA_ACCESS.EXTEND_URL.
                        
Ejemplo - Extender minutos de caducidad de hiperenlace de tabla
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;
/Ejemplo - Ampliar recuento de caducidad de hiperenlace de tabla
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;
/Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
INVALIDATE_URL Procedimiento
Este procedimiento invalida un hipervínculo de tabla o un grupo de hipervínculos de tabla.
Sintaxis
DBMS_DATA_ACCESS.INVALIDATE_URL(
    id                  IN VARCHAR2,
    kill_sessions       IN BOOLEAN DEFAULT FALSE,
    result              OUT CLOB);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el identificador del hiperenlace de tabla o del grupo de hiperenlaces de tabla que se va a invalidar. | 
| 
 | Este parámetro es opcional. Por defecto, al ejecutar  Valores válidos:  | 
| 
 | Proporciona JSON para indicar si la invalidación es correcta o fallida ( | 
Nota de uso
Cuando el parámetro DBMS_DATA_ACCESS.INVALIDATE_URL id es un grupo de hiperenlaces de tablas, el procedimiento invalida el grupo y todos los miembros del grupo, con la excepción de los miembros del grupo que se hayan agregado con DBMS_DATA_ACCESS.ADD_MEMBER. Después de ejecutar DBMS_DATA_ACCESS.INVALIDATE_URL, los miembros que se agregaron con DBMS_DATA_ACCESS.ADD_MEMBER mantienen sus valores de invalidación de hiperenlace de tabla independientes y puede invalidar estos hiperenlaces de tabla individualmente mediante DBMS_DATA_ACCESS.INVALIDATE_URL.
                        
Ejemplo
DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.INVALIDATE_URL(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/
Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
Función LIST_ACTIVE_URLS
Esta función muestra todos los hipervínculos de tabla y grupos de hipervínculos de tabla activos actualmente.
Sintaxis
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS RETURN CLOB;
Parámetros
| Parámetro | Descripción | 
|---|---|
| RETURN | El valor devuelto es una matriz de JSON. | 
Ejemplo
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"}]Notas de uso
- 
El comportamiento de DBMS_DATA_ACCESS.LIST_ACTIVE_URLSdepende del invocador. Si el invocador es ADMIN o cualquier usuario con el rolPDB_DBA, la función muestra todos los hiperenlaces de tabla activos, independientemente del usuario que haya generado el hiperenlace de tabla. Si el invocador no es el usuario ADMIN y no es un usuario con el rolPDB_DBA, la lista incluye solo los hiperenlaces de tabla activos generados por el invocador.
- 
Al generar y mostrar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado, el resultado incluye un nombre private_preauth_urlcon el valor del formulario:"https://private-endpoint/adb/p/parurl-token/data".Al generar y mostrar un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado y el punto final privado está configurado con la opción Permitir acceso público activada, el resultado incluye tanto preauth_urlpara el punto final público comoprivate_preauth_url.Consulte Configuración de puntos finales privados y Uso de un punto final privado con acceso público permitido para obtener más información. 
- 
Cuando un hiperenlace de tabla es un miembro de grupo, la entrada de respuesta DBMS_DATA_ACCESS.LIST_ACTIVE_URLSmuestra "group_ids" con un valor no nulo que incluye uno o más ID. Los ID muestran los ID de grupo de hipervínculos de tabla de los que es miembro el hipervínculo de tabla (miembro de grupo).
Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
LIST_MEMBERS Procedimiento
Este procedimiento muestra los miembros de un grupo de hipervínculos de tabla.
Sintaxis
DBMS_DATA_ACCESS.LIST_MEMBERS(
    id              IN VARCHAR2,
    result          OUT CLOB);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el identificador del grupo de hipervínculos de tabla. | 
| 
 | Proporciona JSON para indicar si la invalidación es correcta o fallida ( | 
Ejemplo
DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.LIST_MEMBERS(
         id => 'aGnHVyZ4vBo4_Fq2R0A2G2-y6TdUKRHeveqyGJ3_example',
         result => status);           
      dbms_output.put_line(status);
    END;
/Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
REMOVE_MEMBER Procedimiento
Este procedimiento elimina un miembro de un grupo de hipervínculos de tabla.
Sintaxis
DBMS_DATA_ACCESS.REMOVE_MEMBER(
    id              IN VARCHAR2,
    member_id       IN BOOLEAN DEFAULT FALSE,
    result          OUT CLOB);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el identificador del grupo de hipervínculos de tabla. | 
| member_id | Especifica el identificador que debe eliminar el miembro del grupo del grupo de hipervínculos de tabla. | 
| 
 | Proporciona JSON para indicar si la invalidación es correcta o fallida ( | 
Notas de uso
- El valor member_idno puede ser un ID de grupo de hipervínculos de tabla (is_group_urldebe serfalse).
- 
Si el miembro eliminado es un hiperenlace de tabla existente que se ha agregado al grupo mediante DBMS_DATA_ACCESS.ADD_MEMBER, el miembro se elimina del grupo, pero se puede acceder directamente al hiperenlace de tabla hasta que se invalide o caduque explícitamente.
- 
Si un grupo de hipervínculos de tabla contiene solo un miembro y ese miembro se elimina, el grupo se invalidará. 
Ejemplo
DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.REMOVE_MEMBER(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/
Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS
UPDATE_URL Procedimiento
Este procedimiento actualiza las propiedades de un hipervínculo de tabla o de un grupo de hipervínculos de tabla.
Sintaxis:
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);
Parámetros
| Parámetro | Descripción | 
|---|---|
| 
 | Especifica el ID del hiperenlace de tabla o del grupo de hiperenlaces de tabla que se va a ampliar. | 
| 
 | Número de minutos para ampliar el tiempo de caducidad del hiperenlace de tabla. El tiempo de caducidad se define en el tiempo de caducidad actual más el valor de  Si no especifica un valor para  El valor por defecto es  | 
| 
 | Este recuento amplía el número de accesos en el hipervínculo de tabla. El recuento de caducidad se define en el recuento de caducidad actual más el valor de  El valor por defecto es  | 
| 
 | Actualiza el valor de las ACL heredadas. Cuando este parámetro es  Cuando el valor del parámetro es  Cuando no se proporciona el parámetro, se retiene el valor existente de  | 
| 
 | Actualiza el valor del parámetro  Para desactivar la ACL específica de un hiperenlace de tabla, especifique el valor  | 
| 
 | JSON que indica el resultado de la operación. | 
Nota de uso
Con un grupo de hipervínculos de tabla id, el procedimiento aplica la propiedad actualizada a todos los hipervínculos de tabla de miembros, excepto los miembros agregados con DBMS_DATA_ACCESS.ADD_MEMBER. Los miembros que se han agregado al grupo de hiperenlaces de tablas con DBMS_DATA_ACCESS.ADD_MEMBER mantienen sus valores de parámetros de hiperenlace de tabla independientes y puede actualizarlos individualmente mediante UPDATE_URL.
                        
Ejemplo - Actualizar recuento de caducidad para un hipervínculo de tabla
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;
/Tema principal: Resumen de subprogramas DBMS_DATA_ACCESS