DBI version         : 1.605
DBD::Oracle version : 1.22
Database            : 11.1.0.7 (don't think this matters)
DB Charset          : 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.

Reply via email to