2011-11-11 67 views
0

我有這個功能被創建,但變量view_size被視爲列。爲什麼這個變量正在像一個列一樣對待?

我得到一個錯誤,指出column view_size don't exists.

爲什麼?

如果我改變的背景下,它的工作原理(例如:只做一個查詢,被當作一個變量)。

CREATE OR REPLACE FUNCTION create_view(view_size INTEGER) RETURNS VOID 
AS $$ 
BEGIN 
    CREATE VIEW token_relation 
    AS 
    SELECT * FROM textblockhastoken  
    ORDER BY textblockid, sentence, position 
    LIMIT view_size; 
END 
$$ 
LANGUAGE plpgsql; 
+0

變量我想必須像聲明:聲明@view_size詮釋 – tmjam

+1

那是什麼都沒有做與變量。 DDL語句CREATE VIEW不包含變量。你必須給它一個文本。這就是爲什麼@ aingram的答案可以解決這個問題。 –

回答

2

試試這個:

CREATE OR REPLACE FUNCTION create_view(view_size INTEGER) RETURNS VOID 
AS $$ 
BEGIN 
    EXECUTE 'CREATE VIEW token_relation 
    AS 
    SELECT * FROM textblockhastoken 
    ORDER BY textblockid, sentence, position 
    LIMIT ' || view_size; 
END 
$$ 
LANGUAGE plpgsql; 
相關問題