Acessar Dados com Hiperlinks de Tabela ou com um Grupo de Hiperlinks de Tabela

Os dados do Hiperlink da Tabela são recuperados e retornados no formato JSON e são paginados.

Você pode acessar dados do Hiperlink da Tabela usando um navegador ou qualquer cliente REST. Os dados retornados são paginados para permitir que você acesse no máximo 100 registros por vez, com o tamanho total de dados na resposta limitado a 1 MB. Você pode fornecer o parâmetro de consulta limit para limitar o número de registros extraídos. A recuperação de dados do Hiperlink da Tabela será bloqueada se a autenticação do Hiperlink da Tabela falhar ou se o Hiperlink da Tabela solicitado tiver expirado.

Ao criar um Hiperlink de Tabela ou um Grupo de Hiperlinks de Tabela, você pode definir o parâmetro consistent para especificar que o produtor fornece dados de forma consistente em diferentes páginas quando um consumidor acessa dados. Quando consistent é definido como TRUE, o produtor fornece dados consistentes a um consumidor que acessa várias páginas de dados. Isso significa que o primeiro acesso de um consumidor e as solicitações de dados subsequentes para páginas associadas a um Hiperlink de Tabela usam a mesma captura de dados (SCN) da solicitação da primeira página.

Observação

Os dados do Hiperlink da Tabela podem ser exibidos em formato tabular quando acessados em um navegador. Consulte Usar Hiperlinks de Tabela para Acessar Dados no Formato de Tabela para obter detalhes.

Usar Hiperlink de Tabela para Acessar Dados

Os dados do Hiperlink da Tabela são recuperados e retornados no formato JSON e são paginados.

Por exemplo, para usar um Hiperlink de Tabela e processar a resposta:

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

A resposta do Hiperlink da Tabela inclui links para qualquer página anterior ou próxima, quando os dados incluem mais de uma página. Isso permite que você navegue em qualquer direção ao extrair dados. O JSON também inclui um link self que aponta para a página atual, bem como um atributo hasMore que indica se há mais dados disponíveis para extração.

Este é o formato de resposta:

{
    "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 exemplo, o seguinte é um exemplo de resposta de um Hiperlink de Tabela (com novas linhas adicionadas para maior clareza):

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

Usar Hiperlink de Tabela para Acessar Dados com Variáveis de Bind

Se houver uma variável de vinculação na instrução SELECT ao gerar um Hiperlink de Tabela, você deverá usar o parâmetro default_bind_values ao gerar o Hiperlink de Tabela para especificar um valor de variável de vinculação padrão ou deverá especificar um valor de variável de vinculação como um parâmetro de consulta para acessar os dados do Hiperlink de Tabela.

O suporte a variáveis de bind está disponível para os tipos de coluna NUMBER e VARCHAR2.

Por exemplo, quando um Hiperlink de Tabela é gerado com a seguinte instrução SQL e você não especifica o parâmetro default_bind_values:

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

Você deve anexar uma variável de bind e especificar um valor como parâmetro de consulta para acessar os dados. Por exemplo:

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

O valor de bind não precisa ser especificado no URL quando o DBMS_DATA_ACCESS.CREATE_URL inclui o parâmetro default_bind_values:

Por exemplo, com os seguintes parâmetros em DBMS_DATA_ACCESS.CREATE_URL:

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

Nesse caso, o parâmetro default_bind_values define o valor da variável de bind e você não precisa fornecer o valor como um parâmetro de consulta (o valor padrão é fornecido):

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

Quando default_bind_values define um valor de variável de bind, você pode substituir o valor de variável de bind especificando explicitamente um valor como um parâmetro de consulta. Por exemplo:

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

Consulte CREATE_URL Procedures para obter mais informações.

Acessar Dados para um Hiperlink de Tabela Protegida por Senha

Quando você inclui o parâmetro password com DBMS_DATA_ACCESS.CREATE_URL para criar um Hiperlink de Tabela protegido por senha, juntamente com o valor do URL, os produtos devem compartilhar a senha com os consumidores. Os consumidores usam o URL e a senha para acessar os dados e fornecer a senha para acessar os dados usando Autenticação básica em REST.

Por exemplo:

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

Usar um Grupo de Hiperlinks de Tabela para Acessar Dados

Os dados do Grupo de Hiperlinks da Tabela são recuperados e retornados no formato JSON e são paginados.

Por exemplo, para usar um Grupo de Hiperlink de Tabela e processar a resposta:

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

A resposta do Grupo de Hiperlinks da Tabela inclui as informações do URL do membro.

Por exemplo, o seguinte é um exemplo de resposta para um grupo de hiperlinks de tabela:

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

Em seguida, você pode usar a seguinte API REST para acessar os dados de um membro do Grupo de Hiperlinks da Tabela, usando um dos valores member_id fornecidos. Por exemplo:

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