Passing a null value in pl/pgsql
От | Mike Finn |
---|---|
Тема | Passing a null value in pl/pgsql |
Дата | |
Msg-id | a1vdac$6dj$1@news.tht.net обсуждение исходный текст |
Ответы |
Re: Passing a null value in pl/pgsql
Re: Passing a null value in pl/pgsql |
Список | pgsql-general |
I have two stored procedures and one calls the other. If the caller passes a null for one of the parameters (the fourth) a delete query in the called function will not work. If I pass a null as the 4th parameter (_seqSalesOrderLine) the delete query below will not match any records, and my business rule fails. If I temporarily (for testing only) change the asterisked line to read and seqSalesOrderLine = null the query works as I would expect. Am I missing something (please tell me) or is this a bug when passing in a null value? Thanks for any help, Mike. Bits of called function (asterisks mark important lines) =========================================================================== create function salesOrderTax_apply(int8,int8, text,int8,float8, int8,text) returns integer as ' declare ... * _seqSalesOrderLine alias for $4; ... begin ... delete from salesOrderTax where seqSalesOrder = soRec.seqSalesOrder and codeSalesOrderTax = _codeSalesOrderTax * and seqSalesOrderLine = _seqSalesOrderLine ; ... return null; --bogus return value end; ' language 'plpgsql'; Bits of calling function (asterisks mark important lines) =========================================================================== create function salesOrderControl_freightTax(int8, int8,text) returns integer as ' declare ... _seqTaxSchedule int8; ... begin ... -- get the appropriate tax schedule select seqTaxSchedule into _seqTaxSchedule from carrier where name = soRec.carrier_name ; ... perform salesOrderTax_apply(soRec.seqSalesOrder, _seqTaxSchedule, * ''Freight'', null, socRec.totalFreight, _txSeq, _txUser ); return null; --bogus return value end; ' language 'plpgsql'; ========================================= Mike Finn mike.finn@tacticalExecutive.com
В списке pgsql-general по дате отправления: