首页 文章

无法在PostgreSQL上声明函数内部的变量

提问于
浏览
1

我在PostgreSQL中编写函数,但它不允许我在其中声明变量 . 这是功能 .

CREATE FUNCTION clean_emp() RETURNS void AS 
$func$
DECLARE cnt varchar;

$func$ LANGUAGE SQL;

错误消息错误:“varchar”或其附近的语法错误SQL状态:42601字符:66

1 回答

  • 2

    这并不奇怪 . 语言SQL不支持变量 . 你必须使用语言plpgsql .

    CREATE OR REPLACE FUNCTION clean_emp()
    RETURNS void AS $$
    DECLARE cnt varchar;
    BEGIN
    END;
    $$ LANGUAGE plpgsql;
    

    请参阅文档http://www.postgresql.org/docs/current/static/plpgsql.html中的更多内容 .

    PostgreSQL有更多用于编写函数的语言 . SQL语言非常适合一行单语句宏 . PLpgSQL是一种经典的本地语言,类似于带有嵌入式SQL的Oracle PL / SQL .

相关问题