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//
Back to
Seekers of Perl Wisdom