#!/usr/bin/perl use strict; use warnings; use Win32::ODBC; my $db = new Win32::ODBC("DSN") or die Win32::ODBC::Error(); my @table_list = $db->TableList(); my %tables; for my $table ( @table_list ) { if ( $db->Sql("Select * from $table") ) { print "Error: " . $db->Error() . "\n"; $db->close(); exit; } else { @{$tables{$table}} = $db->FieldNames(); } } $db->Close(); foreach my $table ( keys %tables ) { print "TABLE $table CONTAINS:\n"; foreach my $column ( @{$tables{$table}} ) { print "\t$column\n"; } }