RE: DBD::Oracle, 10g Lob Refetch problem

2010-12-20 Thread Furst, Carl
Hey Michael,

Thanks for the reply!

So, I'd like to update this after further investigation. It would seem that
this is related to binding params and the ORA_CLOB value.

When I execute an insert passing attributes:

{ora_type => ORA_CLOB} it fails with the Lob Refetch error. However, if I
remove this, it works fine. 

I guess, yes, it would be time to update the perl... However, the code at
its oldest is also 2004 so, I'm worried about backward compatibility issues.
It's a rabbit hole I don't have time to go down. It would require
recompiling all the other libs we use under the new perl plus mod_perl plus
apache.. Just for one module??? 

In any case, The documentation says that to update multiple and or large
CLOB fields I need to pass these parameters, however how large is large? I
haven't even delved into the update part of the equation.

Thanks,
Carl.

Carl Furst
CMS Developer
MLB Advanced Media
212-485-4502 (W)
917-837-4558(M)
(505) MLB-CMS-5(CMS General Phone)
aim: furstmlb
o/~ What a difference a byte makes... o/~

-Original Message-
From: Michael Ludwig [mailto:mil...@gmx.de] 
Sent: Monday, December 20, 2010 6:25 PM
To: dbi-users@perl.org
Subject: Re: DBD::Oracle, 10g Lob Refetch problem

Moin Carl,

Furst, Carl schrieb am 20.12.2010 um 15:17 (-0500):
> 
> I just built DBD::Oracle 1.26 on Solaris SPARC 2.10 using perl 5.8.5
> 32 bit against client 10.0.2.4 

Perl 5.8.5 is from mid-2004, so six and a half years old. Time to
upgrade to 5.8.9. (And then on to 5.10.1, and 5.12.2, if you want.
If you deal with Unicode, the newer, the better.)

>   DBD::Oracle::st execute failed: ORA-00903: invalid table name (DBD
> ERROR: OCIStmtExecute/LOB refetch)
> 
> We think it's the LOB refetch that's causing the issue. 

But it says "invalid table name". What does your SQL look like?

> 1) do we need an actual Oracle server to build the DBD

No.

> if so what libs would we need to link against?

You need the Oracle client lib. The easiest should be to pick the Oracle
Instant Client, which you can find by doing a web search. The Basic or
even Basic Lite should do for your purposes. SQL*Plus is offered, too,
so I'd install that as well.

> 2) Has anyone else experienced this; building again lib32 client libs.

Experienced what exactly?

> 3) What role does oraperl have in all this? If oraperl fails to
> compile, is that a blocker for DBD?

It's all in the docs, straight at the top:

  Oraperl is an extension to Perl which allows access to Oracle
  databases.

  The original oraperl was a Perl 4 binary with Oracle OCI
  compiled into it. The Perl 5 Oraperl module described here is
  distributed with DBD::Oracle (a database driver what operates
  within DBI) and adds an extra layer over DBI method calls. The
  Oraperl module should only be used to allow existing Perl 4
  oraperl scripts to run with minimal changes; any new development
  should use DBI directly.

http://search.cpan.org/~timb/DBD-Oracle-1.16/Oraperl.pm

Hope this helps!

Best,
-- 
Michael Ludwig


smime.p7s
Description: S/MIME cryptographic signature





**

MLB.com: Where Baseball is Always On


Re: DBD::Oracle, 10g Lob Refetch problem

2010-12-20 Thread Michael Ludwig
Moin Carl,

Furst, Carl schrieb am 20.12.2010 um 15:17 (-0500):
> 
> I just built DBD::Oracle 1.26 on Solaris SPARC 2.10 using perl 5.8.5
> 32 bit against client 10.0.2.4 

Perl 5.8.5 is from mid-2004, so six and a half years old. Time to
upgrade to 5.8.9. (And then on to 5.10.1, and 5.12.2, if you want.
If you deal with Unicode, the newer, the better.)

>   DBD::Oracle::st execute failed: ORA-00903: invalid table name (DBD
> ERROR: OCIStmtExecute/LOB refetch)
> 
> We think it's the LOB refetch that's causing the issue. 

But it says "invalid table name". What does your SQL look like?

> 1) do we need an actual Oracle server to build the DBD

No.

> if so what libs would we need to link against?

You need the Oracle client lib. The easiest should be to pick the Oracle
Instant Client, which you can find by doing a web search. The Basic or
even Basic Lite should do for your purposes. SQL*Plus is offered, too,
so I'd install that as well.

> 2) Has anyone else experienced this; building again lib32 client libs.

Experienced what exactly?

> 3) What role does oraperl have in all this? If oraperl fails to
> compile, is that a blocker for DBD?

It's all in the docs, straight at the top:

  Oraperl is an extension to Perl which allows access to Oracle
  databases.

  The original oraperl was a Perl 4 binary with Oracle OCI
  compiled into it. The Perl 5 Oraperl module described here is
  distributed with DBD::Oracle (a database driver what operates
  within DBI) and adds an extra layer over DBI method calls. The
  Oraperl module should only be used to allow existing Perl 4
  oraperl scripts to run with minimal changes; any new development
  should use DBI directly.

http://search.cpan.org/~timb/DBD-Oracle-1.16/Oraperl.pm

Hope this helps!

Best,
-- 
Michael Ludwig


DBD::Oracle, 10g Lob Refetch problem

2010-12-20 Thread Furst, Carl
Hello, 

I just built DBD::Oracle 1.26 on Solaris SPARC 2.10 using perl 5.8.5 32 bit
against client 10.0.2.4 

We've been having trouble since day one. The biggest problem is that we are
having a problem writing LOB fields. We get the following error: 

DBD::Oracle::st execute failed: ORA-00903: invalid table name (DBD
ERROR: OCIStmtExecute/LOB refetch)

We think it's the LOB refetch that's causing the issue. 

the encoding of the database and the NLS_LANG parameter are both UTF8
nls_lang specifically is AMERICAN_AMERICA.UTF8

If anyone has any advice about this, it would be a big help. 

My questions are the following:
1) do we need an actual Oracle server to build the DBD - if so what libs
would we need to link against?
2) Has anyone else experienced this; building again lib32 client libs.
3) What role does oraperl have in all this? If oraperl fails to compile, is
that a blocker for DBD?

Thanks in advance,

Carl Furst
CMS Developer
MLB Advanced Media


smime.p7s
Description: S/MIME cryptographic signature





**

MLB.com: Where Baseball is Always On