From: | "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar> |
---|---|
To: | "'Arcel Labrada Batista'" <alabradab(at)uci(dot)cu>, 'Oswaldo Hernández' <listas(at)soft-com(dot)es> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org>, "'Eduardo Morras'" <emorras(at)s21sec(dot)com> |
Subject: | RE: ayuda con trigger que llama a un procedimiento |
Date: | 2010-01-27 16:42:33 |
Message-ID: | A8A2D0F7E5824EDAB7AE84AAD2BAE744@iptel.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> -----Mensaje original-----
> De: Arcel Labrada Batista
>
...
> begin
>
>
> create table public.tb_estudiante_"||NEW.id||() INHERITS
> (tb_estudiante);
>
> return new;
> end;
>
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> y el problema esta en la concatenación, me da un error que dice:
>
> ERROR: error de sintaxis en o cerca de «||» at character 30
> QUERY: create table "tb_estudiante_"|| $1 ||() INHERITS
> (tb_estudiante)
> CONTEXT: SQL statement in PL/PgSQL function
> "f_crear_tablas_replicas" near line 7
>
Para ejecutar SQL dinámico en plpgsql debes usar EXECUTE.
Ejemplo:
EXECUTE 'create table public.tb_estudiante_' || NEW.id || '() INHERITS
(tb_estudiante)';
Slds,
Fernando.
From | Date | Subject | |
---|---|---|---|
Next Message | German Gomez | 2010-01-27 18:21:59 | FW: |
Previous Message | Arcel Labrada Batista | 2010-01-27 16:25:30 | ayuda con trigger que llama a un procedimiento |