[ I'm not on the mailing list, so I apologize if this is already a known
reported problem. Also, if this is insufficient information please
let me know and I can supply a full verbose report as directed in
the README. ]
Attempting to build DBD::Oracle-1.10 under Solaris-2.6 and
Oracle-8.1.7, I encountered the following compilation error:
oci8.c: In function `oci_hdtype_name':
oci8.c:118: `OCI_DTYPE_DATETIME' undeclared (first use in this function)
oci8.c:118: (Each undeclared identifier is reported only once
oci8.c:118: for each function it appears in.)
oci8.c:119: `OCI_DTYPE_INTERVAL' undeclared (first use in this function)
make: *** [oci8.o] Error 1
These are not defined in my 8.1.7's copy of .../rdbms/demo/oci.h,
but similar data types (OCI_DTYPE_DATE, OCI_DTYPE_TIME, etc.) are.
Here is the relevant excerpt from oci.h:
/*-------------------------Descriptor Types----------------------------------*/
/* descriptor values range from 50 - 255 */
#define OCI_DTYPE_FIRST 50 /* start value of descriptor type */
#define OCI_DTYPE_LOB 50 /* lob locator */
#define OCI_DTYPE_SNAP 51 /* snapshot descriptor */
#define OCI_DTYPE_RSET 52 /* result set descriptor */
#define OCI_DTYPE_PARAM 53 /* a parameter descriptor obtained from ocigparm */
#define OCI_DTYPE_ROWID 54 /* rowid descriptor */
#define OCI_DTYPE_COMPLEXOBJECTCOMP 55
/* complex object retrieval descriptor */
#define OCI_DTYPE_FILE 56 /* File Lob locator */
#define OCI_DTYPE_AQENQ_OPTIONS 57 /* enqueue options */
#define OCI_DTYPE_AQDEQ_OPTIONS 58 /* dequeue options */
#define OCI_DTYPE_AQMSG_PROPERTIES 59 /* message properties */
#define OCI_DTYPE_AQAGENT 60 /* aq agent */
#define OCI_DTYPE_LOCATOR 61 /* LOB locator */
#define OCI_DTYPE_INTERVAL_YM 62 /* Interval year month */
#define OCI_DTYPE_INTERVAL_DS 63 /* Interval day second */
#define OCI_DTYPE_AQNFY_DESCRIPTOR 64 /* AQ notify descriptor */
#define OCI_DTYPE_DATE 65 /* Date */
#define OCI_DTYPE_TIME 66 /* Time */
#define OCI_DTYPE_TIME_TZ 67 /* Time with timezone */
#define OCI_DTYPE_TIMESTAMP 68 /* Timestamp */
#define OCI_DTYPE_TIMESTAMP_TZ 69 /* Timestamp with timezone */
#define OCI_DTYPE_TIMESTAMP_LTZ 70 /* Timestamp with local tz */
#define OCI_DTYPE_UCB 71 /* user callback descriptor */
#define OCI_DTYPE_LAST 71 /* last value of a descriptor type */
/*---------------------------------------------------------------------------*/
The appended patch works for me, but is probably not correct in
general for all versions of Oracle8i.
========== begin patch ==========
$ diff -u oci8.c.orig oci8.c
--- oci8.c.orig Thu Aug 30 08:48:47 2001
+++ oci8.c Fri Aug 31 11:09:27 2001
@@ -115,8 +115,16 @@
case OCI_DTYPE_AQMSG_PROPERTIES: return "OCI_DTYPE_AQMSG_PROPERTIES";
case OCI_DTYPE_AQAGENT: return "OCI_DTYPE_AQAGENT";
case OCI_DTYPE_LOCATOR: return "OCI_DTYPE_LOCATOR";
- case OCI_DTYPE_DATETIME: return "OCI_DTYPE_DATETIME";
- case OCI_DTYPE_INTERVAL: return "OCI_DTYPE_INTERVAL";
+ /* case OCI_DTYPE_DATETIME: return "OCI_DTYPE_DATETIME";
+ case OCI_DTYPE_INTERVAL: return "OCI_DTYPE_INTERVAL";
+ */
+ case OCI_DTYPE_DATE: return "OCI_DTYPE_DATE";
+ case OCI_DTYPE_TIME: return "OCI_DTYPE_TIME";
+ case OCI_DTYPE_TIME_TZ: return "OCI_DTYPE_TIME_TZ";
+ case OCI_DTYPE_TIMESTAMP: return "OCI_DTYPE_TIMESTAMP";
+ case OCI_DTYPE_TIMESTAMP_TZ: return "OCI_DTYPE_TIMESTAMP_TZ";
+ case OCI_DTYPE_INTERVAL_YM: return "OCI_DTYPE_INTERVAL_YM";
+ case OCI_DTYPE_INTERVAL_DS: return "OCI_DTYPE_INTERVAL_DS";
case OCI_DTYPE_AQNFY_DESCRIPTOR: return "OCI_DTYPE_AQNFY_DESCRIPTOR";
}
sv = sv_2mortal(newSViv(hdtype));
========== end patch ==========