Re: BUG #2847: Bug with IN statement

Поиск
Список
Период
Сортировка
От Gurjeet Singh
Тема Re: BUG #2847: Bug with IN statement
Дата
Msg-id 65937bea0612220003p5134e13fhe5e733adb41b7b91@mail.gmail.com
обсуждение исходный текст
Ответ на BUG #2847: Bug with IN statement  ("Sandip" <sandip@singapore.com>)
Список pgsql-bugs
On 12/21/06, Sandip <sandip@singapore.com> wrote:
>
> CREATE OR REPLACE FUNCTION sp_get_phase(character varying, character
> varying, character varying)
>   RETURNS ret_dv_sp_get_phase AS
> $BODY$
> SELECT          BOOK_NO, USER_ID, COMPANY_ID, PHASE, UPDATE_USER_ID,
> UPDATE_DATE,
>                       AddInfo1, AddInfo2
> FROM            T_PHASE
> WHERE           (USER_ID = $1) AND (COMPANY_ID = $2) AND BOOK_NO IN ($3)
> $BODY$
>   LANGUAGE 'sql' VOLATILE;
>
>
> select * from sp_get_phase ('sandip', 'oms', '1,4') this return a Blank
> record.


For this function call, the SELECT inside the function gets translated into



SELECT          ...
FROM            T_PHASE
WHERE           (USER_ID = 'sandip') AND (COMPANY_ID = 'oms') AND BOOK_NO IN
('1,4')

Notice the quotes around the list of values for $3. So you can see that the
IN list contains just one value and not two as you might have expected.
You'll need to do some trickery. Try the EXECUTE, perhaps that might help!!!


I tried to execute the SQL statement from the function
>
> SELECT          BOOK_NO, USER_ID, COMPANY_ID, PHASE, UPDATE_USER_ID,
> UPDATE_DATE,
>                       AddInfo1, AddInfo2
> FROM            T_PHASE
> WHERE           (USER_ID = 'testUser') AND (COMPANY_ID = 'testCompany')
> AND
> BOOK_NO IN (1,4)
>
> ----- This Works fine... returns 2 records.   What may be the problem?
>
>
Best regards,


--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | yahoo }.com

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Gurjeet Singh"
Дата:
Сообщение: Re: Internal Error XXOO...Mission Critical
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: BUG #2851: Error in documentation or in code?