ExecuteNonQuery
всегда возвращает -1, даже если мой код SQL вставляет или обновляет строки:
var cmd = _context.CreateCommand(sql, CommandType.Text, parameters);
var affectedRows = cmd.ExecuteNonQuery();
Это мой код SQL - мне нужно решение в C# без изменения SQL код:
DECLARE
-- my_stav_zakazka NUMBER(17,8);
my_pocet_rezerv NUMBER;
BEGIN
SELECT count(*)
INTO my_pocet_rezerv
FROM ZAKAZKANDREZ
WHERE ZAKAZKA_ID = :ZAKAZKA_ID
AND SKLAD_OZN = :SKLAD_OZN
AND VYROBEKND_OZN = :VYRND_OZN
AND ND_NR = :ND_NR
AND ZAKAZKANDEXTODPIS_ID = :ZAKAZKANDEXTODPIS_ID
AND FLAG = 1;
IF my_pocet_rezerv = 0
THEN
INSERT INTO ZAKAZKANDREZ
(ND_NR, SKLAD_OZN, STAV_REZERV, TEXT, VSTUP_DAT, VSTUP_PRAC_ID, VYROBEKND_OZN, ZAKAZKA_ID, VSTUP_PROV_ID, VYDEJ_MJ_ID, VYDEJ_MJ_POC, FLAG, ZAKAZKANDEXTODPIS_ID)
VALUES
(:ND_NR, :SKLAD_OZN, :STAV_REZERV, :TEXT, SYSDATE, SYS_CONTEXT('DMSENV','CURR_USER_ID'), :VYRND_OZN, :ZAKAZKA_ID, :VSTUP_PROV_ID, :VYDEJ_MJ_ID, :VYDEJ_MJ_POC, 1, :ZAKAZKANDEXTODPIS_ID);
ELSE
UPDATE ZAKAZKANDREZ
SET STAV_REZERV = :STAV_REZERV, EDIT_DAT = SYSDATE, EDIT_PRAC_ID = SYS_CONTEXT('DMSENV','CURR_USER_ID')
WHERE ZAKAZKA_ID = :ZAKAZKA_ID
AND SKLAD_OZN = :SKLAD_OZN
AND VYROBEKND_OZN = :VYRND_OZN
AND ND_NR = :ND_NR
AND ZAKAZKANDEXTODPIS_ID = :ZAKAZKANDEXTODPIS_ID
AND FLAG = 1;
END IF;
END;