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)