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

本文关键字:运行 脚本 连接 Oracle | 更新日期: 2023-09-27 18:36:38

>我有以下代码

         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:第 1 行,第 11 列:PL/SQL:ORA-00922:缺失或无效 选项 ORA-06550:第 1 行,第 7 列:

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

您可以只使用带有过程名称的OracleCommand 对于示例

尝试这样的事情:

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(),它将返回一个object实例。

如果要

读取许多行和列,也可以使用 command.ExecuteDataReader() Oracle 数据读取器(在要操作select查询的输出时很常见)。