Accéder aux données à l'aide d'hyperliens de table ou d'un groupe d'hyperliens de table

Les données de l'hyperlien de la table sont extraites et retournées au format JSON et sont paginées.

Vous pouvez accéder aux données de l'hyperlien de table à l'aide d'un navigateur ou d'un client REST. Les données retournées sont paginées pour vous permettre d'accéder à un maximum de 100 enregistrements à la fois, la taille totale des données dans la réponse étant limitée à 1 Mo. Vous pouvez fournir le paramètre d'interrogation limit pour limiter le nombre d'enregistrements extraits. L'extraction des données de l'hyperlien de table est bloquée si l'authentification de l'hyperlien de table échoue ou si l'hyperlien de table demandé a expiré.

Lorsque vous créez un hyperlien de table ou un groupe d'hyperliens de table, vous pouvez définir le paramètre consistent pour spécifier que le fournisseur fournit des données de manière cohérente sur différentes pages lorsqu'un consommateur accède aux données. Lorsque consistent est réglé à TRUE, le fournisseur de portlets fournit des données cohérentes à un consommateur qui accède à plusieurs pages de données. Cela signifie que le premier accès d'un consommateur et les demandes de données subséquentes pour les pages associées à un hyperlien de table utilisent le même instantané de données (SCN) que la demande pour la première page.

Note

Les données de l'hyperlien de table peuvent être consultées sous forme de tableau lors d'un accès à partir d'un navigateur. Voir Accéder aux données au format de table avec des hyperliens de table ou des groupes d'hyperliens de table pour plus de détails.

Utiliser un hyperlien de table pour accéder aux données

Les données de l'hyperlien de la table sont extraites et retournées au format JSON et sont paginées.

Par exemple, pour utiliser un hyperlien de table et traiter la réponse :

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

La réponse de l'hyperlien Table inclut des liens pour toutes les pages précédentes ou suivantes, lorsque les données incluent plusieurs pages. Cela vous permet de naviguer dans les deux sens lors de l'extraction des données. Le fichier JSON comprend également un lien self qui pointe vers la page courante, ainsi qu'un attribut hasMore qui indique s'il y a plus de données disponibles pour l'extraction.

Le format de réponse est le suivant :

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

Par exemple, voici un exemple de réponse d'un hyperlien de table (avec des lignes nouvelles ajoutées pour plus de clarté) :

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

Utiliser l'hyperlien de table pour accéder aux données avec des variables de liaison

S'il existe une variable de liaison dans l'énoncé SELECT lorsque vous générez un hyperlien de table, vous devez utiliser le paramètre default_bind_values lorsque vous générez l'hyperlien de table pour spécifier une valeur de variable de liaison par défaut ou vous devez transmettre une valeur de variable de liaison en tant que paramètre d'interrogation pour accéder aux données de l'hyperlien de table.

La prise en charge des variables de liaison est disponible pour les types de colonne NUMBER et VARCHAR2.

Par exemple, lorsqu'un hyperlien de table est généré avec l'énoncé SQL suivant et que vous ne spécifiez pas le paramètre default_bind_values :

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

Vous devez ajouter une variable de liaison et spécifier une valeur en tant que paramètre d'interrogation pour accéder aux données. Exemple :

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

La valeur de liaison n'a pas besoin d'être spécifiée dans l'URL lorsque DBMS_DATA_ACCESS.CREATE_URL inclut le paramètre default_bind_values :

Par exemple, avec les paramètres suivants dans DBMS_DATA_ACCESS.CREATE_URL :

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

Dans ce cas, le paramètre default_bind_values définit la valeur de la variable de liaison et vous n'avez pas besoin de fournir la valeur en tant que paramètre d'interrogation (la valeur par défaut est fournie) :

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

Lorsque default_bind_values définit une valeur de variable de liaison, vous pouvez la remplacer en spécifiant explicitement une 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édureCREATE_URL.

Accéder aux données pour un hyperlien de table protégée par mot de passe

Lorsque vous incluez le paramètre password avec DBMS_DATA_ACCESS.CREATE_URL pour créer un hyperlien de table protégé par mot de passe, ainsi que la valeur d'URL, les produits doivent partager le mot de passe avec les consommateurs. Les consommateurs utilisent à la fois l'URL et le mot de passe pour accéder aux données et fournissent le mot de passe pour accéder aux données à l'aide de l'authentification de base sur REST.

Exemple :

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

Utiliser un groupe d'hyperliens de table pour accéder aux données

Les données du groupe d'hyperliens de table sont extraites et retournées au format JSON et sont paginées.

Par exemple, pour utiliser un groupe d'hyperliens de table et traiter la réponse :

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

La réponse du groupe d'hyperliens de la table inclut les informations sur l'URL du membre.

Par exemple, voici un exemple de réponse pour un groupe d'hyperliens de table :

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

Vous pouvez ensuite utiliser l'API REST suivante pour accéder aux données d'un membre d'un groupe d'hyperliens de table, à l'aide de l'une des valeurs member_id fournies. Exemple :

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