Thread: Error: Using Large Objects by perl5-Interface

Error: Using Large Objects by perl5-Interface

From
"Hans Reichenecker"
Date:
I want to use Large Objects in PostgreSQL, source is a Perl-Script. But in
unchained mode it won´t work. What else should I do to change in chained
mode ?

    Users-Guide: "By default, Postgres executes transactions in
unchained mode (also known as "autocommit" in other database systems)."

Source:
      $result      = $conn->exec("BEGIN");
      $stoeroid    = $conn->lo_creat( 'PGRES_INV_ARCHIVE');
      $stoeroidlen = $conn->lo_write( $stoeroid, $Meldung, length(
$Meldung));
      $ERRor       = $conn->lo_close( $stoeroid);
      $result      = $conn->exec("END");

results in Debug-Backend
    query: BEGIN
    ProcessUtility: BEGIN
    CommitTransactionCommand
    StartTransactionCommand
    query: select proname, oid from pg_proc where proname = 'lo_open' or
proname = 'lo_close' or proname = 'lo_creat' or proname = 'lo_unlink'
    or proname = 'lo_lseek' or proname = 'lo_tell' or proname = 'loread'
or proname = 'lowrite'
    ProcessQuery
    CommitTransactionCommand
    StartTransactionCommand
    CommitTransactionCommand
    StartTransactionCommand
    ERROR:  lo_write: large obj descriptor (34850) out of range
    AbortCurrentTransaction
    StartTransactionCommand
    ERROR:  lo_close: large obj descriptor (34850) out of range
    AbortCurrentTransaction
    StartTransactionCommand
    query: END
    ProcessUtility: END
    CommitTransactionCommand

Thanks for help.

OTTO WÖHR GmbH         Tel: 07044 46-0
Hans Reichenecker      Tel: 07044 46193
Leiter DVO
Ölgrabenstraße 14      Fax: 07044 46266
71292 Friolzheim       http:www.woehr.de


Attachment

Re: [GENERAL] Error: Using Large Objects by perl5-Interface

From
Date:
in your perl script:
$dbh->{AutoCommit}=0;

you can get more info by perldoc DBI and perldoc DBD::Pg



On Thu, 9 Dec 1999, Hans Reichenecker wrote:

> I want to use Large Objects in PostgreSQL, source is a Perl-Script. But in
> unchained mode it won�t work. What else should I do to change in chained
> mode ?
>
>     Users-Guide: "By default, Postgres executes transactions in
> unchained mode (also known as "autocommit" in other database systems)."
>
> Source:
>       $result      = $conn->exec("BEGIN");
>       $stoeroid    = $conn->lo_creat( 'PGRES_INV_ARCHIVE');
>       $stoeroidlen = $conn->lo_write( $stoeroid, $Meldung, length(
> $Meldung));
>       $ERRor       = $conn->lo_close( $stoeroid);
>       $result      = $conn->exec("END");
>
> results in Debug-Backend
>     query: BEGIN
>     ProcessUtility: BEGIN
>     CommitTransactionCommand
>     StartTransactionCommand
>     query: select proname, oid from pg_proc where proname = 'lo_open' or
> proname = 'lo_close' or proname = 'lo_creat' or proname = 'lo_unlink'
>     or proname = 'lo_lseek' or proname = 'lo_tell' or proname = 'loread'
> or proname = 'lowrite'
>     ProcessQuery
>     CommitTransactionCommand
>     StartTransactionCommand
>     CommitTransactionCommand
>     StartTransactionCommand
>     ERROR:  lo_write: large obj descriptor (34850) out of range
>     AbortCurrentTransaction
>     StartTransactionCommand
>     ERROR:  lo_close: large obj descriptor (34850) out of range
>     AbortCurrentTransaction
>     StartTransactionCommand
>     query: END
>     ProcessUtility: END
>     CommitTransactionCommand
>
> Thanks for help.
>
> OTTO W�HR GmbH         Tel: 07044 46-0
> Hans Reichenecker      Tel: 07044 46193
> Leiter DVO
> �lgrabenstra�e 14      Fax: 07044 46266
> 71292 Friolzheim       http:www.woehr.de
>
>