def type_map
length = Property::String.length
precision = Property::Numeric.precision
scale = Property::Decimal.scale
{
Integer => { :primitive => 'NUMBER', :precision => precision, :scale => 0 },
String => { :primitive => 'VARCHAR2', :length => length },
Class => { :primitive => 'VARCHAR2', :length => length },
BigDecimal => { :primitive => 'NUMBER', :precision => precision, :scale => nil },
Float => { :primitive => 'BINARY_FLOAT', },
DateTime => { :primitive => 'DATE' },
Date => { :primitive => 'DATE' },
Time => { :primitive => 'DATE' },
TrueClass => { :primitive => 'NUMBER', :precision => 1, :scale => 0 },
Property::Text => { :primitive => 'CLOB' },
}.freeze
end