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 列:
您可以只使用带有过程名称的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
查询的输出时很常见)。