And could someone tell why the following code does not work? It does not work either with or without placeholders, but with different errors.
In this case, I want to select all unique dates from timestamps. It works as expected with select distinct cast(date as date) from table; issued directly in psql.
# With placeholders
my $sth_test = $dbh->prepare("select distinct cast($date_col as date)
+from ?;") or die;
$sth_test->execute($schema.$table);
# Errors (on execute())
INFO: The database has been opened successfully.
DBD::Pg::st execute failed: ERROR: syntax error at or near "$1"
LINE 1: select distinct cast(date as date) from $1;
^ at ./refresh_
+dates.pl line n.
DBD::Pg::st execute failed: ERROR: syntax error at or near "$1"
LINE 1: select distinct cast(date as date) from $1;
^ at ./refresh_
+dates.pl line n.
# Without placeholders
my $sth_test = $dbh->prepare("select distinct cast($date_col as date)
+from $schema.$table;") or die;
$sth_test->execute();
$dbh->disconnect();
# Error (on disconnect)
DBI::db=HASH(0x32cec98)->disconnect invalidates 1 active statement han
+dle (either destroy statement handles or call finish on them before d
+isconnecting) at ./refresh_dates.pl line n.
|