Re: ayuda con ejecucion de funcion

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: "Diego Ayala" <netdiego81(at)gmail(dot)com>
Cc: "Postgres Ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ayuda con ejecucion de funcion
Date: 2008-07-23 23:03:49
Message-ID: 95335e4e0807231603t4fd2d56fk46c114aa2b4850cc@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola de nuevo.
Supongo que la función la has creado en la base de datos destino, ¿no?
Porque dblink le manda sólo el texto.
Y entonces, mi duda es la misma: ¿para que necesitas la función?
Dentro de dblink_exec, o bien otra función de la familia dblink,
puedes usar directamente un insert, y ya no hay el problema.

Pero... si continúas deseando utilizar la función, revisa que la
tengas creada en
el host 192.168.192.199, dentro de la base de datos dncp-wf

Si la tienes creada, pasamos a ver el error en la llamada:

> PERFORM dblink_exec('conn_wf41','SELECT
> sige_db.f_insert_tbl_expedientewf('||exp||','
> ||anio||','''||obs||''','||tipo::smallint||','||des::smallint||','
> ||med::smallint||','||mod||','||'now()':: timestamp without time
> zone||','''||mail||''','||nen::smallint||',' ||ent::smallint||','
> ||uoc::smallint||',' ||suoc::smallint||',' ||uep::smallint||')' );

Fíjate en LA CADENA DE CARACTERES que construyes: no incluyes en esta
cadena los cast, sino que haces un cast antes de concatenar (con lo
que no sirve de nada).

Es decir, fíjate en la diferencia entre estos dos ejemplos:
postgres=# select 'texto '||3::smallint;
?column?
----------
texto 3
(1 row)

postgres=# select 'texto ' || 3 || '::smallint';
?column?
-------------------
texto 3::smallint
(1 row)

En la creación de tu cadena, debes incluir los '::smallint' y
similares entre comillas, para que se manden al host remoto como
textos.

Y para terminar, mi recomendación PERSONAL: NO uses la función y manda
el insert directamente. He visto en varios sitios, y esta lista es uno
de esos sitios, en donde se tiende a abusar del uso de las funciones,
que no sirven de mucho salvo para liar.

Saludos, y espero haber ayudado

--
Miguel Rodríguez Penabad

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2008-07-23 23:09:12 Re: Concatenar cadena texto con booleano
Previous Message Yoel Mc Lennan 2008-07-23 22:04:54 Concatenar cadena texto con booleano