Postgres: Использование имен переменных функции в функции pgsql - PullRequest
2 голосов
/ 19 марта 2010

Я написал функцию pgsql в соответствии с тем, что показано ниже. Как мне избавиться от $ 1, $ 2 и т. Д. И заменить их реальными именами аргументов, чтобы сделать код функции более читабельным?

Привет

Peter

CREATE OR REPLACE FUNCTION InsertUser (
    UserID UUID,
    FirstName CHAR(10),
    Surname VARCHAR(75),
    Email VARCHAR(75)
)
RETURNS void
AS
$$
INSERT INTO "User" (userid,firstname,surname,email)
VALUES ($1,$2,$3,$4)
$$
LANGUAGE SQL;

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Вы должны объявить это, прежде чем использовать его в области объявления. Для примера:

DECLARE   
    v_UserID alias for $1;
    v_FirstName alias for $2;
    v_Surname alias for $3;
    v_Email alias for $4;
BEGIN
$$
END
1 голос
/ 19 марта 2010

Попробуйте это

    CREATE or replace FUNCTION delhi(nam varchar, mm numeric , nn numeric  ) RETURNS integer
    AS $$
        begin
        insert into exe ( name , m1 ,m2 )  values ( nam, mm , nn );
-- see here column name is not like function argument name , so that it wont say error
           return 1;
    end ;
    $$
    LANGUAGE plpgsql;

Вызов функции:

select delhi ( 'first value', 2,3 ) ; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...