RE: PLpgSQL - Mailing list pgsql-sql

From Jeff Eckermann
Subject RE: PLpgSQL
Date
Msg-id 08CD1781F85AD4118E0800A0C9B8580B094B54@NEZU
Whole thread Raw
In response to PLpgSQL  (Dado Feigenblatt <dado@wildbrain.com>)
List pgsql-sql
You will need to use "EXECUTE" to create the sequence.  The docs on pl/pgsql
cover it: basically, "EXECUTE string" will cause that string to be executed
as a SQL statement.

> -----Original Message-----
> From:    Dado Feigenblatt [SMTP:dado@wildbrain.com]
> Sent:    Friday, July 20, 2001 2:26 PM
> To:    Pgsql-Sql
> Subject:    PLpgSQL
> 
> 3 questions:
> 
> 1. Can I use CREATE SEQUENCE inside a function?
> 2. I can create this function but I can't get it to run:
> 
> CREATE FUNCTION new_proj_pts_seq(int4)
> RETURNS text
> AS 'DECLARE
>         proj_ID alias for $1;
>         seq_name TEXT;
>     BEGIN
>         seq_name := ''proj_pts_'' || proj_ID;
>         create sequence seq_name;
>     END;
>     RETURNS seq_name;'
> LANGUAGE 'plpgsql';
> 
> When I do
>     SELECT new_proj_pts_seq(9000);
> I get:
>     ERROR:  parser: parse error at or near "$1"
> 
> The same happens if I assign $1 to proj_ID (instead of aliasing), or 
> just use $1 in the string concatenation.
> I always get the same message.
> 
> Considering that all the above is possible/fixable...
> 
> 3. On the statement 'create sequence seq_name;', will  'seq_name' be 
> evaluated properly?
> 
> Thanks.
> 
> 
> -- 
> Dado Feigenblatt                                 Wild Brain, Inc.   
> Technical Director                               (415) 553-8000 x???
> dado@wildbrain.com                               San Francisco, CA.
> 
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster


pgsql-sql by date:

Previous
From: "Chris Ruprecht"
Date:
Subject: Re: TODO List
Next
From: Tom Lane
Date:
Subject: Re: Get the tables names?