John,
Not sure I get what you're saying here. I'm not actually selecting
from a DB table so there's no opportunity for NCHAR.
Anyway, NCHAR is only typically for where you want to run your DB in 8
bit but have a few tables with utf-8 data. We have our whole DB in
utf-8 (which can store any character 'on the planet') so we have no
need for NCHAR.
Thanks for looking into this.
Steve
On 18/04/2009, at 5:08 AM, [email protected] wrote:
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.
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.