1 21 package org.dbunit.ext.oracle; 22 23 import org.dbunit.dataset.datatype.DataType; 24 import org.dbunit.dataset.datatype.DataTypeException; 25 import org.dbunit.dataset.datatype.DefaultDataTypeFactory; 26 import org.dbunit.dataset.datatype.BinaryStreamDataType; 27 28 import java.sql.Types ; 29 30 37 public class OracleDataTypeFactory extends DefaultDataTypeFactory 38 { 39 public static final DataType ORACLE_BLOB = new OracleBlobDataType(); 40 public static final DataType ORACLE_CLOB = new OracleClobDataType(); 41 public static final DataType LONG_RAW = new BinaryStreamDataType( 42 "LONG RAW", Types.LONGVARBINARY); 43 44 public DataType createDataType(int sqlType, String sqlTypeName) throws DataTypeException 45 { 46 if (sqlType == Types.DATE) 48 { 49 return DataType.TIMESTAMP; 50 } 51 52 if (sqlTypeName.startsWith("TIMESTAMP")) 54 { 55 return DataType.TIMESTAMP; 56 } 57 58 if ("BLOB".equals(sqlTypeName)) 60 { 61 return ORACLE_BLOB; 62 } 63 64 if ("CLOB".equals(sqlTypeName) || "NCLOB".equals(sqlTypeName)) 66 { 67 return ORACLE_CLOB; 68 } 69 70 if ("NVARCHAR2".equals(sqlTypeName)) 72 { 73 return DataType.VARCHAR; 74 } 75 76 if (sqlTypeName.startsWith("NCHAR")) 78 { 79 return DataType.CHAR; 80 } 81 82 if ("FLOAT".equals(sqlTypeName)) 84 { 85 return DataType.FLOAT; 86 } 87 88 if (LONG_RAW.toString().equals(sqlTypeName)) 90 { 91 return LONG_RAW; 92 } 93 94 return super.createDataType(sqlType, sqlTypeName); 95 } 96 } 97 | Popular Tags |