Почему переменная обрабатывается как столбец? - PullRequest
0 голосов
/ 11 ноября 2011

Мне нужно создать эту функцию, но переменная 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;

1 Ответ

2 голосов
/ 11 ноября 2011

Попробуйте вместо этого:

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;
...