http://qs321.pair.com?node_id=1230378

jtech has asked for the wisdom of the Perl Monks concerning the following question:

Hi ladies and gentlemen

Can you help me to scape a reserved double quoted column name from an Ingres database, please?

The difference is the column name open is between double quotes, probably because it is a reserved word in the Ingres database. The SQL query works fine using double quotes or not, in the SQL terminal.

The Perl code below works great:

my $sql = "SELECT DISTINCT id FROM mytable WHERE active = ?"; my $ref = $dbh->selectall_arrayref($sql,undef,'yes'); @id = map{ $_->[0] } @$ref; die join (", ", @id), "\n";

But, the Perl code below returns the error: "Argument "true" isn't numeric in subroutine entry at ./new.pl line 104."

my $sql = "SELECT DISTINCT id FROM mytable WHERE open = ?"; my $ref = $dbh->selectall_arrayref($sql,undef,'true'); @id = map{ $_->[0] } @$ref; die join (", ", @id), "\n";

So, I have escaped the quotes using the below chars without success:

'open' '\open\' "open" "\open\" '\"open\"' \"'open'\" '"open"' "'open'" \'\"open\"\' \"\'open\'\"

Also, it has been combined with q// and qq//