#!/usr/bin/perl -w use strict; my %translation = ( char => 'VARCHAR2', varchar => 'VARCHAR2', decimal => 'NUMBER', integer => 'NUMBER', bigint => 'NUMBER', bit => 'NUMBER', tinyint => 'NUMBER', smallint => 'NUMBER', numeric => 'NUMBER', money => 'NUMBER', float => 'FLOAT', real => 'REAL', date => 'DATE', time => 'DATE', smalldatetime => 'DATE', datetime => 'DATE', timestamp => 'TIMESTAMP', longchar => 'CLOB', binary => 'BLOB', varbinary => 'BLOB', longbinary => 'LONG RAW', ); my %count; my $rx = qr/@{[join '|', map quotemeta, keys %translation ]}/; while (<>) { if(s/^\s*go\s*$/\/\n/gi) { $count{GO}++; print "TABLESPACE ARSAMS\n"; } s/\b($rx)\b/$count{$translation{$1}}++; $translation{$1}/egi; $count{total}++; print OUT; } print "$_: $count{$_} changes in this file" for sort keys %count;