Re[2]: [pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista con dblink

From: Laura Martinelli <lmartinelli(at)mail(dot)unlu(dot)edu(dot)ar>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Laura Martinelli <lmartinelli(at)unlu(dot)edu(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re[2]: [pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista con dblink
Date: 2008-07-11 15:37:46
Message-ID: 32717151.20080711123746@mail.unlu.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Con fecha Viernes, 11 de Julio de 2008, 11:54:51 a.m., escribió:

AH> Laura Martinelli escribió:
>>
>>
>> Con fecha Viernes, 11 de Julio de 2008, 11:34:12 a.m., escribió:
>>
>> AH> Laura Martinelli escribió:
>>
>> >> pero cuando la quiero ejecutar
>> >>
>> >> SELECT dblink_db1_db2();
>> >>
>> >> me da el siguiente error:
>> >>
>> >> Eror: select query has no destination for result data
>> >> Hint: if you want to discard the results, use PERFORM instead.
>> >> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
>> >>
>> >> si pruebo con PERFORM dblink_db1_db2();
>>
>> AH> Tienes que cambiar a PERFORM el dblink_connect().
>>
>> Alvaro vos decís que dentro de la función escriba:
>>
>> PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');

AH> Si.

>> lo hice y despues llamo a la función con select y con perform y me
>> sigue dando los mismos errores que antes para ambos casos.

AH> PERFORM es una orden PL/pgSQL, no SQL. La diferencia es que el primero
AH> se usa dentro de las funciones en ese lenguaje, mientras que el segundo
AH> se usa externamente (por ejemplo cuando invocas una funcion en psql).
AH> Es importante estar consciente de la diferencia. Por ejemplo no tiene
AH> sentido intentar usar PERFORM para invocar tu nueva funcion.

AH> Te sugiero que hagas el cambio dentro de la funcion, luego invoques la
AH> funcion con SELECT, y muestres el nuevo mensaje de error (necesariamente
AH> debe ser distinto del error original).

Modifiqué la función cambiando el SELECT dblink_connect() por PERFORM

Y me dio el siguiente mensaje similar al anterior pero en la línea 6 y
no en la 2 como antes:

Eror: select query has no destination for result data
Hint: if you want to discard the results, use PERFORM instead.
Context: Pl/pgSQl function "dblink_db1_db2" line 6 at SQL statement

(Todo esto lo estoy haciendo desde el psql)
Saludos,
Laura
lmartinelli(at)mail(dot)unlu(dot)edu(dot)ar

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-07-11 15:48:31 Re: Re[2]: Ejecutar una función que crea una vista con dblink
Previous Message Oscar Argueta 2008-07-11 15:16:13 pg_dump y pg_restore