/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.framework.jdbc.dialect; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; /** * This class implements the Oracle dialect. */ public final class OracleDialect extends Dialect { /** * Vendor ids. */ private final static String[] VENDOR_IDS = {"oracle"}; /** * Construct the dialect. */ public OracleDialect() { super( "oracle", VENDOR_IDS ); setSeparatorValue( ";" ); setNullableValue( "" ); setNotNullableValue( "not null" ); setUpdateRestrictValue( "" ); setDeleteRestrictValue( "" ); setUpdateCascadeValue( "on update cascade" ); setDeleteCascadeValue( "on delete cascade" ); setIntegerTypeValue( "integer" ); setFloatTypeValue( "float" ); setBigintTypeValue( "decimal(28,0)" ); setCharTypeValue( "char(?)" ); setVarcharTypeValue( "varchar(?)" ); setBlobTypeValue( "blob" ); setTimestampTypeValue( "date" ); setSubstringFunctionName( "substr" ); } public Object getObject( ResultSet result, int columnIndex ) throws SQLException { ResultSetMetaData metaData = result.getMetaData(); if ( "java.sql.Timestamp".equals( metaData.getColumnClassName( columnIndex ) ) ) { return getTimestamp( result, columnIndex ); } else if ( "java.sql.Date".equals( metaData.getColumnClassName( columnIndex ) ) ) { return getDate( result, columnIndex ); } else if ( "java.sql.Time".equals( metaData.getColumnClassName( columnIndex ) ) ) { return getTime( result, columnIndex ); } return super.getObject( result, columnIndex ); } public String formatTimestamp( long time ) { return "timestamp" + super.formatTimestamp( time ); } }