### Question:
OracleGenDialect extends StandardGenDialect { @Override public SqlType getSqlType(ValueTypeProvider valueTypeProvider, PropertyMeta propertyMeta) { if (useOracleDate) { ValueType valueType = valueTypeProvider.provide(propertyMeta); if (valueType instanceof org.seasar.extension.jdbc.types.OracleDateType || valueType instanceof org.seasar.extension.jdbc.types.OracleDateCalendarType) { return new TimestampType("date"); } } return super.getSqlType(valueTypeProvider, propertyMeta); } OracleGenDialect(); boolean isUseOracleDate(); void setUseOracleDate(boolean useOracleDate); @Override String getName(); @Override GenerationType getDefaultGenerationType(); @Override boolean supportsSequence(); @Override boolean supportsGetIndexInfo(String catalogName, String schemaName,
            String tableName); @Override String getSequenceDefinitionFragment(String dataType,
            long initialValue, int allocationSize); @Override String getSqlBlockDelimiter(); @Override boolean isTableNotFound(Throwable throwable); @Override boolean isColumnNotFound(Throwable throwable); @Override boolean isSequenceNotFound(Throwable throwable); @Override ColumnType getColumnType(String typeName, int sqlType); @Override SqlBlockContext createSqlBlockContext(); @Override String getSequenceNextValString(String sequenceName,
            int allocationSize); @Override boolean supportsCommentInCreateTable(); @Override boolean supportsCommentOn(); @Override boolean isJdbcCommentAvailable(); @Override String getTableComment(Connection connection, String catalogName,
            String schemaName, String tableName); @Override Map<String, String> getColumnCommentMap(Connection connection,
            String catalogName, String schemaName, String tableName); @Override boolean supportsReferentialUpdateRule(); @Override SqlType getSqlType(ValueTypeProvider valueTypeProvider,
            PropertyMeta propertyMeta);  }### Answer:
@Test public void testGetSqlType_binary() throws Exception { SqlType type = dialect.getSqlType(Types.BINARY); assertEquals("raw(2000)", type.getDataType(2000, 0, 0, false)); }
@Test public void testGetSqlType_varchar() throws Exception { SqlType type = dialect.getSqlType(Types.VARCHAR); assertEquals("varchar2(4000)", type.getDataType(4000, 0, 0, false)); }
@Test public void testGetSqlType_bigint() throws Exception { SqlType type = dialect.getSqlType(Types.BIGINT); assertEquals("number(10,0)", type.getDataType(0, 10, 0, false)); }
@Test public void testGetSqlType_oracleDate() throws Exception { ValueTypeProvider valueTypeProvider = new ValueTypeProviderImpl( new OracleDialect()); PropertyMeta propertyMeta = new PropertyMeta(); propertyMeta.setField(ReflectionUtil.getDeclaredField(getClass(), "utilDate")); propertyMeta.setValueType(OracleDialect.ORACLE_DATE_TYPE); SqlType type = dialect.getSqlType(valueTypeProvider, propertyMeta); assertEquals("date", type.getDataType(0, 0, 0, false)); }