#!/usr/bin/perl use strict ; use warnings ; use lib '.' ; use Data::Dumper ; use File::Slurp ; use Safelib::Dbutils ; my %skip_tables = ( '1MHG' => 1, '2TCG' => 1, '3MTG' => 1, '5PAY' => 1, '5PPH' => 1, ) ; my $dbh = Safelib::Dbutils->connect( 'LocalServer' ) ; $dbh or die "Connect failed: $DBI::errstr"; make_transaction_table() ; my $al3_rows = get_al3_specs($dbh) ; my $al3_fld_decls = make_al3_fld_decls($al3_rows) ; create_al3_tables( $al3_fld_decls ) ; exit ; sub make_transaction_table { eval { $dbh->exec_sql( <exec_sql( $sql ) ; } ; } sub create_al3_tables { my( $al3_fld_decls ) = @_ ; foreach my $rec_type ( sort keys %{$al3_fld_decls} ) { my $lrec_type = lc $rec_type ; eval { $dbh->exec_sql( <{$rec_type} primary key (id) ) ; create index al3_${lrec_type}_ind ON "dbo"."al3_$lrec_type" (parent_type, parent_id) ; create index al3_${lrec_type}_trans_ind ON "dbo"."al3_$lrec_type" (trans_id) ; create index al3_${lrec_type}_eff_year_ind ON "dbo"."al3_$lrec_type" (eff_year) ; create index al3_${lrec_type}_policy_num_ind ON "dbo"."al3_$lrec_type" (policy_num) ; create index al3_${lrec_type}_file_date_ind ON "dbo"."al3_$lrec_type" (file_date) ; SQL eval { $dbh->exec_sql( $sql ) } or print $dbh->{dbh}->errstr() ; } } sub get_al3_specs { my( $dbh ) = @_ ; return $dbh->exec_select( <{fld_name} ; $fld_name =~ tr/ //d ; next unless length $fld_name ; $fld_name = $fld_decls{$row->{rec_type}} .= sprintf( <{fld_len}) default(''), FLD } return \%fld_decls ; }