Wildcard Data Types
The Oracle NoSQL Database data model includes the following wildcard data types:
Table 2-5 Wildcard Data Types
Data Type | Description | Examples |
---|---|---|
ANY | Any instance of any NoSQL type is an instance of the ANY type as well. |
{ "city" : "Santa Cruz", "zip" : 95008, "phones" : [ { "area" : 408, "number" : 4538955, "kind" : "work" }, { "area" : 831, "number" : 7533341, "kind" : "home" } ] } "Santa Cruz" 95008 TRUE '0x34 0xF5' '2020-01-20T12:15:054' [ 12, "foo", { "city":"Santa Cruz"}, [2, 3]] |
ANYATOMIC | Any instance of any other atomic type is an instance of the ANYATOMIC type as well. The json null value is also an instance of ANYATOMIC. |
"Santa Cruz" 95008 TRUE '0x34 0xF5' '2020-01-20T12:15:054' |
ANYJSONATOMIC | Any instance of a numeric type, the string type, and the boolean type is an instance of the ANYJSONATOMIC type as well. The json null value is also an instance of ANYJSONATOMIC. |
"Santa Cruz" 95008 true |
JSON | See the Description column in the Table 2-4. | See the Examples column in the Table 2-4. |
ANYRECORD | Any instance of any other RECORD type is an instance of the ANYRECORD type as well. | { "city" : "Santa Cruz", "zip" : 95008 } |
A data type is called precise if it is not one of the wildcard types and, in the case of complex types, all of its constituent types are also precise. Items that have precise types are said to be strongly typed.
Wildcard types are abstract, which means that no item can have a wildcard type as its type. However, items may have an imprecise type. For example, an item may have MAP(JSON) as its type, indicating that its value is a map that can store field values of different types, as long as all of these values belong to the JSON type. In fact, MAP(JSON) is the type that represents all JSON objects (JSON documents), and ARRAY(JSON) is the type that represents all JSON arrays.