错误:查询没有结果数据的目标需要返回float

时间:2015-07-03 11:23:09

标签: postgresql-9.2

  

我想得到一个点的M坐标类型,并使用ST_M和ST_line_interpolate_point等方法,我可以通过SQL得到正确的结果。现在我想把它放到pl / pgsql函数中,它总是有错误,请帮忙!谢谢!

select point_to_m1(80,0,0) from testo;
  

这个函数不存在错误,但是当我使用这个函数时,它有错误。

ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead.CONTEXT: PL/pgSQL function point_to_m1(double precision,double precision,integer) line 5 at SQL statementter code here

  

错误是:

Gen<T>
  

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题在于这一行: select testo.geom from testo where lineid=z;

这是一个标准的select语句,它实际上并没有告诉Postgresql 存储结果在任何变量中 - 或者在Postgresql的话中,没有目的地为了它。

这也意味着在下一行,您尝试使用变量geom时,它仍然是空的。

试试这个:

select geom INTO geom from testo where lineid=z;

这里,第一个geom是字段名称,INTO geom告诉Postgresql将结果存储在您之前声明的变量geom中。

为清楚起见,您可能希望重命名变量,因为变量名称与字段相同看起来有点令人困惑。

这是参考页面:http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-SELECT-INTO