Поддерживает ли BLT хранимые процедуры Oracle? Я попробовал множество методов, описанных ниже, чтобы заставить его работать, но не повезло. Хранимая процедура обновляет таблицу с несколькими значениями. Это хранимая процедура, небольшая процедура тестирования.
DROP PROCEDURE BETA_AUTO_UPDATE;
/
CREATE OR REPLACE PROCEDURE BETA_AUTO_UPDATE
(
AutoId IN NUMBER,
Rule IN NVARCHAR2,
Nam IN NVARCHAR2,
Loc IN NVARCHAR2
)
IS
BEGIN
UPDATE Beta_Auto
SET RuleGuid = Rule,
Name = Nam,
Location = Loc
WHERE Id=AutoId;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'ERROR OCCURED DURING UPDATE');
END BETA_AUTO_UPDATE;
/
попробовал следующее
DbManager.AddDataProvider(new OdpDataProvider());
DbManager OracleDb = new DbManager("BetaOracleDBConn");
Beta_Auto Betar = new Beta_Auto();
Betar.ID = 1;
Betar.Name = "Jim";
Betar.RuleGuid = "jlDKDKDKDKDKDKp";
Betar.Location = "LocDLDLDLDLDtor";
OracleDb.SetSpCommand("Beta_Auto_UPDATE",
OracleDb.CreateParameters(Betar)).ExecuteNonQuery();
Это не сработало.
Попробовал это
[ActionName("UPDATE")]
public abstract void Update(Beta_Auto Auto);
Это не сработало.
Попробовал это:
[SprocName("Beta_Auto_Update")]
public abstract void UpdateByParam(
[Direction.InputOutput("ID", "RuleGuid", "Name", "Location")] Beta_Auto Auto);
Это не сработало.
[SprocName("Beta_Auto_Update")]
public abstract void UpdateByParam(int Id, string RuleGuid, string Name, string Location);
Также попробовал это:
[ActionName("Update")]
public abstract void UpdateByParam(int Id, string RuleGuid, string Name, string Location);
Это не сработало.
Установите уровень трассировки на odp.net равным 7. Видел, что выполняется вызов, но не видит никаких параметров. Поменял XE (подумал, что это может быть проблема с лицензированием, так как db была больше, чем 5 ГБ) для корпоративного Oracle. Не сработало
Создайте нового пользователя, файл данных, табличное пространство и назначьте ему все роли и привилегии, включая «Выполнить любую процедуру». Не сработало
Я запустил стандартный ado.net (очень длинный), чтобы вызвать хранимую процедуру через OracleCommand
, и он прекрасно вызвал и сделал обновление.
Я в тупике. Все вышеперечисленное работает для SQL Server.
Спасибо.
scope_creep