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