in reply to Re^3: Global symbol "$prepare" requires explicit package name
in thread Global symbol "$prepare" requires explicit package name
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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Global symbol "$prepare" requires explicit package name
by hippo (Archbishop) on Sep 19, 2019 at 14:29 UTC | |
by tukusejssirs (Beadle) on Sep 19, 2019 at 14:52 UTC | |
by hippo (Archbishop) on Sep 19, 2019 at 15:17 UTC |