Steffen Goeldner wrote:
> 
> Tim Bunce wrote:
> >
> > On Thu, Feb 21, 2002 at 12:14:31PM +0100, Steffen Goeldner wrote:
> 
> > > Should type_info_all() depend on ora_server_version(),
> > > DBD::Oracle::ORA_OCI() or both?
> >
> > Both I think, since you need both to be >=8 to be able to use the
> > types in typical situations.
> 
> O.k. (see attached patch).

This patch is very similar to the type_info_all() patch
regarding the supported datatypes:

 - SQL_TYPE_TIMESTAMP
 - SQL_CLOB
 - SQL_BLOB

I think a test for ora_server_version() isn't necessary.
I use OCI_V8_SYNTAX because I guess SQLT_CLOB and SQLT_BLOB
are not defined in the Oracle 7 header files.


Steffen
*** DBD-Oracle-1.12.orig/dbdimp.c       Wed Aug 29 21:39:16 2001
--- dbdimp.c    Wed Feb 20 22:22:08 2002
***************
*** 1921,1930 ****
          break;
      case SQLT_CHR:  sql_fbh.dbtype = SQL_VARCHAR;       break;
      case SQLT_LNG:  sql_fbh.dbtype = SQL_LONGVARCHAR;   break; /* long */
!     case SQLT_DAT:  sql_fbh.dbtype = SQL_DATE;                break;
      case SQLT_BIN:  sql_fbh.dbtype = SQL_BINARY;        break; /* raw */
      case SQLT_LBI:  sql_fbh.dbtype = SQL_LONGVARBINARY; break; /* long raw */
      case SQLT_AFC:  sql_fbh.dbtype = SQL_CHAR;          break; /* Ansi fixed char */
      default:        sql_fbh.dbtype = -9000 - fbh->dbtype; /* else map type into DBI 
reserved standard range */
      }
      return sql_fbh;
--- 1921,1934 ----
          break;
      case SQLT_CHR:  sql_fbh.dbtype = SQL_VARCHAR;       break;
      case SQLT_LNG:  sql_fbh.dbtype = SQL_LONGVARCHAR;   break; /* long */
!     case SQLT_DAT:  sql_fbh.dbtype = SQL_TYPE_TIMESTAMP;break;
      case SQLT_BIN:  sql_fbh.dbtype = SQL_BINARY;        break; /* raw */
      case SQLT_LBI:  sql_fbh.dbtype = SQL_LONGVARBINARY; break; /* long raw */
      case SQLT_AFC:  sql_fbh.dbtype = SQL_CHAR;          break; /* Ansi fixed char */
+ #ifdef OCI_V8_SYNTAX
+     case SQLT_CLOB: sql_fbh.dbtype = SQL_CLOB;                break;
+     case SQLT_BLOB: sql_fbh.dbtype = SQL_BLOB;                break;
+ #endif
      default:        sql_fbh.dbtype = -9000 - fbh->dbtype; /* else map type into DBI 
reserved standard range */
      }
      return sql_fbh;

Reply via email to