Function PostgreSQL:调用自定义函数时出错

Function PostgreSQL:调用自定义函数时出错,function,postgresql,plpgsql,Function,Postgresql,Plpgsql,以下是在PostgreSQL 9.2中创建的函数 CREATE OR REPLACE FUNCTION getRows() RETURNS TABLE ( "Name" character varying ,"Address" text ,"Phone" text ,"Email" character varying ,"Tin" character varying ,"DL.No1, DL.No2" text

以下是在
PostgreSQL 9.2
中创建的函数

CREATE OR REPLACE FUNCTION getRows()
RETURNS TABLE (
        "Name" character varying
       ,"Address" text
       ,"Phone" text
       ,"Email" character varying
       ,"Tin" character varying
       ,"DL.No1, DL.No2" text
       ,"Area" character varying
) AS
$func$
BEGIN
       select  acname as "Name", coalesce(nullif(concat_ws(', ', nullif(add1, ''),  
       nullif(add2, '')), ''), 'NIL') "Address", coalesce(nullif(concat_ws(', ', 
       nullif(phoneoff, ''), nullif(mobile, '')), ''), 'NIL') "Phone",case when email 
       <>'' then email else 'NIL' end as "Email",case when email <>'' then tin else 
       'NIL' end as "Tin",case when dlno1 ||', '||dlno2=', ' then 'NIL' else dlno1 ||',  
       '||dlno2 end as "DL.No1, DL.No2",areaname as "Area" from gtab12   left  join 
      gtab47 using(areaid) where acgrcode  = '204'  order by areaname,"Name";
END
$func$  LANGUAGE plpgsql;

下面给出的是函数
getRow
中的select查询实际返回的内容。

要返回一组内容,需要使用return NEXT(一次返回一行)或return QUERY(返回一个查询产生的多行)

请参阅与返回值相关的部分

您的示例函数需要具有:

RETURN QUERY SELECT....;
RETURN;

注意需要第二次返回-这是必需的,因为在函数退出之前可能会有多个返回查询语句。

要返回一组内容,需要使用RETURN NEXT(一次返回一行)或RETURN QUERY(返回查询产生的多行)

请参阅与返回值相关的部分

您的示例函数需要具有:

RETURN QUERY SELECT....;
RETURN;

注意需要第二次返回-这是必需的,因为在函数退出之前可能会有多个返回查询语句。

要返回一组内容,需要使用RETURN NEXT(一次返回一行)或RETURN QUERY(返回查询产生的多行)

请参阅与返回值相关的部分

您的示例函数需要具有:

RETURN QUERY SELECT....;
RETURN;

注意需要第二次返回-这是必需的,因为在函数退出之前可能会有多个返回查询语句。

要返回一组内容,需要使用RETURN NEXT(一次返回一行)或RETURN QUERY(返回查询产生的多行)

请参阅与返回值相关的部分

您的示例函数需要具有:

RETURN QUERY SELECT....;
RETURN;

请注意需要第二次返回-这是必需的,因为在函数退出之前可能会有多个返回查询语句。

如果没有
INTO
子句,则在
plpgsql
函数中不能使用
SELECT
语句(必须改用)

你也忘了带东西


但是,如果您的函数如此简单,您可以使用普通(甚至是a)来代替。

plpgsql
函数中,如果没有
INTO
子句,就不能使用
SELECT
语句(您必须改用)

你也忘了带东西


但是,如果您的函数如此简单,您可以使用普通(甚至是a)来代替。

plpgsql
函数中,如果没有
INTO
子句,就不能使用
SELECT
语句(您必须改用)

你也忘了带东西


但是,如果您的函数如此简单,您可以使用普通(甚至是a)来代替。

plpgsql
函数中,如果没有
INTO
子句,就不能使用
SELECT
语句(您必须改用)

你也忘了带东西

但是,如果您的函数如此简单,那么可以使用普通函数(甚至是a)