我详细阐述了这段代码,开始了我的宝贝步骤。连接很好。简单的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>
答案 0 :(得分:5)
我认为你的错误是在PL / SQL端而不是c#代码端。
这是无效的,因为在begin
和end
之间需要声明:
begin end;
这不是无效的,因为它包含一个语句,尽管它是null;
:
begin null; end;