Re: Perl and Oracle using DBI on HP/UX with perl compiled using HP POSIX C compiler

2009-03-25 Thread Douglas Wilson
On Wed, Mar 25, 2009 at 1:18 PM, McCoy, Dennis  wrote:
>
> I am using perl on a HP/UX system which is managed by another group who
> has root access. I have no such access on this server.
>
> I tried compling DBD::Oracle on HP/UX, but the POSIX compliant C
> compiler on that system complained that the command line options were
> for ANSI C. I requested the group which manages the

What system was perl compiled on? And what compiler
did they use?
You normally want aCC (my perl -V says CC='cc' but cc is the same as
the softbench aCC compiler on my system).

Your perl was likely not compiled with the bundled
compiler, and you need a different compiler (or get
someone with a compiler to compile for you).
Or there are HP binaries available here (compiled w/gcc):
http://mirrors.develooper.com/hpux/

Also I documented my HP compiling adventures here:
http://use.perl.org/~runrig/journal/35908

HTH,
Douglas Wilson


Perl and Oracle using DBI on HP/UX with perl compiled using HP POSIX C compiler

2009-03-25 Thread McCoy, Dennis
Folks:
 
I am using perl on a HP/UX system which is managed by another group who
has root access. I have no such access on this server.
 
I tried compling DBD::Oracle on HP/UX, but the POSIX compliant C
compiler on that system complained that the command line options were
for ANSI C. I requested the group which manages the HP/UX system to
install DBI and DBD::Oracle. They too had the same issue with the POSIX
C compiler fussing. After a few back and forth emails about the
necessity for an ANSI compliant C compiler, it looked like they would
have to re-build perl and they have no love for that. 
 
I would rather not resort to using system calls to SQL*Plus from my perl
scripts if at all possible. Is there another option available for my
situation which you could recommend?
 
Thanks,
Dennis McCoy
E-Commerce Analyst
Delphi, Vega Team
(248) 808-4347 Cell
dennis.mc...@delphi.com
 


RE: DBD::Oracle on Oracle 11g 64 bit fedora 10

2009-03-25 Thread Martin Gainty

from what i've seen if ANY 32bit library found in the path 
(LD_LIBRARY_PATH/LIB) causes
the process fails back to 32 bit behaviour

Just as a test I have a processor which is 64bit and when I load in 64bit 
(Oracle Type 2 Oracle Call Interface) libraries the performance more than 
doubles

My 2 cents
Martin 
__ 
Verzicht und Vertraulichkeitanmerkung / Disclaimer and confidentiality note 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
This message is confidential and may be privileged. If you are not the intended 
recipient, we kindly ask you to  please inform the sender. Any unauthorised 
dissemination or copying hereof is prohibited. This message serves for 
information purposes only and shall not have any legally binding effect. Given 
that e-mails can easily be subject to manipulation, we can not accept any 
liability for the content provided.






> From: g.russ...@napier.ac.uk
> To: shild...@scotth.emsphone.com
> CC: dbi-users@perl.org
> Date: Wed, 25 Mar 2009 21:07:53 +
> Subject: RE: DBD::Oracle on Oracle 11g 64 bit fedora 10
> 
> 
> Hi.
> No still no good solution. However it doesnt seem to make any difference.
> I have been running this in a production server without error for 2 months 
> now.
> I downloaded the development version directly, and I couldnt see any real 
> difference in the messages, and thus I stuck with the released version.
> 
> Let me know if you many any discoveries.
> Gordon.
> 
> 
> From: Scott T. Hildreth [shild...@scotth.emsphone.com]
> Sent: 25 March 2009 19:44
> To: Russell, Gordon
> Cc: dbi-users@perl.org
> Subject: Re: DBD::Oracle on Oracle 11g 64 bit fedora 10
> 
> On Mon, 2009-01-19 at 20:26 +, Russell, Gordon wrote:
> >
> > Hi. I am hoping someone can look over this install info and tell me if it 
> > is all ok?
> >
> > I am having some worries with a new install of fedora 10.
> > I also installed oracle 11.1.0.7.
> > I have the latest DBI and am installing DBD Oracle 1.22. Note I have used 
> > DBD and Oracle for many many years.
> > I have a 64 bit environment, UTF8 database and linux, with 32 bit 
> > compatibility libraries installed only to make the oracle installer tests 
> > happy.
> >
> 
> Gordon,
> 
> Did you ever resolve this?  We are moving to 11g now and I am having
> the same issue.  I originally thought it was a 11g client => 10g db
> problem, but I can reproduce it trying to compile DBD::Oracle using a
> 11g db.  Oracle 11.1.0.7.0 is installed on SUSE Linux Enterprise Server
> 10 (x86_64).
> 
> Thanks,
> Scott.
> 
> > In short, it works but produces some test errors. Not sure if I should just 
> > ignore them!
> > Plenty of information follows... any suggestions appreciated.
> >
> > When building DBD Oracle, the tests come up with 3 fails:
> > Test Summary Report
> > ---
> > t/26exe_array   (Wstat: 512 Tests: 14 Failed: 2)
> >   Failed tests:  11, 14
> >   Non-zero exit status: 2
> > t/30long(Wstat: 512 Tests: 30 Failed: 0)
> >   Non-zero exit status: 2
> >   Parse errors: Bad plan.  You planned 479 tests but ran 30.
> > t/31lob (Wstat: 256 Tests: 6 Failed: 1)
> >   Failed test:  6
> >   Non-zero exit status: 1
> >   Parse errors: Bad plan.  You planned 9 tests but ran 6.
> >
> > The actual errors are:
> > t/26exe_array...
> >  Dubious, test returned 2 (wstat 512, 0x200)
> >  Failed 2/14 subtests
> > t/30longpanic: sv_len_utf8 cache 10240 real 81920 for 
> > 1234
> > t/31lob.DBD::Oracle::st execute failed: ORA-24813: cannot 
> > send or receive an unsupported LOB (DBD ERROR: OCIStmtExecute) [for 
> > Statement "BEGIN ? := DBMS_LOB.GETLENGTH( ? ); END;" with ParamValues: 
> > :p1=undef, :p2=OCILobLocatorPtr=SCALAR(0x19cb018)] at t/31lob.t line 108.
> >
> > Installing it anyway seems ok, but running:
> > my $dbh = DBI->connect_cached('dbi:Oracle:sid',username,password,{
> > RaiseError=> 1,
> > PrintError=> 0,
> > ShowErrorStatement=> 1,
> > AutoCommit=> 0,
> > ora_verbose=>6
> >
> > })
> > Produces:
> > OCINlsEnvironmentVariableGet(871,0,93,0,2)=SUCCESS
> > OCINlsEnvironmentVariableGet(871,0,94,0,2)=SUCCESS
> > OCINlsEnvCreate(1b8c5d0,THREADED | 
> > OBJECT,3,0,0,0,0,0,0,871,871)=SUCCESS
> > OCIHandleAlloc(1c06220,1b8c5d8,OCI_HTYPE_ERROR,0,0)=SUCCESS
> >charset id=871, name=UTF8, ncharset id=871, name=UTF8 (csid: 
> > utf8=871 al32utf8=873)
> > OCIHandleAlloc(1c06220,1b8c5e0,OCI_HTYPE_SERVER

RE: DBD::Oracle on Oracle 11g 64 bit fedora 10

2009-03-25 Thread Russell, Gordon

Hi.
No still no good solution. However it doesnt seem to make any difference.
I have been running this in a production server without error for 2 months now.
I downloaded the development version directly, and I couldnt see any real 
difference in the messages, and thus I stuck with the released version.

Let me know if you many any discoveries.
Gordon.


From: Scott T. Hildreth [shild...@scotth.emsphone.com]
Sent: 25 March 2009 19:44
To: Russell, Gordon
Cc: dbi-users@perl.org
Subject: Re: DBD::Oracle on Oracle 11g 64 bit fedora 10

On Mon, 2009-01-19 at 20:26 +, Russell, Gordon wrote:
>
> Hi. I am hoping someone can look over this install info and tell me if it is 
> all ok?
>
> I am having some worries with a new install of fedora 10.
> I also installed oracle 11.1.0.7.
> I have the latest DBI and am installing DBD Oracle 1.22. Note I have used DBD 
> and Oracle for many many years.
> I have a 64 bit environment, UTF8 database and linux, with 32 bit 
> compatibility libraries installed only to make the oracle installer tests 
> happy.
>

Gordon,

Did you ever resolve this?  We are moving to 11g now and I am having
the same issue.  I originally thought it was a 11g client => 10g db
problem, but I can reproduce it trying to compile DBD::Oracle using a
11g db.  Oracle 11.1.0.7.0 is installed on SUSE Linux Enterprise Server
10 (x86_64).

Thanks,
Scott.

> In short, it works but produces some test errors. Not sure if I should just 
> ignore them!
> Plenty of information follows... any suggestions appreciated.
>
> When building DBD Oracle, the tests come up with 3 fails:
> Test Summary Report
> ---
> t/26exe_array   (Wstat: 512 Tests: 14 Failed: 2)
>   Failed tests:  11, 14
>   Non-zero exit status: 2
> t/30long(Wstat: 512 Tests: 30 Failed: 0)
>   Non-zero exit status: 2
>   Parse errors: Bad plan.  You planned 479 tests but ran 30.
> t/31lob (Wstat: 256 Tests: 6 Failed: 1)
>   Failed test:  6
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 9 tests but ran 6.
>
> The actual errors are:
> t/26exe_array...
>  Dubious, test returned 2 (wstat 512, 0x200)
>  Failed 2/14 subtests
> t/30longpanic: sv_len_utf8 cache 10240 real 81920 for 1234
> t/31lob.DBD::Oracle::st execute failed: ORA-24813: cannot 
> send or receive an unsupported LOB (DBD ERROR: OCIStmtExecute) [for Statement 
> "BEGIN ? := DBMS_LOB.GETLENGTH( ? ); END;" with ParamValues: :p1=undef, 
> :p2=OCILobLocatorPtr=SCALAR(0x19cb018)] at t/31lob.t line 108.
>
> Installing it anyway seems ok, but running:
> my $dbh = DBI->connect_cached('dbi:Oracle:sid',username,password,{
> RaiseError=> 1,
> PrintError=> 0,
> ShowErrorStatement=> 1,
> AutoCommit=> 0,
> ora_verbose=>6
>
> })
> Produces:
> OCINlsEnvironmentVariableGet(871,0,93,0,2)=SUCCESS
> OCINlsEnvironmentVariableGet(871,0,94,0,2)=SUCCESS
> OCINlsEnvCreate(1b8c5d0,THREADED | 
> OBJECT,3,0,0,0,0,0,0,871,871)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5d8,OCI_HTYPE_ERROR,0,0)=SUCCESS
>charset id=871, name=UTF8, ncharset id=871, name=UTF8 (csid: utf8=871 
> al32utf8=873)
> OCIHandleAlloc(1c06220,1b8c5e0,OCI_HTYPE_SERVER,0,0)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5e8,OCI_HTYPE_SVCCTX,0,0)=SUCCESS
> OCIServerAttach(1c45608, 1c44e68, "sid", 3, mode=DEFAULT,0)=SUCCESS
> OCIAttrSet(1c44d90,OCI_HTYPE_SVCCTX,1c45608,0,6,1c44e68)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5f0,OCI_HTYPE_SESSION,0,0)=SUCCESS
> OCIAttrSet(1c81838,OCI_HTYPE_SESSION,1a1d348,8,22,1c44e68)=SUCCESS
> OCIAttrSet(1c81838,OCI_HTYPE_SESSION,1917d08,6,23,1c44e68)=SUCCESS
> OCISessionBegin(1c44d90,1c44e68,1c81838,1,mode=DEFAULT 0)=SUCCESS
> OCIAttrSet(1c44d90,OCI_HTYPE_SVCCTX,1c81838,0,7,1c44e68)=SUCCESS
> "DBI::db=HASH(0x1919710)" is not exported by the DBD::Oracle module
> Can't continue after import errors at ./demo.pl line 7
> BEGIN failed--compilation aborted at ./demo.pl line 15.
> OCITransRollback(1c44d90,1c44e68,mode=DEFAULT 0)=SUCCESS
> OCISessionEnd(1c44d90,1c44e68,1c81838,mode=DEFAULT 0)=SUCCESS
> OCIServerDetach(1c45608,1c44e68,mode=DEFAULT,0)=SUCCESS
> OCIHandleFree(1c81838,OCI_HTYPE_SESSION)=SUCCESS
> OCIHandleFree(1c45608,OCI_HTYPE_SERVER)=SUCCESS
> OCIHandleFree(1c44d90,OCI_HTYPE_SVCCTX)=SUCCESS
> OCIHandleFree(1c44e68,OCI_HTYPE_ERROR)=SUCCESS
>
> Looking through the makefile and running ldd on the .so file it seems to have 
> only used the 64 bit oracle libraries
> Let me know if I can add anything.
>
> Thanks
> Gordon.
>
>
> Napier University is the best modern university in Scotland* and number one 
> in Scotland for graduate employability**
> (*Guardian University Guide 2009)
> (**HESA 2008)
>
> This message is intended for the addressee(s) only and shoul

Re: DBD::Oracle on Oracle 11g 64 bit fedora 10

2009-03-25 Thread Scott T. Hildreth
On Mon, 2009-01-19 at 20:26 +, Russell, Gordon wrote:
> 
> Hi. I am hoping someone can look over this install info and tell me if it is 
> all ok?
> 
> I am having some worries with a new install of fedora 10.
> I also installed oracle 11.1.0.7.
> I have the latest DBI and am installing DBD Oracle 1.22. Note I have used DBD 
> and Oracle for many many years.
> I have a 64 bit environment, UTF8 database and linux, with 32 bit 
> compatibility libraries installed only to make the oracle installer tests 
> happy.
> 

Gordon, 

Did you ever resolve this?  We are moving to 11g now and I am having
the same issue.  I originally thought it was a 11g client => 10g db
problem, but I can reproduce it trying to compile DBD::Oracle using a
11g db.  Oracle 11.1.0.7.0 is installed on SUSE Linux Enterprise Server
10 (x86_64).  

Thanks,
Scott.

> In short, it works but produces some test errors. Not sure if I should just 
> ignore them!
> Plenty of information follows... any suggestions appreciated.
> 
> When building DBD Oracle, the tests come up with 3 fails:
> Test Summary Report
> ---
> t/26exe_array   (Wstat: 512 Tests: 14 Failed: 2)
>   Failed tests:  11, 14
>   Non-zero exit status: 2
> t/30long(Wstat: 512 Tests: 30 Failed: 0)
>   Non-zero exit status: 2
>   Parse errors: Bad plan.  You planned 479 tests but ran 30.
> t/31lob (Wstat: 256 Tests: 6 Failed: 1)
>   Failed test:  6
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 9 tests but ran 6.
> 
> The actual errors are:
> t/26exe_array...
>  Dubious, test returned 2 (wstat 512, 0x200)
>  Failed 2/14 subtests
> t/30longpanic: sv_len_utf8 cache 10240 real 81920 for 1234
> t/31lob.DBD::Oracle::st execute failed: ORA-24813: cannot 
> send or receive an unsupported LOB (DBD ERROR: OCIStmtExecute) [for Statement 
> "BEGIN ? := DBMS_LOB.GETLENGTH( ? ); END;" with ParamValues: :p1=undef, 
> :p2=OCILobLocatorPtr=SCALAR(0x19cb018)] at t/31lob.t line 108.
> 
> Installing it anyway seems ok, but running:
> my $dbh = DBI->connect_cached('dbi:Oracle:sid',username,password,{
> RaiseError=> 1,
> PrintError=> 0,
> ShowErrorStatement=> 1,
> AutoCommit=> 0,
> ora_verbose=>6
> 
> })
> Produces:
> OCINlsEnvironmentVariableGet(871,0,93,0,2)=SUCCESS
> OCINlsEnvironmentVariableGet(871,0,94,0,2)=SUCCESS
> OCINlsEnvCreate(1b8c5d0,THREADED | 
> OBJECT,3,0,0,0,0,0,0,871,871)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5d8,OCI_HTYPE_ERROR,0,0)=SUCCESS
>charset id=871, name=UTF8, ncharset id=871, name=UTF8 (csid: utf8=871 
> al32utf8=873)
> OCIHandleAlloc(1c06220,1b8c5e0,OCI_HTYPE_SERVER,0,0)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5e8,OCI_HTYPE_SVCCTX,0,0)=SUCCESS
> OCIServerAttach(1c45608, 1c44e68, "sid", 3, mode=DEFAULT,0)=SUCCESS
> OCIAttrSet(1c44d90,OCI_HTYPE_SVCCTX,1c45608,0,6,1c44e68)=SUCCESS
> OCIHandleAlloc(1c06220,1b8c5f0,OCI_HTYPE_SESSION,0,0)=SUCCESS
> OCIAttrSet(1c81838,OCI_HTYPE_SESSION,1a1d348,8,22,1c44e68)=SUCCESS
> OCIAttrSet(1c81838,OCI_HTYPE_SESSION,1917d08,6,23,1c44e68)=SUCCESS
> OCISessionBegin(1c44d90,1c44e68,1c81838,1,mode=DEFAULT 0)=SUCCESS
> OCIAttrSet(1c44d90,OCI_HTYPE_SVCCTX,1c81838,0,7,1c44e68)=SUCCESS
> "DBI::db=HASH(0x1919710)" is not exported by the DBD::Oracle module
> Can't continue after import errors at ./demo.pl line 7
> BEGIN failed--compilation aborted at ./demo.pl line 15.
> OCITransRollback(1c44d90,1c44e68,mode=DEFAULT 0)=SUCCESS
> OCISessionEnd(1c44d90,1c44e68,1c81838,mode=DEFAULT 0)=SUCCESS
> OCIServerDetach(1c45608,1c44e68,mode=DEFAULT,0)=SUCCESS
> OCIHandleFree(1c81838,OCI_HTYPE_SESSION)=SUCCESS
> OCIHandleFree(1c45608,OCI_HTYPE_SERVER)=SUCCESS
> OCIHandleFree(1c44d90,OCI_HTYPE_SVCCTX)=SUCCESS
> OCIHandleFree(1c44e68,OCI_HTYPE_ERROR)=SUCCESS
> 
> Looking through the makefile and running ldd on the .so file it seems to have 
> only used the 64 bit oracle libraries
> Let me know if I can add anything.
> 
> Thanks
> Gordon.
> 
> 
> Napier University is the best modern university in Scotland* and number one 
> in Scotland for graduate employability**
> (*Guardian University Guide 2009)
> (**HESA 2008)
> 
> This message is intended for the addressee(s) only and should not be read, 
> copied or disclosed to anyone else outwith the University without the 
> permission of the sender.
> It is your responsibility to ensure that this message and any attachments are 
> scanned for viruses or other defects. Napier University does not accept 
> liability for any loss or damage which may result from this email or any 
> attachment, or for errors or omissions arising after it was sent. Email is 
> not a secure medium. Email entering the University's system is subject to 
> routine monitoring and filtering by the University.
> Napi

ANNOUNCE - Set::Relation versions 0.8.0 and 0.9.0 for Perl 5

2009-03-25 Thread Darren Duncan

All,

I am pleased to announce that Set::Relation (relational types and operators for
Perl) versions 0.8.0 and 0.9.0 for Perl 5 have been released on CPAN.

  http://search.cpan.org/dist/Set-Relation/

First, to briefly repeat the change information for last month's release 0.7.0
(from 0.6.0 which was the first initial-feature-complete release):
Set::Relation is now a role (or actually 2 roles, one immutable, one mutable),
so it is easier for user code to just say they accept any objects doing that
role, and the initial implementation was separated into another file called V1.
 It is now also easier for third parties to make distinct implementations if
they wish.  And yes, this role is in terms of an actual Moose role.

Now the main change in version 0.8.0 from version 0.7.0 is the addition of a
second bundled implementation of the Set::Relation role, called V2.
Feature-wise, V2 should have considerably better performance than V1 in general,
and especially for some use cases.  V2 also does strictly immutable objects
while V1 does mutable objects.  Design-wise, both V1 and V2 are similar in many
respects, including the use of a Perl Hash internally to represent each relation
tuple.  How they differ mainly is that V1 does eager tuple hashing and duplicate
elimination while V2 does lazy tuple hashing and duplicate elimination.  Another
feature change in 0.8.0 from 0.7.0 is that users have the option on some
Set::Relation method calls to say they accept less accuracy in results, so for
example they give permission for duplicate elimination to be skipped entirely,
and what they gain from this conceptually is an even greater speed increase.
Now the kind of operations where you would likely see the greatest speed
increase with V2 automatically, are for [new(), union(), insertion()] as they
are done with zero hashing or elimination; and to a lesser extent join() etc
since it only indexes the common attributes on the join; and optionally on
cardinality() and members extraction, as they also avoid all hashing/etc when
explicitly asked to, thereby the class sort-of doing multisets rather than sets
as normal.  In contrast with V2, operations like [intersection(), difference(),
deletion()] still incur indexing / duplicate elimination in order to make sure
all copies of a filtered-out tuple are eliminated.  Version 0.8.0 does not
introduce any major API changes or capability features.  Note that I recommend
V2 over V1 for actual use, where either would be useful; I don't consider them
on equal footing.

And the main change in version 0.9.0 from version 0.8.0 is the addition of
support for specifying candidate keys or (unique) key constraints on
Set::Relation objects at object creation time, and introspecting for candidate
keys on the objects after creation.  Version 0.9.0 was just a first draft of the
'keys' feature and it isn't very well integrated.  What is stated above is about
as far as it goes.  Still TODO is to actually exploit knowledge of keys to speed
up the relational operators, since you can do indexing or duplicate elimination
much less expensively if you know you only have to examine a subset of the
attributes' values.

On a related matter, today I updated
http://www.perlfoundation.org/perl5/index.cgi?gsoc_2009_projects to add a
student project idea to implement Perl 6 savvy relational types and operators,
starting with porting Set::Relation to Perl 6.  Now said port was something I
otherwise would have done within the next few months, and the Perl 5 module was
designed from day one that this would happen in mind, but I figured this was
something it would be nice to have a fresh outlook on, since someone else say a
student may come up with the functionality in much more idiomatic Perl 6 than I
would have.  And its not like any prerequisites they might need from me aren't
already done now; the existing Perl 5 version already illustrates the desired
features and behavior, which they are of course free to improve on.  Now in the
likely event that no student picks this up, I welcome input from you / the
community on how to do better than a straight port and provide better Perl 6
savvyness.

Thank you and have a good day. -- Darren Duncan