# MySQL types
#
bigint => 'number',
- double => 'number',
+ double => [ 'float', 126 ],
decimal => 'number',
- float => 'number',
+ float => 'float',
int => 'number',
integer => 'number',
mediumint => 'number',
mediumblob => 'blob',
longblob => 'blob',
tinytext => 'varchar2',
- text => [ 'varchar2', 4000 ],
+ text => 'clob',
longtext => 'clob',
mediumtext => 'clob',
enum => 'varchar2',
#
my %max_size = (
char => 2000,
+ float => 126,
nchar => 2000,
nvarchar2 => 4000,
number => [ 38, 127 ],
undef @size;
}
+ #
+ # Fixes ORA-00906: missing right parenthesis
+ # if size is 0 or undefined
+ #
+ for (qw/varchar2/) {
+ if ( $data_type =~ /^($_)$/i ) {
+ $size[0] ||= $max_size{$_};
+ }
+ }
+
$field_def .= " $data_type";
if ( defined $size[0] && $size[0] > 0 ) {
$field_def .= '(' . join( ',', @size ) . ')';