0 | module Oracle.Types.OracleType
 1 |
 2 | import Derive.Prelude
 3 |
 4 | %language ElabReflection
 5 |
 6 | public export
 7 | data OracleType
 8 |   = OracleTypeVarchar
 9 |   | OracleTypeRaw
10 |   | OracleTypeNumber
11 |   | OracleTypeTimestamp
12 |   | OracleTypeTimestampTZ
13 |   | OracleTypeIntervalYM
14 |   | OracleTypeIntervalDS
15 |   | OracleTypeClob
16 |   | OracleTypeBlob
17 |   | OracleTypeBoolean
18 |   | OracleTypeUnknown Int32
19 |
20 | %runElab derive "OracleType" [Eq,Ord,Show]
21 |
22 | ||| Convert an ODPI-C Oracle type number into an Idris representation.
23 | |||
24 | export
25 | fromOracleTypeNum : Int32 -> OracleType
26 | fromOracleTypeNum 2001 = OracleTypeVarchar
27 | fromOracleTypeNum 2006 = OracleTypeRaw
28 | fromOracleTypeNum 2010 = OracleTypeNumber
29 | fromOracleTypeNum 2012 = OracleTypeTimestamp
30 | fromOracleTypeNum 2013 = OracleTypeTimestampTZ
31 | fromOracleTypeNum 2015 = OracleTypeIntervalDS
32 | fromOracleTypeNum 2016 = OracleTypeIntervalYM
33 | fromOracleTypeNum 2017 = OracleTypeClob
34 | fromOracleTypeNum 2019 = OracleTypeBlob
35 | fromOracleTypeNum 2022 = OracleTypeBoolean
36 | fromOracleTypeNum n    = OracleTypeUnknown n
37 |