第一次用这个数据库,装的是8.4版的,用自带的工具pgadmin创建函数总报错,下面代码是工具自动生成的,
CREATE FUNCTION wdtest() RETURNS integer AS
$BODY$begin
return 1;
end;$BODY$
LANGUAGE 'sql' VOLATILE;
ALTER FUNCTION wdtest() OWNER TO postgres;错误提示:
发生一个错误;
ERROR: syntax error at or near "return"
LINE 3: return 1;

解决方案 »

  1.   

    CREATE FUNCTION wdtest() RETURNS integer AS $$
    begin
    return 1;
    end;
    $$ LANGUAGE plpgsql
      

  2.   

    qw=# CREATE FUNCTION wdtest() RETURNS integer AS $$
    qw$# begin
    qw$# return 1;
    qw$# end;
    qw$# $$ LANGUAGE plpgsql;
    CREATE FUNCTION
      

  3.   

    我是不是少装什么东西了?我没有plpgsql这个LANGUAGE
      

  4.   

    CREATE FUNCTION wdtest() RETURNS integer AS $$
    begin
    return 1;
    end;
    $$ LANGUAGE plpgsql;在命令行下输入试试
      

  5.   

    试了,一样的问题,改成
    CREATE FUNCTION wdtest() RETURNS integer AS $$
    'select 1';
    $$ LANGUAGE sql;
    就建上了。现在问题是怎么测试我的函数
      

  6.   

    手册中就有例子啊。 下面就是手册中的例子CREATE FUNCTION dup(in int, out f1 int, out f2 text)
        AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$
        LANGUAGE SQL;SELECT * FROM dup(42);
    CREATE TYPE dup_result AS (f1 int, f2 text);CREATE FUNCTION dup(int) RETURNS dup_result
        AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$
        LANGUAGE SQL;SELECT * FROM dup(42);
      

  7.   

    我想写成1楼那样的sql语句,应该怎么办呢?例子中的写法看到了,不太会用
      

  8.   

    怎么能添加上plpgsql这个语言,我现在的数据库中没有
      

  9.   

    终于加上了,说一下加的过程吧
    打开SQL_Shell
    Server[localhost]:输入你的主机,不输入默认是本机
    Database[postgres]:你的数据库名称
    Port[5432]:端口
    Username[postgres]:登陆用户
    登陆成功后,输入CREATE LANGUAGE ‘plpgsql’ HANDLER plpgsql_call_handler在pgAdmin中就可以选plpgsql了,如果之前打开了pgAdmin,要重启一下
    命令在下面网址打的
    http://blog.donews.com/dcgame/archive/2009/02/27/1472173.aspx谢谢楼上几位的帮忙了,结贴了