0 | module Oracle.Types.QueryColumn
 1 |
 2 | ||| Describes a single expression selected by a Query.
 3 | |||
 4 | ||| `Column` selects the expression exactly as provided.
 5 | |||
 6 | ||| `JSONColumn` selects the expression after wrapping it in `JSON_SERIALIZE(... RETURNING CLOB)`.
 7 | |||
 8 | ||| JSON columns are therefore returned to Idris as CLOB-backed text, allowing them to be decoded as ordinary String values or passed to a `FromJSON` implementation.
 9 | |||
10 | ||| For example:
11 | |||
12 | |||   JSONColumn "profile"
13 | |||
14 | ||| renders as:
15 | |||
16 | |||   JSON_SERIALIZE(profile RETURNING CLOB)
17 | |||
18 | public export
19 | data QueryColumn
20 |   = Column String
21 |   | JSONColumn String
22 |