Обсуждение: question on plpgsql block

Поиск
Список
Период
Сортировка

question on plpgsql block

От
Karthikeyan Sundaram
Дата:
Hi Gurus,
 
    I tried a plpgsql block from the php.
 
    example
 
    a='begin
      insert into table a values (....);
      insert into table b values (....)
     insert into table c values (...)
     select into p_var ... from table where condtion
     update a set column = <new value> where condition;
    commit;
    end;';
   
    I works fine when I call this block from php, whereas, I tried to copy the same value from the command line prompt or PGadmin GUI utility.  Then it says "ERROR:  current transaction is aborted, commands ignored until end of transaction block"
 
  Why?
 
   Did we need to do any special step up to execute a block or blocks won't execue from command line mode? Please advise.
 
Regards
skarthi
 
 
 


Your friends are close to you.  Keep them that way.

Re: question on plpgsql block

От
"A. Kretschmer"
Дата:
am  Thu, dem 12.04.2007, um 15:44:19 -0700 mailte Karthikeyan Sundaram folgendes:
> Hi Gurus,
>  
>     I tried a plpgsql block from the php.
>  
>     example
>  
>     a='begin
>       insert into table a values (....);
>       insert into table b values (....)
>      insert into table c values (...)
>      select into p_var ... from table where condtion
>      update a set column = <new value> where condition;
>     commit;
>     end;';
>    
>     I works fine when I call this block from php, whereas, I tried to copy the
> same value from the command line prompt or PGadmin GUI utility.  Then it says
> "ERROR:  current transaction is aborted, commands ignored until end of
> transaction block"
>  
>   Why?

My guess:

PHP treat each line separately and sends line by line to the server and
adds the missing ';' if necessary.

If you send this from the GUI the server received one big command with
syntax-errors, because the missing ';' after some commands.


Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net