代码之家  ›  专栏  ›  技术社区  ›  Kostas Konstantinidis

在Oracle中的一个ExecuteScalar中运行多个命令

  •  6
  • Kostas Konstantinidis  · 技术社区  · 17 年前

    插入; 插入; 删去

    当我试图对甲骨文执行这些命令时 this

    现在我可以理解这是因为语句之间有分号,我在SQL Server上尝试了这个方法,但在Oracle中没有成功。

    有没有办法使用ExecuteScalar或其他函数对oracle运行多条语句?


    复制 : How can I execute multiple Oracle SQL statements with .NET

    2 回复  |  直到 9 年前
        1
  •  7
  •   Mitch Wheat    17 年前

    试着用一个铅笔包起来 BEGIN..END

    BEGIN insert into.... ; insert into.... ; delete .........; END;
    
        2
  •  0
  •   Community Mohan Dere    9 年前

    尝试开始结束对我来说不起作用。

    我所做的是创建一个新方法,给定一个连接(我尝试最小化打开的连接),它使用;作为分隔符,并分别运行每个分隔符

        private void ExecuteSql(string statements, IDbConnection conn)
        {
            IDbCommand cmd = conn.CreateCommand();
            string[] commands = statements.Split(new string[] { ";\r\n", "; ", ";\t", ";\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string c in commands)
            {
                cmd.CommandText = c;
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
            }
    
            cmd.Dispose();
        }
    

    我的灵感来自 this 后发 Petros 告诉我了

    PS您可能需要根据您的需要进行更改,在我的情况下,我要求连接处于打开状态,如果来电者出现问题,请相应地关闭连接。

    推荐文章