使用 ODBC 命令时 Select 上的错误 "ORA-00933: SQL command not properly ended"
Error "ORA-00933: SQL command not properly ended" on Select with ODBC Command
我尝试在 .NET 中使用 ODBC 对 Oracle 数据库执行查询,但出现以下错误:
ORA-00933: SQL command not properly ended
但是,SQL语句肯定是正确的,我从Oracle SQL Developer中可以成功执行。查询本身如下所示:
SELECT * FROM TABLE(SCHEMA.PKG.SPNAME('PARAMS'));
另一个简单的查询工作正常:
SELECT COUNT(*) FROM SCHEMA.MYTABLE
它看起来像是前者的东西,它在查询中使用了一个包并导致某些东西被破坏。该错误表明它没有正确结束,但它有一个分号和正确的大括号,所以似乎发生了其他事情。
如果我删除结尾的分号,我会收到一条没有消息的错误。
我的 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);
}
}
使用适用于 .NET 的 Oracle 库时,当我删除结尾的分号时它可以正常工作。如果我保留它,则会出现关于 SQL 命令未正确结束的相同错误。
似乎此查询应该 与 ODBC 一起工作。有什么我需要不同的地方才能让它工作,或者使用 Oracle Managed Data Provider 是唯一的方法吗?
我不会使用 ODBC 我实际上会使用 OracleDataClient 做这样的事情
var strSQL = "SELECT * FROM TABLE(SCHEMA.PKG.SPNAME('PARAMS'));";
using (OracleConnection connStr = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(strSQL, connStr))
{
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
cmd.ExecuteScalar(); //change the ExecuteScalar to fit the proper call
}
}
根据我的经验,我注意到分号会中断查询的几个实例,例如 JasperSoft Studio 和 cx_Oracle Python 模块。我对 ODBC 与 OracleDataClient 知之甚少,但我想这是一个类似的情况。
我尝试在 .NET 中使用 ODBC 对 Oracle 数据库执行查询,但出现以下错误:
ORA-00933: SQL command not properly ended
但是,SQL语句肯定是正确的,我从Oracle SQL Developer中可以成功执行。查询本身如下所示:
SELECT * FROM TABLE(SCHEMA.PKG.SPNAME('PARAMS'));
另一个简单的查询工作正常:
SELECT COUNT(*) FROM SCHEMA.MYTABLE
它看起来像是前者的东西,它在查询中使用了一个包并导致某些东西被破坏。该错误表明它没有正确结束,但它有一个分号和正确的大括号,所以似乎发生了其他事情。
如果我删除结尾的分号,我会收到一条没有消息的错误。
我的 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);
}
}
使用适用于 .NET 的 Oracle 库时,当我删除结尾的分号时它可以正常工作。如果我保留它,则会出现关于 SQL 命令未正确结束的相同错误。
似乎此查询应该 与 ODBC 一起工作。有什么我需要不同的地方才能让它工作,或者使用 Oracle Managed Data Provider 是唯一的方法吗?
我不会使用 ODBC 我实际上会使用 OracleDataClient 做这样的事情
var strSQL = "SELECT * FROM TABLE(SCHEMA.PKG.SPNAME('PARAMS'));";
using (OracleConnection connStr = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(strSQL, connStr))
{
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
cmd.ExecuteScalar(); //change the ExecuteScalar to fit the proper call
}
}
根据我的经验,我注意到分号会中断查询的几个实例,例如 JasperSoft Studio 和 cx_Oracle Python 模块。我对 ODBC 与 OracleDataClient 知之甚少,但我想这是一个类似的情况。