c# - 使用 Oracle.ManagedAccess 使用存储过程执行内联语句

标签 c# .net oracle plsql oracle12c

StringBuilder sql_statement  = new StringBuilder();

sql_statement.Append("sampleStoreproc(null, 1); ");
sql_statement.Append("SELECT 'Y' FROM myTable ");
sql_statement.Append("WHERE column1 = null AND column2 = 1 ");

DataAccessObject.ExecuteReader(
    connectionString, 
    CommandType.Text, 
    sql_statement.ToString());

它向我抛出错误:

ORA-0090 Invalid SQL statement

我尝试在语句的最后添加 ; 分号,但它不起作用。

我复制了整个文本并将其完美执行到 SQL Developer 中。

最佳答案

在您的第一条语句中,您调用了一个存储过程。将其更改为:

sql_statement.Append("execute sampleStoreproc(null, 1); ");

还建议在最后一行的末尾添加一个分号。

编辑:尝试将您的两个语句都包含在 begin...end; block 中:

sql_statement.Append("begin");
sql_statement.Append("  execute sampleStoreproc(null, 1);");
sql_statement.Append("  SELECT 'Y' FROM myTable");
sql_statement.Append("  WHERE column1 = null AND column2 = 1;");
sql_statement.Append("end;");

关于c# - 使用 Oracle.ManagedAccess 使用存储过程执行内联语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707903/

相关文章:

c# - 在 Repository<T> 中返回 Queryable<T> 或 List<T>

c# - C# 4.0 中的合约

sql - 计算和显示跨多个字段的重复项

sql - UPDATE 语句中的集合 COUNT、FIRST 和 LAST

c# - Dotnet Core Windows 服务中的多个托管服务

C# - 如何将名称为日期的列添加到数据表中

c# - 在创建模式 MVC 4 中填充 DropDownList 中的数据

c# - 犀牛模拟 : how to test if method was called when using PartialMock

.net - 是否可以创建强类型的 web.config 引用?

database - 在 Oracle 11g R2 中解锁帐户