42809: (метка времени без часового пояса, метка времени без часового пояса) — это процедура ПОЛОЖЕНИЕ: 15C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 42809: (метка времени без часового пояса, метка времени без часового пояса) — это процедура ПОЛОЖЕНИЕ: 15

Сообщение Anonymous »

Приложение C#
Project Entityframework 4.7.2
Npgsql версии 7.0.1
Ниже я предоставил код C# и схему PostgresSQL. Когда код выполняет cmd, он завершается с ошибкой 42809: red.common$getreinsurers(метка времени без часового пояса, метка времени без часового пояса) — это процедура. ПОЛОЖЕНИЕ: 15. Я не знаю, почему он не возвращает «ВЫБРАТЬ» записи из процедуры схемы. Не понимаете позицию 15?
DataSet ds = new DataSet();
cmd.CommandText = "SELECT * FROM red.common$getreinsurers(@p_fromdate,@p_todate)";
cmd.CommandType = CommandType.StoredProcedure;
DateTime dateTime = DateTime.Now;
cmd.Parameters.AddWithValue("@p_fromdate", NpgsqlDbType.Timestamp, dateTime);
cmd.Parameters.AddWithValue("@p_todate", NpgsqlDbType.Timestamp, dateTime);
cmd.Parameters.AddWithValue("p_refcursorreinsurers", NpgsqlDbType.Refcursor);
cmd.Parameters[2].Direction = ParameterDirection.Output;
cmd.Parameters.AddWithValue("p_sqlcode", NpgsqlDbType.Double);
cmd.Parameters[3].Direction = ParameterDirection.Output;
cmd.Parameters.AddWithValue("p_sqlerrm", NpgsqlDbType.Text);
cmd.Parameters[4].Direction = ParameterDirection.Output;

NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
da.Fill(ds);


Схема
CREATE OR REPLACE PROCEDURE red.common$getreinsurers(IN p_fromdate timestamp without time zone, IN p_todate timestamp without time zone, OUT p_refcursorreinsurers refcursor,
AS
$BODY$timestamp without time zone, IN p_todate timestamp without time zone, OUT p_refcursorreinsurers refcursor,
DECLARE
p_refCursorReinsurers$ATTRIBUTES aws_oracle_data.TCursorAttributes;
BEGIN
p_refCursorReinsurers := NULL;
OPEN p_refCursorReinsurers FOR
SELECT DISTINCT
r.*, tg.name AS tg_name, tg.id AS treaty_group_id, tg.start_date AS tg_start_date, tg.minimum_incident_date AS tg_minimum_incident_date, tg.maximum_incident_date AS tg_maximum_incident_date, tgr.percentage_repayment, tgr.effective_from_date, tgr.effective_to_date
FROM red.treaty_groups AS tg, red.treaty_group_reinsurers AS tgr, red.reinsurers AS r
WHERE tg.id = tgr.treaty_group_id AND tgr.reinsurers_id = r.id AND tgr.effective_from_date = p_todate;
p_refCursorReinsurers$ATTRIBUTES := ROW (TRUE, 0, NULL, NULL);
p_sqlcode := '';
p_sqlerrm := '';
END;
$BODY$



Подробнее здесь: https://stackoverflow.com/questions/782 ... -procedure
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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