本文介绍了PostgreSQL的stynax错误创建函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在PostgreSQL中创建了一个函数,但是我收到了这个语法错误,并且我想出了什么可能是错误的......请协助。
I am creating a function in my PostgreSQL but I'm getting this syntax error and I ran out of ideas what could be wrong... Please assist.
CREATE OR REPLACE FUNCTION get_docName(IN p_docId_id bigint) RETURNS TABLE(name varchar) AS $BODY$ begin RETURN query SELECT name * FROM (documents) where id=p_docId end; $BODY$ LANGUAGE sql STABLE; ALTER FUNCTION public.get_documents(IN bigint) OWNER TO postgres;错误:
Errors:
ERROR: SyntaxError at „RETURN" LINE 8: RETURN query SELECT * FROM ( ^ ********** Error ********** ERROR: SyntaxError at „RETURN" SQL state: 42601 Character: 173推荐答案
您试图在SQL函数中使用PL / PgSQL语法,也忘记了 SELECT 。
You're trying to use PL/PgSQL syntax in an SQL function. You also forgot the semicolon on the end of the SELECT.
声明 LANGUAGE plpgsql 。该函数是如此微不足道的,只需将其替换为有效的sql函数语法即可:
Declare it LANGUAGE plpgsql. Or, as the function is so trivial, just turn it into valid sql function syntax by replacing the body with:
$BODY$ SELECT name * FROM (documents) where id=p_docId; $BODY$虽然它自己的SQL语句也是无效的 - name * ?
though the SQL statement its self is also invalid - name *?
更多推荐
PostgreSQL的stynax错误创建函数
发布评论