Re: Calling function from VFP changes character field to Memo
От | Ron |
---|---|
Тема | Re: Calling function from VFP changes character field to Memo |
Дата | |
Msg-id | 81af1ec5-de31-03c6-96c4-fd70f12297a8@gmail.com обсуждение исходный текст |
Ответ на | Re: Calling function from VFP changes character field to Memo (Frank Cazabon <frank.cazabon@gmail.com>) |
Ответы |
Re: Calling function from VFP changes character field to Memo
|
Список | pgsql-general |
On 11/15/22 12:54, Frank Cazabon wrote: > > On 15/11/2022 2:44 pm, Tom Lane wrote: >> Frank Cazabon <frank.cazabon@gmail.com> writes: >>> If however I have a function defined like this >>> CREATE OR REPLACE FUNCTION public.testfunction( >>> ) >>> RETURNS TABLE >>> ( >>> Firstname character(30) >>> ) >>> LANGUAGE 'plpgsql' >>> AS $BODY$ >>> BEGIN >>> RETURN QUERY SELECT p.cFirstName FROM patients p; >>> END; >>> $BODY$; >>> And I call: >>> SELECT * FROM public.testFunction(); >>> Then FirstName returns as a Memo field (similar to a Text field). >> This is mostly about whatever software stack you're using on the >> client side --- Memo is certainly not something Postgres knows about. >> >>> Any idea what I need to do to get it to return the character(30) type? >> There's no chance of getting back the "30" part with this structure, >> because function signatures do not carry length restrictions. >> What I expect is happening is that you get firstname as an >> unspecified-length "character" type, and something on the client >> side is deciding to cope with that by calling it "Memo" instead. >> >> You could perhaps work around that by defining a named composite >> type: >> >> create type testfunction_result as (firstname character(30), ...); >> >> create function testfunction() returns setof testfunction_result as ... >> >> regards, tom lane > Thanks, so I could define the function like this - removed the (30): > > CREATE OR REPLACE FUNCTION public.testfunction( > ) > RETURNS TABLE > ( > Firstname character > ) > LANGUAGE 'plpgsql' > > I'll try the type definition and see if that helps. I think you should try the original function in psql. That will delineate Postgresql from framework. -- Angular momentum makes the world go 'round.
В списке pgsql-general по дате отправления: