Re: create function : change name of input parameter
От | Adrian Klaver |
---|---|
Тема | Re: create function : change name of input parameter |
Дата | |
Msg-id | 53F4A533.9030108@aklaver.com обсуждение исходный текст |
Ответ на | create function : change name of input parameter (Lori Corbani <Lori.Corbani@jax.org>) |
Ответы |
Re: create function : change name of input parameter
Re: create function : change name of input parameter |
Список | pgsql-general |
On 08/20/2014 06:25 AM, Lori Corbani wrote: > Using Postgres Version 9.0.4: > > We are migrating our Sybase stored procedures to Postgres and need to be > able to drop/replace the SPs, making needed changes to input parameters > to fix issues/differences between Sybase and Postgres. > > However, we keep getting this error when we drop/replace the PG/SP: Are you actually doing DROP and then CREATE OR REPLACE FUNCTION or just doing CREATE OR REPLACE FUNCTION ? The first case will work, the second will not: test=> CREATE FUNCTION sales_tax(subtotal real, OUT tax real) AS $$ test$> BEGIN test$> tax := subtotal * 0.06; test$> END; test$> $$ LANGUAGE plpgsql; CREATE FUNCTION test=> CREATE OR REPLACE FUNCTION public.sales_tax(stotal real, OUT tax real) RETURNS real LANGUAGE plpgsql AS $function$ BEGIN tax := subtotal * 0.06; END; $function$ ERROR: cannot change name of input parameter "subtotal" HINT: Use DROP FUNCTION sales_tax(real) first. test=> drop function sales_tax(real) ; DROP FUNCTION test=> CREATE OR REPLACE FUNCTION public.sales_tax(stotal real, OUT tax real) RETURNS real LANGUAGE plpgsql AS $function$ BEGIN tax := subtotal * 0.06; END; $function$ ; CREATE FUNCTION > > ‘ERROR : cannot change name of input parameter’ > > The ‘create function’ documentation states: > > ‘You cannot change the name already assigned to any input parameter > (although you can add names to parameters that had none before).’ > > Other than a complete restore of the database from a dump that does > **not** contain the original SP…is there any other way to override this > constraint? > > This makes debugging **extremely** difficult. If you don’t have your > input parameters completely correct the first time…you’re hosed. > > Many thanks. > > Lori > > The information in this email, including attachments, may be > confidential and is intended solely for the addressee(s). If you believe > you received this email by mistake, please notify the sender by return > email as soon as possible. > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: