#c# #sql #oracle #plsql
#c# #sql #Oracle #plsql
Вопрос:
Я разработал этот небольшой фрагмент кода, чтобы начать с моих маленьких шагов. Соединение хорошее. Простые OdbcDataReader
выборки работают нормально. Но я не могу протестировать какие-либо функции PL / SQL. Как это работает? Нужно ли мне устанавливать что-то дополнительное или я делаю что-то не так?
using System;
using System.Data.Odbc;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string connectionString = "dsn=TEST;uid=read;pwd=___";
OdbcConnection con = new OdbcConnection(connectionString);
con.Open();
try
{
OdbcCommand cmd = new OdbcCommand("begin end;", con);
int result = cmd.ExecuteNonQuery();
cmd.Dispose();
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
con.Close();
con.Dispose();
Console.ReadKey();
}
}
}
Очевидно, что программа PL / SQL:
begin
end;
Сообщение об ошибке выглядит следующим образом:
System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] [Oracle][ODBC][Ora]OR
A-06550: line 1, column 7:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
begin declare exit for goto if loop mod null pragma raise
return select update while <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall
<a single-quoted SQL string>
Комментарии:
1. Какую функцию pl / sql вы пытались протестировать?
2. @DanBracuk:
begin end;
. Это в вопросе.3. Если это функция, что она должна делать?
4. @DanBracuk Это здесь ничего не должно было делать. Это пошаговый метод изучения чего-то нового. Пожалуйста, проверьте 1-й абзац вопроса.
Ответ №1:
Я думаю, что ваша ошибка находится на стороне PL / SQL, а не на стороне кода c #.
Это недопустимо, поскольку begin
ожидается оператор between и end
:
begin end;
Это не является недопустимым, поскольку оно содержит оператор, хотя это null;
:
begin null; end;