表ハイパーリンクまたは表ハイパーリンク・グループを使用したデータへのアクセス
表のハイパーリンク・データは、JSON形式で取得および返され、ページ付けされます。
表ハイパーリンク・データには、ブラウザまたは任意のRESTクライアントを使用してアクセスできます。返されるデータは、一度に最大100レコードにアクセスできるようにページ区切りされ、レスポンスの合計データ・サイズは1MBに制限されます。limit問合せパラメータを指定して、フェッチされるレコード数を制限できます。表ハイパーリンクの認証が失敗した場合、または要求された表ハイパーリンクが期限切れの場合、表ハイパーリンク・データの取得はブロックされます。
表ハイパーリンクまたは表ハイパーリンク・グループを作成する場合は、consistentパラメータを設定して、コンシューマがデータにアクセスするときに、プロデューサが様々なページにデータを一貫して提供するように指定できます。consistentがTRUEに設定されている場合、プロデューサは、データの複数のページにアクセスするコンシューマに一貫性のあるデータを提供します。つまり、コンシューマの最初のアクセスと、表ハイパーリンクに関連付けられたページに対する後続のデータ・リクエストでは、最初のページのリクエストと同じデータ・スナップショット(SCN)が使用されます。
ノート
ノート:表のハイパーリンク・データは、ブラウザからアクセスすると表形式で表示できます。詳細は、表ハイパーリンクまたは表ハイパーリンク・グループを使用した表形式のデータへのアクセスを参照してください。
表ハイパーリンクを使用したデータへのアクセス
表のハイパーリンク・データは、JSON形式で取得および返され、ページ付けされます。
たとえば、表ハイパーリンクを使用してレスポンスを処理するには:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data表ハイパーリンク・レスポンスには、データに複数のページが含まれる場合、前のページまたは次のページのリンクが含まれます。これにより、データのフェッチ中にいずれかの方向に移動できます。JSONには、現在のページを指すselfリンクと、フェッチに使用可能なデータがさらにあるかどうかを示すhasMore属性も含まれています。
レスポンス形式は次のとおりです。
{
"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}"
}
]
}たとえば、表ハイパーリンクからのレスポンスの例を次に示します(わかりやすくするために改行が追加されています)。
{"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"}
]}表ハイパーリンクを使用したバインド変数のデータへのアクセス
表ハイパーリンクの生成時にSELECT文にバインド変数がある場合は、表ハイパーリンクの生成時にdefault_bind_valuesパラメータを使用してデフォルトのバインド変数値を指定するか、表ハイパーリンク・データにアクセスするために問合せパラメータとしてバインド変数値を渡す必要があります。
バインド変数のサポートは、NUMBERおよびVARCHAR2列タイプで使用できます。
たとえば、次のSQL文を使用して表ハイパーリンクが生成され、default_bind_valuesパラメータを指定しない場合です。
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyName'データにアクセスするには、バインド変数を追加し、値を問合せパラメータとして指定する必要があります。たとえば:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAINDBMS_DATA_ACCESS.CREATE_URLにdefault_bind_valuesパラメータが含まれている場合、バインド値をURLで指定する必要はありません。
たとえば、DBMS_DATA_ACCESS.CREATE_URLに次のパラメータがあるとします。
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}'この場合、パラメータdefault_bind_valuesはバインド変数の値を定義し、問合せパラメータとして値を指定する必要はありません(デフォルト値が指定されます)。
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"}
]}default_bind_valuesでバインド変数値が定義されている場合、問合せパラメータとして値を明示的に指定することで、バインド変数値をオーバーライドできます。次に例を示します。
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN詳細は、CREATE_URLプロシージャを参照してください。
パスワード保護表ハイパーリンクのデータへのアクセス
passwordパラメータをDBMS_DATA_ACCESS.CREATE_URLとともに含めて、パスワードで保護された表のハイパーリンクをURL値とともに作成する場合、生成ではパスワードをコンシューマと共有する必要があります。コンシューマは、URLとパスワードの両方を使用してデータにアクセスし、パスワードを指定して、RESTを介して基本認証を使用してデータにアクセスします。
たとえば:
HEADER
Authorization: Basic password
GET https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/Vdtv..._example_wxd0PN/data表ハイパーリンク・グループを使用したデータへのアクセス
表のハイパーリンク・グループ・データは、JSON形式で取得および返され、ページ区切りされます。
たとえば、表ハイパーリンク・グループを使用してレスポンスを処理するには、次のようにします。
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data表のハイパーリンク・グループのレスポンスには、メンバーURL情報が含まれます。
たとえば、表ハイパーリンク・グループのレスポンスの例を次に示します。
{ "member_urls": [
{
"id": "{member_id}",
"name": "{member_name}",
"description": "{member_description}"
},
.....
]
}次に、指定されたmember_id値の1つを使用して、表ハイパーリンク・グループ・メンバーのデータにアクセスするために次のREST APIを使用できます。次に例を示します。
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}"
}
]
}