| Module : Database.Oracle.OCIConstants Copyright : (c) 2004 Oleg Kiselyov, Alistair Bayley License : BSD-style Maintainer : oleg@pobox.com, alistair@abayley.org Stability : experimental Portability : non-portable Contains CInt equivalents of the #defines in the oci library headers. This is not a complete set; just enough to get the Haskell libraries working. This also might not be particularly portable, but I don't think Oracle are going to change these in a hurry (that would break compiled programs, wouldn't it?).
> module Database.Oracle.OCIConstants where
> import Foreign.C.Types
** Used all over the place:
> oci_DEFAULT :: CInt
> oci_DEFAULT = 0
** Handle types: | Found in $ORAHOME\/oci\/include\/oci.h
> [ oci_HTYPE_ENV
>   , oci_HTYPE_ERROR
>   , oci_HTYPE_SVCCTX
>   , oci_HTYPE_STMT
>   , oci_HTYPE_BIND
>   , oci_HTYPE_DEFINE
>   , oci_HTYPE_DESCRIBE
>   , oci_HTYPE_SERVER
>   , oci_HTYPE_SESSION
>   , oci_HTYPE_TRANS
>   ] = [1..10] :: [CInt]
** Error code types: | Found in $ORAHOME\/oci\/include\/oci.h
> [ oci_SUCCESS
>   , oci_SUCCESS_WITH_INFO
>   , oci_RESERVED_FOR_INT_USE
>   , oci_NO_DATA
>   , oci_ERROR
>   , oci_INVALID_HANDLE
>   , oci_NEED_DATA
>   , oci_STILL_EXECUTING
>   , oci_CONTINUE
>   ] =
>   [0, 1, 200, 100, -1, -2, 99, -3123, -24200] :: [CInt]
** Attribute types: | Found in $ORAHOME\/oci\/include\/oci.h
> [ oci_ATTR_ENV
>   , oci_ATTR_SERVER
>   , oci_ATTR_SESSION
>   , oci_ATTR_TRANS
>   , oci_ATTR_ROW_COUNT
>   , oci_ATTR_PREFETCH_ROWS
>   , oci_ATTR_USERNAME
>   , oci_ATTR_PASSWORD
>   ] = [5,6,7,8,9,11,22,23] :: [CInt]
** Authentication options: | Found in $ORAHOME\/oci\/include\/oci.h
> oci_CRED_RDBMS :: CInt
> oci_CRED_RDBMS = 1
> oci_CRED_EXT :: CInt
> oci_CRED_EXT = 2
> oci_CRED_PROXY :: CInt
> oci_CRED_PROXY = 3
** Syntax types (i.e. does the DBMS understand v7 or v8 syntax, etc): | Found in $ORAHOME\/oci\/include\/oci.h
> oci_NTV_SYNTAX :: CInt
> oci_NTV_SYNTAX = 1
** Scrollable Cursor Options: | Found in $ORAHOME\/oci\/include\/oci.h
> oci_FETCH_NEXT :: CInt
> oci_FETCH_NEXT = 2
> oci_FETCH_FIRST :: CInt
> oci_FETCH_FIRST = 4
> oci_FETCH_LAST :: CInt
> oci_FETCH_LAST = 8
> oci_FETCH_PRIOR :: CInt
> oci_FETCH_PRIOR = 16
> oci_FETCH_ABSOLUTE :: CInt
> oci_FETCH_ABSOLUTE = 32
> oci_FETCH_RELATIVE :: CInt
> oci_FETCH_RELATIVE = 64
> oci_FETCH_RESERVED :: CInt
> oci_FETCH_RESERVED = 128
** OCI datatypes: | Found in $ORAHOME\/oci\/include\/ocidfn.h
> oci_SQLT_CHR :: CInt
> oci_SQLT_CHR = 1
> oci_SQLT_NUM :: CInt
> oci_SQLT_NUM = 2
> oci_SQLT_INT :: CInt
> oci_SQLT_INT = 3
> oci_SQLT_FLT :: CInt
> oci_SQLT_FLT = 4
> oci_SQLT_STR :: CInt
> oci_SQLT_STR = 5
> oci_SQLT_VNU :: CInt
> oci_SQLT_VNU = 6
> oci_SQLT_LNG :: CInt
> oci_SQLT_LNG = 8
> oci_SQLT_VCS :: CInt
> oci_SQLT_VCS = 9
> oci_SQLT_RID :: CInt
> oci_SQLT_RID = 11
> oci_SQLT_DAT :: CInt
> oci_SQLT_DAT = 12
> oci_SQLT_VBI :: CInt
> oci_SQLT_VBI = 15
> oci_SQLT_BIN :: CInt
> oci_SQLT_BIN = 23
> oci_SQLT_LBI :: CInt
> oci_SQLT_LBI = 24
> oci_SQLT_UIN :: CInt
> oci_SQLT_UIN = 68
> oci_SQLT_LVC :: CInt
> oci_SQLT_LVC = 94
> oci_SQLT_LVB :: CInt
> oci_SQLT_LVB = 95
> oci_SQLT_AFC :: CInt
> oci_SQLT_AFC = 96
> oci_SQLT_AVC :: CInt
> oci_SQLT_AVC = 97
> oci_SQLT_RSET :: CInt
> oci_SQLT_RSET = 116
** Transaction types; parameters for ociTransStart. | Found in $ORAHOME\/oci\/include\/oci.h. There are more than this, but they're related to complicated transaction-management stuff in the OCI libraries that I don't understand. These should be sufficient to support the simple transaction model understood by most developers.
> oci_TRANS_READONLY :: CInt
> oci_TRANS_READONLY = 0x00000100  -- 256
> oci_TRANS_READWRITE :: CInt
> oci_TRANS_READWRITE = 0x00000200  -- 512
> oci_TRANS_SERIALIZABLE :: CInt
> oci_TRANS_SERIALIZABLE = 0x00000400  -- 1024