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/