Передайте все условия в качестве аргумента в postgresql - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу передать все, где условие в качестве параметра в Postgrel.

Возможно ли это?Я создал процедуру, как,

CREATE OR REPLACE FUNCTION public.pro_select_all_item_query_builder_data(IN cond character varying)
  RETURNS TABLE(id integer, name character varying) AS
$BODY$ 
BEGIN            
  FOR id, name IN

    SELECT product.id, product.name FROM product WHERE cond
.............

и назову ее как,

SELECT * 
FROM pro_select_all_item_query_builder_data('product.status_id = 1')

Это показывает ОШИБКА: аргумент WHERE должен быть тип логический, а не тип символов меняется

Не могли бы вы поддержать меня, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 21 сентября 2018

Убедитесь, что cond имеет допустимое условие, иначе он выдаст синтаксическую ошибку.

FOR id, name IN
    EXECUTE ('SELECT product.id, product.name FROM product WHERE ' || cond)
LOOP
....
END LOOP;
...