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.看到正在进行调用,但看不到任何参数.对企业Oracle来说,XE(认为它可能是一个许可问题,因为db大于5GB).没工作.
创建新用户,数据文件,表空间,并为用户分配所有角色和权限,包括执行任何过程.没工作.
我运行了一个标准的ado.net(非常长的啰嗦)通过OracleCommand调用存储过程,它完美地调用并进行了更新.
我很难过.所有上述工作都适用于SQL Server.
谢谢.
scope_creep