Veena Hosur Ответов: 1

Как вызвать функции postgresql на языке C#


ПРИВЕТ,
Как вызвать этот тип запроса в c#

CREATE OR REPLACE FUNCTION kiadb_fngetdetailsbyvariousparam(ind_zone text,dst text,nmind text,ind text,implst text,rsvr text,n34b text,prjapr text)
RETURNS   SETOF RECORD AS 
$BODY$
DECLARE 
sql text;
BEGIN
sql:='select indzone,dstr,nmindar,plno,pltar,nmalt from plotboundary where indzone='|| quote_literal(ind_zone)||' AND indx='|| quote_literal(ind);
IF dst IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' dstr = ' || quote_literal(dst);
END IF;
IF nmind IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' nmindar = ' || quote_literal(nmind);
END IF;
IF implst IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' implst = ' || quote_literal(implst);
END IF;
IF rsvr IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' rsvr = ' || quote_literal(rsvr);
END IF;
IF n34b IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' n34b = ' || quote_literal(n34b);
END IF;
IF prjapr IS NOT NULL THEN
 sql := sql || ' AND ';
 sql := sql ||' prjapr = ' || quote_literal(prjapr);
END IF;
RETURN QUERY EXECUTE sql;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION kiadb_fngetdetailsbyvariousparam( text,
 text, text, text, text, text, text, text)
  OWNER TO postgres;



вызов в postgresql

select * from kiadb_fngetdetailsbyvariousparam('Tumakuru Zone',null,null,'Allotted','Yet to Start','General','No','DLSWCC')
AS t(indzone character varying,dstr character varying,nmindar character varying,plno character varying,pltar double precision,nmalt character varying);



отлично работает в базе данных, но я хочу назвать это на c#.Как это сделать

Что я уже пробовал:

Я пытаюсь вызвать функцию на языке Си#
DataTable dt = pgHelper.ExecuteParamerizedSelectCommand("select * from kiadb_fngetdetailsbyvariousparam AS t(indzone character varying,dstr character varying,nmindar character varying,plno character varying,pltar double precision,nmalt character varying) ", CommandType.Text, parms);


я получаю ошибку, как будто функция не существует

Kornfeld Eliyahu Peter

Вы должны отладить свой код и поймать последний запрос, отправленный в pgSQL, чтобы увидеть, что пошло не так (возможно, ваш метод ExecuteParamerizedSelectCommand что-то испортил)...

1 Ответов

Рейтинг:
0

RickZeeland

Вот пример использования NpgSql: Александр Кузнецов: изучение PostgreSql: функции и рефкурсоры[^]


Veena Hosur

это не работает для меня