我碰到一个问题,我有很多的sql脚本,想通过C#程序调用的方式执行到oracle数据库中,但是碰到几个问题:
1.如果我用程序调用sqlplus的方式,一旦数据库连接不上,sqlplus没有办法返回,我的C#程序也就没有办法继续执行
2.如果我用直接执行sql语句的方式,那么我要读取sql脚本,需要现写代码,大家如果觉得第一个问题没有办法解决的话,那么用这个方式有没有现成的代码?

解决方案 »

  1.   

    用第二种,你的sql代码假设放到.sql文件里面,首先读取该文件
    http://www.cnblogs.com/furenjun/archive/2007/06/18/orcaleprocedure.html
    参考这里面的GetSqlFile方法然后将读取出的sql代码,提交给Oracle数据库执行即可,类似OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnString"].ToString());
                con.Open();
                OracleCommand cmd = new OracleCommand(你读取出的sql代码, con);
                cmd.ExecuteNonQuery();            //dispose cmd and con
               
    参考
    https://www.cnblogs.com/masonlu/p/7514942.html
      

  2.   

    读取sql代码后,也可以用C#拼接成sql存储过程,OracleCommand调用存储过程
      

  3.   

    就直接读取sql脚本,然后放到sqlcommand里执行吧。
    也不是太麻烦的事情。