24.12 A Flat Data Guide For Purchase-Order Documents
The fields of a sample flat data guide are described. It corresponds to a set of purchase-order documents.
The only JSON Schema keyword used in a flat data guide is
type
. The other fields are all Oracle data-guide fields, which have
prefix o:
.
Example 24-22 shows a flat data guide for the purchase-order documents in table j_purchaseorder
. Things to note:
-
The values of
o:preferred_column_name
use prefixDATA$
. This prefix comes from usingDBMS_JSON.get_index_dataguide
to obtain this data guide. -
The value of
o:length
is 8 for path$.User
, for example, in spite of the fact that the actual lengths of the field values are 5. This is because the value ofo:length
is always a power of two. -
The value of
o:path
for fieldSpecial Instructions
is wrapped in double quotation marks ("Special Instructions"
) because of the embedded space character.
Example 24-22 Flat Data Guide For Purchase Orders
Paths are bold
. JSON schema keywords are italic
. Preferred column names that result from using DBMS_JSON.rename_column
are also italic
. The formatting used is similar to that produced by using SQL/JSON function json_dataguide
with format arguments DBMS_JSON.FORMAT_FLAT
and DBMS_JSON.PRETTY
.
Note that fields o:frequency
, o:low_value
,
o:high_value
, o:num_nulls
, and
o:last_analyzed
are present. This can only be because statistics were
gathered on the document set. Their values reflect the state as of the last statistics
gathering.
See Example 24-3 for an example of gathering statistics for this data.
In order for statistics to be gathered, either the data guide needs to be
based on a JSON search index or it needs to be created using function
json_dataguide
, specifying DBMS_JSON.GATHER_STATS
in the
third argument.
[
{
"o:path": "$.User",
"type": "string",
"o:length": 8,
"o:preferred_column_name": "DATA$User",
"o:frequency": 100,
"o:low_value": "ABULL",
"o:high_value": "SBELL",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.PONumber",
"type": "number",
"o:length": 4,
"o:preferred_column_name": "PONumber",
"o:frequency": 100,
"o:low_value": "672",
"o:high_value": "1600",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems",
"type": "array",
"o:length": 512,
"o:preferred_column_name": "DATA$LineItems",
"o:frequency": 100,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.Part",
"type": "object",
"o:length": 128,
"o:preferred_column_name": "DATA$Part",
"o:frequency": 100,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.Part.UPCCode",
"type": "number",
"o:length": 16,
"o:preferred_column_name": "DATA$UPCCode",
"o:frequency": 100,
"o:low_value": "13131092899",
"o:high_value": "717951002396",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.Part.UnitPrice",
"type": "number",
"o:length": 8,
"o:preferred_column_name": "DATA$UnitPrice",
"o:frequency": 100,
"o:low_value": "20",
"o:high_value": "19.95",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.Part.Description",
"type": "string",
"o:length": 32,
"o:preferred_column_name": "PartDescription",
"o:frequency": 100,
"o:low_value": "Nixon",
"o:high_value": "Eric Clapton: Best Of 1981-1999",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.Quantity",
"type": "number",
"o:length": 4,
"o:preferred_column_name": "DATA$Quantity",
"o:frequency": 100,
"o:low_value": "5",
"o:high_value": "9.0",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.LineItems.ItemNumber",
"type": "number",
"o:length": 1,
"o:preferred_column_name": "ItemNumber",
"o:frequency": 100,
"o:low_value": "1",
"o:high_value": "3",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.Reference",
"type": "string",
"o:length": 16,
"o:preferred_column_name": "DATA$Reference",
"o:frequency": 100,
"o:low_value": "ABULL-20140421",
"o:high_value": "SBELL-20141017",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.Requestor",
"type": "string",
"o:length": 16,
"o:preferred_column_name": "DATA$Requestor",
"o:frequency": 100,
"o:low_value": "Sarah Bell",
"o:high_value": "Alexis Bull",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.CostCenter",
"type": "string",
"o:length": 4,
"o:preferred_column_name": "DATA$CostCenter",
"o:frequency": 100,
"o:low_value": "A50",
"o:high_value": "A50",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.AllowPartialShipment",
"type": "boolean",
"o:length": 4,
"o:preferred_column_name": "DATA$AllowPartialShipment",
"o:frequency": 50,
"o:low_value": "true",
"o:high_value": "true",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions",
"type": "object",
"o:length": 256,
"o:preferred_column_name": "DATA$ShippingInstructions",
"o:frequency": 100,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.name",
"type": "string",
"o:length": 16,
"o:preferred_column_name": "DATA$name",
"o:frequency": 100,
"o:low_value": "Sarah Bell",
"o:high_value": "Alexis Bull",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Phone",
"type": "string",
"o:length": 16,
"o:preferred_column_name": "Phone",
"o:frequency": 50,
"o:low_value": "983-555-6509",
"o:high_value": "983-555-6509",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Phone",
"type": "array",
"o:length": 128,
"o:preferred_column_name": "DATA$Phone_1",
"o:frequency": 50,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Phone.type",
"type": "string",
"o:length": 8,
"o:preferred_column_name": "PhoneType",
"o:frequency": 50,
"o:low_value": "Mobile",
"o:high_value": "Office",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Phone.number",
"type": "string",
"o:length": 16,
"o:preferred_column_name": "PhoneNumber",
"o:frequency": 50,
"o:low_value": "415-555-1234",
"o:high_value": "909-555-7307",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address",
"type": "object",
"o:length": 128,
"o:preferred_column_name": "DATA$Address",
"o:frequency": 100,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address.city",
"type": "string",
"o:length": 32,
"o:preferred_column_name": "DATA$city",
"o:frequency": 100,
"o:low_value": "South San Francisco",
"o:high_value": "South San Francisco",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address.state",
"type": "string",
"o:length": 2,
"o:preferred_column_name": "DATA$state",
"o:frequency": 100,
"o:low_value": "CA",
"o:high_value": "CA",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address.street",
"type": "string",
"o:length": 32,
"o:preferred_column_name": "DATA$street",
"o:frequency": 100,
"o:low_value": "200 Sporting Green",
"o:high_value": "200 Sporting Green",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address.country",
"type": "string",
"o:length": 32,
"o:preferred_column_name": "DATA$country",
"o:frequency": 100,
"o:low_value": "United States of America",
"o:high_value": "United States of America",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.ShippingInstructions.Address.zipCode",
"type": "number",
"o:length": 8,
"o:preferred_column_name": "DATA$zipCode",
"o:frequency": 100,
"o:low_value": "99236",
"o:high_value": "99236",
"o:num_nulls": 0,
"o:last_analyzed": "2016-03-31T12:17:53"
},
{
"o:path": "$.\"Special Instructions\"",
"type": "string",
"o:length": 8,
"o:preferred_column_name": "DATA$SpecialInstructions",
"o:frequency": 100,
"o:low_value": "Courier",
"o:high_value": "Courier",
"o:num_nulls": 1,
"o:last_analyzed": "2016-03-31T12:17:53"
}
]
See Also:
-
Oracle Database PL/SQL Packages and Types Reference for information about
DBMS_JSON.get_index_dataguide
-
Oracle Database PL/SQL Packages and Types Reference for information about
DBMS_JSON.rename_column
Parent topic: JSON Data Guide