[ 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 ==========

Reply via email to