Как вернуть значения из функции Postgres?C#

Место общения программистов C#
Ответить
Anonymous
 Как вернуть значения из функции Postgres?

Сообщение Anonymous »

Я попробовал этот код:

Код: Выделить всё

CREATE OR REPLACE FUNCTION public.t4(in iid int, OUT n1 text, OUT n2 text)
LANGUAGE plpgsql
AS $function$
BEGIN
SELECT DISTINCT n1=l.name, n2=l.comment from public.languages l where l.id=iid;
END;
$function$;

Код: Выделить всё

 NpgsqlConnection connection = new NpgsqlConnection(ConString);
connection.Open();
NpgsqlCommand cmd = new NpgsqlCommand("SELECT * from public.t4()", connection);
cmd.Parameters.Add(new NpgsqlParameter("iid", DbType.Int32) { Direction = ParameterDirection.Input });
cmd.Parameters[0].Value = 18;
cmd.Parameters.Add(new NpgsqlParameter("n1", DbType.String) { Direction = ParameterDirection.Output });
cmd.Parameters.Add(new NpgsqlParameter("n2", DbType.String) { Direction = ParameterDirection.Output });
cmd.ExecuteNonQuery();
t1.Text = cmd.Parameters[1].Value.ToString();
t2.Text = cmd.Parameters[2].Value.ToString();
И я получил ошибку:

Код: Выделить всё

Npgsql.PostgresException: '42883: function public.t4() does not exist.
Что я делаю не так?


Подробнее здесь: https://stackoverflow.com/questions/798 ... s-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»