Many thanks for your response.
Client version - SQL*Plus: Release 10.2.0.1.0 - Production on Thu Dec 21
16:31:14 2006
Oracle version - Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -
64bi

Cheers,
Anand.

On 12/21/06, John Scoles <[EMAIL PROTECTED]> wrote:

Unfortunety I cannot say for 100% sure this will solve you problem as
there
is no way to exactly match your system's setup. Oracle
version/patches/Oracle client system enviornment etc.

There were a large number of improvements in UTF encoding since 1.12 so my
only sugestion is for you to install DBD::Oracle 1.19 locally on a
seperate
machine and then test to see if the bug continues.

The UTF bug like this could be caused by the Oracle cleint or the Oracle
DB
as well and not just DBD::Oracle.

What are you Oracle client and DB versions?

----- Original Message -----
From: "Anand.K.S." <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, December 21, 2006 1:17 AM
Subject: utf8 encoding problem


> Hello,
>
> I had posted this question in CPAN forum but i was directed here for a
> better answer.
>
> Here is the problem I am facing. In the following piece of code I get a
> customer name from the database and append a pound symbol to the
customer
> name and update the same in the database. The NLS_LANG parameter is set
to
> AMERICAN_AMERICA.WE8DEC (western European character set) When I query
the
> database to see if the name has been updated correctly I see some
garbage
> value appended to the name instead of just a pound symbol. Then I did
some
> research to find out the version oralce DBD version being used is 1.12.
I
> found some difference between 1.12 and 1.14 relating to unicode
> documentation. All I want to know is whether this was a bug in 1.12which
> was fixed in the later version of 1.14 and will an upgrade to 1.14 fix
> this
> problem. Could anyone please confirm me on this? The closer I could get
> was
> to find this link http://search.cpan.org/dist/DBD-Oracle/Changes#___top.
> However the work around was to use "use Encoding" (Which is commented
out
> in
> the following code) in perl which fixed the problem.
>
> Cheers,
>
> Anand.
>
>
>
> use strict;
>
> use encoding 'utf8';
>
> use atadb;
>
> use vars qw($opt_u);
>
> my $db = atadb::connect($opt_u);
>
> my $sql = " SELECT NODE_NAME FROM CUSTOMER_NODE_HISTORY WHERE
> CUSTOMER_NODE_ID = 9295370 ";
>
> my $csr = $db->prepare($sql) || ataerr::dbprepare($db);
>
> $csr->execute() || ataerr::dbexecute($db);
>
> my $node_name = $csr->fetchrow; $csr->finish;
>
> $node_name = 'wre'; my $pound = " \xc2\xa3"; print "Pound =>$pound\n";
>
> my $node_name_upper = "\U$node_name\E".$pound; $node_name.=$pound; print
> "Node name".$node_name."\n";;
>
> print $node_name_upper."\n"; my $sql1 = "UPDATE CUSTOMER_NODE_HISTORY
SET
> NODE_NAME = ? , NODE_NAME_UPPERCASE = ? WHERE CUSTOMER + +_NODE_ID =
> 9295370
> ";
>
> my $csr1 = $db->prepare($sql1) || ataerr::dbprepare($db); print
"Executing
> ... \n"; #use Encode; #$node_name = encode($ENV{PERL_ENCODING},
> $node_name);
> #$node_name_upper = encode($ENV{PERL_ENCODING}, $node_name_upper);
>
> $csr1->execute($node_name, $node_name_upper) || ataerr::dbexecute($db);
>
> print "Committing ... \n";
>
> $db->commit || die("commit: ".$db->errstr."\n");
>
> $csr1->finish; $db->disconnect;
>


Reply via email to