Thread: Re: setting local variable

Re: setting local variable

From
Elliott Prechter
Date:
I have a function which looks like this:

  ...
declare _object bigint;
begin
set _object = insert into object (object_type,name) values
('type1','test object');
insert into ref (object,refname) values (_object,'test object reference');
end;
...

However I get a syntax error on the line 'set _object = insert ....'

I searched through the docs but don't know what I'm doing wrong.

Thanks!
Elliott


Re: setting local variable

From
Raymond O'Donnell
Date:
On 23/04/2011 23:54, Elliott Prechter wrote:
> I have a function which looks like this:
>
> ...
> declare _object bigint;
> begin
> set _object = insert into object (object_type,name) values
> ('type1','test object');
> insert into ref (object,refname) values (_object,'test object reference');
> end;
> ...
>
> However I get a syntax error on the line 'set _object = insert ....'
>
> I searched through the docs but don't know what I'm doing wrong.

What language are you using?

Ray.

--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie

Re: setting local variable

From
Adrian Klaver
Date:
On Saturday, April 23, 2011 3:54:05 pm Elliott Prechter wrote:
> I have a function which looks like this:
>
>   ...
> declare _object bigint;
> begin
> set _object = insert into object (object_type,name) values
> ('type1','test object');
> insert into ref (object,refname) values (_object,'test object reference');
> end;
> ...
>
> However I get a syntax error on the line 'set _object = insert ....'
>
> I searched through the docs but don't know what I'm doing wrong.

What are you trying to set _object to, the id value of the inserted row?

>
> Thanks!
> Elliott

--
Adrian Klaver
adrian.klaver@gmail.com

Re: setting local variable

From
Tom Lane
Date:
Elliott Prechter <elliottp@privatefundmgt.com> writes:
> I have a function which looks like this:
>   ...
> declare _object bigint;
> begin
> set _object = insert into object (object_type,name) values
> ('type1','test object');
> insert into ref (object,refname) values (_object,'test object reference');
> end;
> ...

> However I get a syntax error on the line 'set _object = insert ....'

In plpgsql it's just "variable := value", no SET keyword.  However,
you've got more problems than that: INSERT doesn't return a value.
It's not at all clear what you expect that to do.

            regards, tom lane