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.