从 PostgreSQL 函数返回 table 时如何删除或转义双引号

How to remove or escape the double quotes while returning table from PostgreSQL function

你好,我有一个 PostgreSQL 函数 returns table


-- Function: stloadstoryview(integer)

-- DROP FUNCTION stloadstoryview(integer);

CREATE OR REPLACE FUNCTION stloadstoryview(IN luserid integer)
  RETURNS TABLE(stid integer, stname text, stowner character varying, stbegin date, stend date) AS
$BODY$
Begin

    Return query
    Select dbStory.stID, dbStory.stName, (Select usName from dbUser where usID = dbStory.stOwner):: Varchar(30), dbStory.stBegin, dbStory.stEnd from dbStory 
        where dbStory.stID in (Select dbStoryRights.stID from dbStoryRights where usID = lUserID)
        Order by dbStory.stName;
End;
$BODY$
  LANGUAGE plpgsql STABLE
  COST 100
  ROWS 1000;
ALTER FUNCTION stloadstoryview(integer)
  OWNER TO postgres;

这将 return


"(2,"Story 201",admin,2015-01-01,2015-06-30)"
"(1,Story101,admin,2015-03-01,2015-04-30)"

第一行 return "Story 201" 带引号,第二行 "Story101" 不带引号.....

如果值之间的空格被 returning 引用,那么如何在值中没有 qoutes.Having 空格的情况下获取该列中的所有值。

看起来您正在直接查询函数,该函数将 return 包含从函数 return 编辑的所有值的单个列。

尝试从函数中选择字段:

SELECT *
FROM stloadstoryview(1);

这将 return 数据分列:

"stid", "stname", "stowner", "stbegin", "stend"
2, Story 201, admin, 2015-01-01, 2015-06-30
1, Story101, admin, 2015-03-01, 2015-04-30