使用ODBC命令选择时出现错误“ ORA-00933:SQL命令未正确结束”

Mun*_*Mun 2 .net c# oracle odbc data-access

我正在尝试使用.NET中的ODBC对Oracle DB执行查询,并收到以下错误:

ORA-00933: SQL command not properly ended
Run Code Online (Sandbox Code Playgroud)

但是,SQL语句绝对正确,我可以从Oracle SQL Developer成功执行它。查询本身看起来像这样:

SELECT * FROM TABLE(SCHEMA.PKG.SPNAME('PARAMS'));
Run Code Online (Sandbox Code Playgroud)

另一个简单的查询工作正常:

SELECT COUNT(*) FROM SCHEMA.MYTABLE
Run Code Online (Sandbox Code Playgroud)

看起来与前者类似,后者在查询中使用包并导致中断。该错误表明它没有正确结束,但是它带有分号和正确的括号,因此似乎还有其他情况。

如果删除结尾的分号,则会出现错误,并且没有任何消息。

我的C#代码是基本的,看起来像这样:

using (var connection = new OdbcConnection(connectionString))
{
    using (var command = connection.CreateCommand())
    {
        command.CommandText = commandText;

        connection.Open();
        var result = command.ExecuteScalar();
        connection.Close();

        Console.WriteLine(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

将Oracle库用于.NET时,当我删除结尾的分号时,它可以工作。如果我将其保留在适当的位置,则会出现有关SQL命令未正确结束的相同错误。

似乎此查询与ODBC一起使用。我需要采取其他措施才能使其正常运行,还是使用Oracle托管数据提供程序是唯一的方法?

McG*_*lin 7

从我的经验来看,我注意到有几个实例会用分号中断查询,例如JasperSoft Studio和cx_Oracle Python模块。我对ODBC与OracleDataClient知之甚少,但我可以想象这是类似的情况。