|
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
> oci_TRANS_READWRITE :: CInt
> oci_TRANS_READWRITE = 0x00000200
> oci_TRANS_SERIALIZABLE :: CInt
> oci_TRANS_SERIALIZABLE = 0x00000400