2016-03-25 25 views
1

PostgreSQLに関数を書いていますが、変数を宣言することはできません。ここに関数があります。PostgreSQLで関数内に変数を宣言できません

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

$func$ LANGUAGE SQL; 

エラーメッセージ ERROR:で構文エラーまたはそれに近い "VARCHAR" SQL状態:42601 文字:66

答えて

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言語は、1行の単一ステートメントマクロに最適です。 PLpgSQLは、Oracleの埋め込みSQLを使用したPL/SQLに似た、古典的な母国語です。

+0

完璧、それは私の問題を解決しました。ありがとう.. – AAjit

関連する問題