RE: How to do a savepoint in DBI/DBD::Oracle?

  • From: Brian Pardy <brianpa@xxxxxxxxxx>
  • To: "Mark.Bobak@xxxxxxxxxxxx" <Mark.Bobak@xxxxxxxxxxxx>
  • Date: Thu, 26 Jan 2012 21:01:06 +0000

Unfortunately a prepared statement for the savepoint won't work:

DBD::Oracle::st execute failed: ORA-03001: unimplemented feature (DBD ERROR: 
OCIStmtExecute) [for Statement "SAVEPOINT"] at ./savepoint2.pl line 32.

DBIx::Connector seems to use direct OCI calls to perform the savepoint (I 
haven't checked the source).  DBD::Oracle just uses OCIStmtExecute for 
everything run through $dbh->do (the first thing I tried) and $dbh->prepare.  
The OCI call to create a savepoint currently isn't implemented by DBD::Oracle.

-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Bobak, Mark
Sent: Thursday, January 26, 2012 3:50 PM
To: Radoulov, Dimitre
Cc: 'oracle-l@xxxxxxxxxxxxx'
Subject: RE: How to do a savepoint in DBI/DBD::Oracle?

Hi Dimitre,

Shortly after I asked my question on the list, I discovered DBIx::Connector.  

Our Perl programmers didn't like the idea, due to the extra layer it adds to 
transaction management.

There's also been some discussion of simply putting "savepoint" in a prepared 
statement....?

Nothing tested yet, we're still investigating.  If anything I say here makes 
you think I'm lacking a clue, that would be because, as far as Perl goes, I am 
pretty clueless....  :-)

Thanks,

-Mark

-----Original Message-----
From: Radoulov, Dimitre [mailto:cichomitiko@xxxxxxxxx] 
Sent: Thursday, January 26, 2012 3:43 PM
To: Bobak, Mark
Cc: 'oracle-l@xxxxxxxxxxxxx'
Subject: Re: How to do a savepoint in DBI/DBD::Oracle?

On 26/01/2012 19:27, Bobak, Mark wrote:
> Hi all,
> Any Perl hackers/mongers out there?
>
> Is there a way to do a savepoint natively in DBI/DBD::Oracle?
>

Hi Mark,
I believe you'll need to install an additional Perl modules for that (I hope 
that's an option in your case):

DBIx::Connector::Driver::Oracle

Name

DBIx::Connector::Driver::Oracle - Oracle-specific connection interface 
Description

This subclass of DBIx::Connector::Driver provides Oracle-specific 
implementations of the following methods:

ping
savepoint
release
rollback_to



Regards
Dimitre




--
//www.freelists.org/webpage/oracle-l


--
//www.freelists.org/webpage/oracle-l


Other related posts: