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;