Приложение 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
42809: (метка времени без часового пояса, метка времени без часового пояса) — это процедура ПОЛОЖЕНИЕ: 15 ⇐ C#
Место общения программистов C#
1711249153
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$
Подробнее здесь: [url]https://stackoverflow.com/questions/78210253/42809-timestamp-without-time-zone-timestamp-without-time-zone-is-a-procedure[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия