Was playing with this as well and I am running into some funny stuff but I
am not sure if it is a DBD issue
Seems it might be an in compatiably between NLS_LANG and the Char you are
trying to read
Try this code again this time add the data to a NCHAR field that may help
> DBI version : 1.605
> DBD::Oracle version : 1.22
> Database : 11.1.0.7 (don't think this matters)
> DB : AL32UTF8 (this definitely matters)
> NLS_LANG : AMERICAN_AMERICA.AL32UTF8
>
> Consider the following script ...
>
> #!/usr/bin/perl -w
>
> use strict;
> use warnings;
> use DBI qw();
> use DBD::Oracle qw();
>
> my $uidpwd = 'usr/p...@xxx';
> my $dbh = DBI->connect(
> 'dbi:Oracle:',
> $uidpwd,
> '',
> {RaiseError => 1, PrintError => 0},
> );
>
> my $sth = $dbh->prepare(q(
> select chr(14844588)
> from dual
> ));
> $sth->execute;
> my ($sym1, $sym2, $sym3);
> $sth->bind_columns(\($sym1));
> $sth->fetch;
> print "Sym (1) = $sym1\n";
> $sth = $dbh->prepare(q(
> BEGIN
> :ret := chr(14844588);
> END;
> ));
> $sth->bind_param_inout(':ret', \$sym2, 10);
> $sth->execute;
> print "Sym (2) = $sym2\n";
> $dbh->disconnect;
>
> If I run the script, I would expect to see the same results from the 2
> print statements. However, this is what I see ...
>
> stbald...@au-stb-mobile:~/dev$ ./utf8.plx
> Sym (1) = â¬
> Sym (2) = â¬
>
> Anyone have any clues as to what is happening?
>
> Thanks,
>
> Steve
>
>
> This email is intended solely for the use of the addressee and may
> contain information that is confidential, proprietary, or both.
> If you receive this email in error please immediately notify the
> sender and delete the email.
>
>