Я пытаюсь выполнить запрос к базе данных Oracle с использованием ODBC в .NET и получаю следующую ошибку:
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);
}
}
При использовании библиотеки Oracle для .NET она работает, когда я удаляю конечную точку с запятой. Если я оставлю это на месте, возникнет та же ошибка о неправильном завершении команды SQL.
Похоже, этот запрос должен работать с ODBC. Есть ли что-то, что мне нужно, чтобы заставить его работать, или я использую Oracle Managed Data Provider единственный способ?