被困2天:查询工具里运行简单的函数报错 query has no destination for result data

xxxswl 2010-05-06 04:44:46
求助:
自定义函数里就一句

begin
select * from "Mytable"
end;

返回集合 类型[character varying] 若返回[Mytable]类型报一样的错误

在查询工具里执行语句
select "returnCollection"()

报错 query has no destination for result data
...全文
5303 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxswl 2010-05-10
  • 打赏
  • 举报
回复
问题解决了 群里的朋友帮的忙

返回复合类型集合

RETURNS SETOF record

在函数 返回的地方 要加上

reutrn query select * from "MyTable";
rucypli 2010-05-07
  • 打赏
  • 举报
回复
begin
select * from MyFirstPGSQL;
end
xxxswl 2010-05-07
  • 打赏
  • 举报
回复
完整代码

CREATE OR REPLACE FUNCTION "returnCollection"() RETURNS SETOF character varying AS

$BODY$begin
select * from "MyFirstPGSQL";
end;$BODY$

LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
xxxswl 2010-05-07
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION getfoo() RETURNS SETOF record AS
$BODY$begin
select * from "MyFirstPGSQL";
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;

查询工具
select * from getfoo() as tt(id integer,myname character varying(50),pwd character varying(50));

错误
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 "getfoo" line 2 at SQL statement

真上火 怎么都弄不好
xxxswl 2010-05-06
  • 打赏
  • 举报
回复
如果把引号去了。
begin
select * from Mytable
end;

error: relation "Mytable" dose not exist
ACMAIN_CHM 2010-05-06
  • 打赏
  • 举报
回复
另外最把把你的 create function ..语句贴出来,这样别人可以直接调试
ACMAIN_CHM 2010-05-06
  • 打赏
  • 举报
回复
begin
select * from Mytable
end;


把引号去了。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧