【问题标题】:Oracle connection and running script in c#c#中的Oracle连接和运行脚本
【发布时间】:2015-03-05 08:08:14
【问题描述】:

我有以下代码

         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 列:

【问题讨论】:

  • set serveroutput on; 对 PL/SQL 无效。
  • @Sathya 如果我删除服务器输出;然后我收到以下错误。 ORA-06550:第 1 行,第 12 列:PLS-00103:在预期以下情况之一时遇到符号“”:
  • 你真的需要使用文件吗?您不能只使用带有过程名称的OracleCommand 吗?示例:new OracleCommand("test.temp_test", con);
  • @FelipeOriani 我试过这个并给了我以下错误。 ORA-06550:第 1 行,第 7 列:PLS-00801:内部错误 [22503] ORA-06550:第 1 行,第 7 列:
  • @Sathya,你需要检查你的SP是否编译成功。

标签: c# oracle plsql ado.net sqlplus


【解决方案1】:

您可以只使用带有过程名称的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 实例。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2011-06-08
    • 2012-05-03
    • 2013-06-24
    • 2015-11-27
    • 1970-01-01
    相关资源
    最近更新 更多