Here's a softball:
I'm trying to place the results of a SQL Select statement into an array. In this case, the Select returns only one column. When I run the script, I get this error:
Can't locate object method "selectcol_arrayref" via package "DBI::st"
+at C:\temp\test.pl line 29 (#1)
(F) You called a method correctly, and it correctly indicated a pa
+ckage functioning as a class, but that package doesn't define that pa
+rticular method, nor does any of its base classes. See perlobj.
Here is the offending line:
@EasySetTableNames = @{$sqlCmd->selectcol_arrayref($sqlStatement)};
And the related code (with the offending line at the end):
use strict;
use warnings;
use diagnostics;
use DBI;
#use replace;
use File::Glob ':glob';
#Variable Declarations
#############
#---Database Credentials
my $DBUserName = "sa";
my $DBPassword = "unica*03";
my $DBName = "dbi:ODBC:Insight";
#------Used in Database Transactions
my $dbh = "";
my $sqlStatement = "";
my $sqlCmd = "";
#---Variables used to gather Easy Set Table names
my @EasySetTableNames = ();
#------Establish DB Connection
$dbh = DBI->connect( $DBName, $DBUserName, $DBPassword,{ PrintError =>
+ 0,AutoCommit => 0})
|| die "Database connection creation failed: $DBI::errstr\n";
# Get the Easy Set Tables
#---These tables in the Insight Database all start with AI_ so get at
+ list of those tables
$sqlStatement = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHER
+E TABLE_NAME LIKE '%AI_%'";
$sqlCmd = $dbh->prepare($sqlStatement);
$sqlCmd->execute();
@EasySetTableNames = @{$sqlCmd->selectcol_arrayref($sqlStatement)};
Also, I seem to have a logical brain fart concerning how Perl handles hashes, arrays and strings. Can anyone point me to a good source.
Do you believe in miracles? Yes!