C#中的Oracle连接和运行脚本

Oracle connection and running script in c#

我得到了以下代码

         using (OracleConnection con = new OracleConnection())
          {
            con.ConnectionString = My_connection_string;               
            FileInfo file = new FileInfo(Server.MapPath("~/Scripts/call_proc.sql"));
            string script = file.OpenText().ReadToEnd();
            con.Open();
            OracleCommand cmd = new OracleCommand(script, con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.BindByName = true;
            cmd.ExecuteNonQuery();
          } 

call_proc代码是 //返回你好

         set serveroutput on;
         begin
         test.tmp_test();
         end;

当我尝试运行上面的代码时,出现以下错误。

ORA-06550: line 1, column 11: PL/SQL: ORA-00922: missing or invalid option ORA-06550: line 1, column 7:

您可以只使用 OracleCommand 和过程名称 For sample

尝试这样的事情:

using (OracleConnection con = new OracleConnection())
{
    con.ConnectionString = My_connection_string;               
    con.Open();

    OracleCommand cmd = new OracleCommand("temp.tmp_test", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.BindByName = true;

    var result = cmd.ExecuteScalar();

    if (result != null)
    {
        string stringResult = result.ToString();

        // show result here
    }   

} 

如果要获取第一列和第一行,可以使用 command.ExecuteScalar(),它将 return 一个 object 实例。

如果您想读取多行和多列,您也可以使用 command.ExecuteDataReader() 中的 Oracle Data Reader(当您想操作 select 查询的输出时很常见)。