2013-02-19 54 views
2

我有一個非常簡單的PL/pgSQL的腳本:PL/pgSQL的語法錯誤

 declare x varchar(100); 

當我運行它,我得到一個消息:

[WARNING ] declare x varchar(100) 
     ERROR: syntax error at or near "varchar" 
     LINE 1: declare x varchar(100) 
         ^

我真不明白什麼是錯的有了這個。

+0

顯示整個創建功能腳本 – 2013-02-19 17:04:19

+0

這是整個腳本。 – user1544745 2013-02-19 17:05:47

+2

您必須將其包裝在[創建函數](http://www.postgresql.org/docs/current/interactive/sql-createfunction.html)命令中。 – 2013-02-19 17:12:05

回答

9

你可以在PostgreSQL的函數體內使用程序語句只有

CREATE OR REPLACE FUNCTION foo() 
RETURNS int AS 
$$ -- here start procedural part 
    DECLARE x int; 
    BEGIN 
    x := 10; 
    RETURN x; 
    END; 
$$ -- here finish procedural part 
LANGUAGE plpgsql; -- language specification 

或在臨時功能(匿名塊)

DO $$ 
DECLARE x int; 
BEGIN 
    x := 10; 
    RAISE NOTICE '>>>%<<<', x; 
END; 
$$; 

是不可能使用過程語句像T-SQL SQL語句。

0

使用爲例

DO $$ 
Declare 
    test varchar; 
begin 
    test := 'teste'; 
    if (char_length(test) > 0) then 
     RAISE NOTICE '>>>%<<<', test; 
    end if; 
end; 
$$;