Re: Rv: recorrer old

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Rv: recorrer old
Date: 2011-11-16 20:30:55
Message-ID: 1321475248-sup-6372@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Alejandro Carrillo's message of mié nov 16 17:15:11 -0300 2011:
> Es TG_TABLE_SCHEMA, sin embargo he tenido lios al tratar de incluir el schema en el insert, por favor revisen que pudo haber pasado:
>
> execute 'insert into ' || quote_ident(p_schema||'.'||p_tabla)::regclass
>         || ' SELECT * FROM populate_record(null::'|| quote_ident(p_schema||'.'||p_tabla)::regclass ||', $1)' using regrec;
>
> El error:
>
> NOTICE:  no existe la relación «public.clientesborradocopia»
>
> Y la bendita tabla si existe.

No, estás tratando de usar el nombre-con-esquema como si fuera solamente
el nombre. Debes aplicar quote_ident a cada parte separadamente. Creo
que esto debería funcionar:

execute 'insert into ' || (quote_ident(p_schema) ||'.'||quote_ident(p_tabla))::regclass

(mismo tratamiento a la siguiente línea), aunque honestamente en este
caso y dado que ya estás usando un cast a regclass yo usaría simplemente
el OID,

execute 'insert into ' || TG_RELID::regclass

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro Carrillo 2011-11-16 21:11:37 Re: Rv: recorrer old
Previous Message Carlos Agustín López Avila 2011-11-16 20:20:26 Re: Fwd: OT Desesperado