Re: utf8 encoding problem



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 <scoles@xxxxxxxxxxx> 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." <ks.anand80@xxxxxxxxx>
To: <dbi-users@xxxxxxxx>
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;
>




Relevant Pages

  • Re: VW --> Bianary file into CLOB or BLOB
    ... Page 1252 encoding, which is normal Windows encoding for Western European ... the database as I manage this on both PostgreSQL, Oracle and ODBC ... My outstanding problem was to create a valid ByteArray from no matter ...
    (comp.lang.smalltalk)
  • Re: VW --> Bianary file into CLOB or BLOB
    ... Page 1252 encoding, which is normal Windows encoding for Western European alphabets. ... the database as I manage this on both PostgreSQL, Oracle and ODBC following the documentation. ... My outstanding problem was to create a valid ByteArray from no matter what file as I previously used the ByteArray coming from ImageReader. ...
    (comp.lang.smalltalk)
  • Re: Convertion of Unicode to ASCII NIGHTMARE
    ... deal with Oracle, and I'm not looking for another adventure into ... applications and the database system. ... is to make sure that you know which encoding is used so that if you ... either get plain strings (ie. not Unicode objects) out of the database, ...
    (comp.lang.python)
  • Re: NLS_LANG
    ... it can't be done from within the Oracle server. ... A client pretending to use the same character set as the database, ... Of course it is sometimes correct to have client encoding ...
    (comp.databases.oracle.tools)
  • Re: utf8 encoding problem
    ... 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. ... name and update the same in the database. ...
    (perl.dbi.users)