Unfortunately, in plsql
you only can do DML(select/update/insert) instead of DDL(create/grant..).
i.e. you cannot create a table in plsql.
Jie LIANG
St. Bernard Software
10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873
jliang@ipinc.com
www.stbernard.com
www.ipinc.com
On Sat, 3 Mar 2001, Gerald Gutierrez wrote:
>
> I don't seem to be able to create tables (persistent or temporary) from
> within a PL/PGSQL function. With the following script, I can create the
> function fine:
>
> CREATE FUNCTION tst()
> RETURNS INTEGER
> AS '
> BEGIN
> CREATE TABLE ttt(a int);
> RETURN 0;
> END;
> '
> LANGUAGE 'plpgsql';
>
> .... but when I execute it , I get the following error. The error happens
> regardless of whether I use CREATE TABLE or CREATE TEMPORARY TABLE:
>
> t1=> \i tst.sql
> DROP
> CREATE
> t1=> select tst();
> ERROR: copyObject: don't know how to copy 611
>
> Is it somehow wrong to create tables from within a PL/PGSQL function?
>
>
> Incidently, is it possible to generate a guaranteed unique table name while
> creating tables, much like some UNICES' ability to generate guaranteed
> unique file names for tempoary files?
>
> Thanks.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>