Re: Use "CREATE USER" in plpgsql function
От | Igor Neyman |
---|---|
Тема | Re: Use "CREATE USER" in plpgsql function |
Дата | |
Msg-id | F4C27E77F7A33E4CA98C19A9DC6722A206827C5F@EXCHANGE.corp.perceptron.com обсуждение исходный текст |
Ответ на | Use "CREATE USER" in plpgsql function (Tatarnikov Alexander <cankrus@gmail.com>) |
Ответы |
Re: Use "CREATE USER" in plpgsql function
|
Список | pgsql-sql |
> -----Original Message----- > From: Tatarnikov Alexander [mailto:cankrus@gmail.com] > Sent: Wednesday, September 15, 2010 12:05 AM > To: pgsql-sql@postgresql.org > Subject: Use "CREATE USER" in plpgsql function > > Hello! > > I have function wich check user credentials and if test > passed function must create new user with generated username > and password. > > Language is plpgsql. > > For example: > > .... > DECLARE creds RECORD; > ... > SELECT * INTO creds FROM ... > > creds is Record with fields userName(VARCHAR) and > userPassword(VARCHAR) > > so when i use CREATE USER creds."userName" WITH PASSWORD > creds."userPassword" > > i get an error, because creds."userName" is VARCHAR and thus > when function runs it will be look like this: > CREATE USER 'user_1' > but right command is > "CREATE USER user_1" OR " CREATE USER "user_1" " > > so question is how to "unembrace" this parameter (i mean > creds."userName")? > > Thanks > -- > ------ > Alexander > It is called "dynamic" sql: EXECUTE 'CREATE USER creds.' || userName || ' WITH PASSWORD creds.' || userPassword; Read about "dynamic" sql in PG docs: http://www.postgresql.org/docs/8.4/interactive/plpgsql-statements.html Specifically: "38.5.4. Executing Dynamic Commands" Regards, Igor Neyman
В списке pgsql-sql по дате отправления: