Acceder a datos con hipervínculos de tabla o con un grupo de hipervínculos de tabla

Los datos de hiperenlace de tabla se recuperan y devuelven en formato JSON y se paginan.

Puede acceder a los datos de hiperenlace de tabla mediante un explorador o cualquier cliente REST. Los datos devueltos se paginan para permitirle acceder a un máximo de 100 registros a la vez, con el tamaño total de los datos en la respuesta limitado a 1 MB. Puede proporcionar el parámetro de consulta limit para limitar el número de registros recuperados. La recuperación de datos de hiperenlace de tabla se bloquea si falla la autenticación de hiperenlace de tabla o si el hiperenlace de tabla solicitado ha caducado.

Al crear un hiperenlace de tabla o un grupo de hiperenlaces de tabla, puede definir el parámetro consistent para especificar que el productor proporciona datos de forma consistente en distintas páginas cuando un consumidor accede a los datos. Cuando consistent se define en TRUE, el productor proporciona datos consistentes a un consumidor que accede a varias páginas de datos. Esto significa que el primer acceso de un consumidor y las posteriores solicitudes de datos para las páginas asociadas a un hiperenlace de tabla utilizan la misma instantánea de datos (SCN) que la solicitud para la primera página.

Nota

Los datos de hiperenlace de tabla se pueden ver en formato tabular cuando se accede desde un explorador. Consulte Uso de hipervínculos de tabla para acceder a datos en formato de tabla para obtener más información.

Usar hiperenlace de tabla para acceder a datos

Los datos de hiperenlace de tabla se recuperan y devuelven en formato JSON y se paginan.

Por ejemplo, para utilizar un hiperenlace de tabla y procesar la respuesta:

curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data

La respuesta de hiperenlace de tabla incluye enlaces para cualquier página anterior o siguiente, cuando los datos incluyen más de una página. Esto le permite navegar en cualquier dirección mientras recupera datos. El JSON también incluye un enlace self que apunta a la página actual, así como un atributo hasMore que indica si hay más datos disponibles para recuperar.

A continuación se muestra el formato de respuesta:

{
    "items": [],                 <-- Array of records from database
    "hasMore": true OR false,    <-- Indicates if there are more records to fetch or not
    "limit": Number,             <-- Indicates number of records in the page. Maximum allowed number is 100.
    "offset": Number,            <-- Offset indicating the start of the current page
    "count": Number,             <-- Count of records in the current page
    "links": [
        {
            "rel": "self",
            "href": "{Link to table hyperlink url for the current page}"
        },
        {
            "rel": "previous",
            "href": "{Link to table hyperlink url for the previous page}"
        },
        {
            "rel": "next",
            "href": "{Link to table hyperlink url for the next page}"
        }
    ]
}

Por ejemplo, a continuación se muestra un ejemplo de respuesta de un hiperenlace de tabla (con líneas nuevas agregadas para mayor claridad):

{"items":[
{"COUNTY":"Main","SPECIES":"Alder","HEIGHT":45},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51},{"COUNTY":"Main","SPECIES":"Hemlock","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Douglas-fir","HEIGHT":34},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":12},
{"COUNTY":"Main","SPECIES":"Cedar","HEIGHT":21},{"COUNTY":"First","SPECIES":"Douglas-fir","HEIGHT":10},
{"COUNTY":"Main","SPECIES":"Yew","HEIGHT":11},{"COUNTY":"First","SPECIES":"Willow","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Pine","HEIGHT":29},{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},{"COUNTY":"Main","SPECIES":"Spruce","HEIGHT":8},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},{"COUNTY":"First","SPECIES":"Maple","HEIGHT":16},
{"COUNTY":"Main","SPECIES":"Aspen","HEIGHT":35},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":27},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},{"COUNTY":"Main","SPECIES":"Pine","HEIGHT":37},
{"COUNTY":"Main","SPECIES":"Redwood","HEIGHT":78},{"COUNTY":"Main","SPECIES":"Alder","HEIGHT":45},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51},{"COUNTY":"Main","SPECIES":"Hemlock","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Douglas-fir","HEIGHT":34},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":12},
{"COUNTY":"Main","SPECIES":"Cedar","HEIGHT":21},{"COUNTY":"First","SPECIES":"Douglas-fir","HEIGHT":10},
{"COUNTY":"Main","SPECIES":"Redwood","HEIGHT":78}],

"hasMore":false,
"limit":100,
"offset":0,
"count":30,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data"}
]}

Uso del Hiperenlace de Tabla para Acceder a Datos con Variables de Enlace

Si hay una variable de enlace en la sentencia SELECT al generar un hiperenlace de tabla, debe utilizar el parámetro default_bind_values al generar el hiperenlace de tabla para especificar un valor de variable de enlace por defecto o debe transferir un valor de variable de enlace como parámetro de consulta para acceder a los datos del hiperenlace de tabla.

El soporte de variables de enlace está disponible para los tipos de columna NUMBER y VARCHAR2.

Por ejemplo, cuando se genera un hiperenlace de tabla con la siguiente sentencia SQL y no se especifica el parámetro default_bind_values:

sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyName'

Debe agregar una variable de enlace y especificar un valor como parámetro de consulta para acceder a los datos. Por ejemplo:

curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN

No es necesario especificar el valor de enlace en la URL cuando DBMS_DATA_ACCESS.CREATE_URL incluye el parámetro default_bind_values:

Por ejemplo, con los siguientes parámetros en DBMS_DATA_ACCESS.CREATE_URL:

sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}'

En este caso, el parámetro default_bind_values define el valor de la variable de enlace y no es necesario que proporcione el valor como parámetro de consulta (se proporciona el valor por defecto):

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"}
]}

Cuando default_bind_values define un valor de variable de enlace, puede sustituir el valor de variable de enlace especificando explícitamente un valor como parámetro de consulta. Por ejemplo:

curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN

Consulte CREATE_URL Procedure para obtener más información.

Acceso a datos para un hiperenlace de tabla protegida con contraseña

Cuando se incluye el parámetro password con DBMS_DATA_ACCESS.CREATE_URL para crear un hiperenlace de tabla protegido por contraseña, junto con el valor de URL, la generación debe compartir la contraseña con los consumidores. Los consumidores utilizan tanto la URL como la contraseña para acceder a los datos y proporcionan la contraseña para acceder a los datos mediante la autenticación básica a través de REST.

Por ejemplo:

HEADER
Authorization: Basic password
GET https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/Vdtv..._example_wxd0PN/data

Uso de un grupo de hiperenlaces de tablas para acceder a los datos

Los datos del grupo de hiperenlaces de tabla se recuperan y devuelven en formato JSON y se paginan.

Por ejemplo, para utilizar un grupo de hipervínculos de tabla y procesar la respuesta:

curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data

La respuesta de grupo de hipervínculos de tabla incluye la información de URL de miembro.

Por ejemplo, a continuación se muestra un ejemplo de respuesta para un grupo de hipervínculos de tabla:

{  "member_urls": [
    {      
      "id": "{member_id}",
      "name": "{member_name}",
      "description": "{member_description}" 
    },
    .....
    ]
}

A continuación, puede utilizar la siguiente API de REST para acceder a los datos de un miembro del grupo de hiperenlaces de tabla mediante uno de los valores member_id proporcionados. Por ejemplo:

Get https://dataaccess.adb.{region_name}.oraclecloudapps.com/adb/p/{group_par_url_token}/data?member_id={member_id}
 
Response
200 OK - Success
 
{
    "items": [],                 <-- Array of records from database
    "hasMore": true OR false,    <-- Indicates if there are more records to fetch or not
    "limit": Number,             <-- Indicates number of records in the page. Maximum allowed number is 100.
    "offset": Number,            <-- Offset indicating the start of the current page
    "count": Number,             <-- Count of records in the current page
    "links": [
        {
            "rel": "self",
            "href": "{Link to Table Hyperlink for the current page}"
        },
        {
            "rel": "previous",
            "href": "{Link to Table Hyperlink for the previous page}"
        },
        {
            "rel": "next",
            "href": "{Link to Table Hyperlink for the next page}"
        }
    ]
}