gpt4 book ai didi

oracle - 无法执行 native 批量操作查询

转载 作者:行者123 更新时间:2023-12-02 00:43:40 27 4
gpt4 key购买 nike

我正在尝试在 NHibernate 中实现“如果存在,则更新,否则,插入”数据访问方法。我的数据库是 Oracle 10g。

尝试运行此代码时出现“无法执行 native 批量操作查询”错误,如果我单独运行插入或更新,它工作正常。

谢谢!

string sql = @"DECLARE
CntOfRow Number(10,0);
BEGIN
SELECT count(*)
INTO CntOfRow
FROM Table1
WHERE
QueID=:QueID

IF CntOfRow=0 THEN
INSERT INTO Table1 ...;
ELSE
UPDATE Table1 ... ;
END IF;
END;";


INHibernateSession session = NHibernateSessionManager.Instance.Session;

try
{
session.BeginTransaction();
ISQLQuery query = session.GetISession().CreateSQLQuery(sql.Replace(System.Environment.NewLine, " "));
query.SetParameter("QueID", queID);
query.ExecuteUpdate();
session.CommitTransaction();
}
catch (Exception ex)
{
session.RollbackTransaction();
throw;
}

最佳答案

我不知道为什么会出现该错误,但您可以尝试使用这个更简单的 PL/SQL block :

BEGIN
INSERT INTO Table1 ...;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
UPDATE Table1 ... ;
END;";

关于oracle - 无法执行 native 批量操作查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com