如何在纯C#中使用PL / SQL?

时间:2014-06-25 12:03:27

标签: c# sql oracle plsql

我详细阐述了这段代码,开始了我的宝贝步骤。连接很好。简单的OdbcDataReader选择工作正常。但我无法测试任何PL / SQL函数。它是如何工作的 ?我是否需要额外安装或做错了什么?

some inspiration

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 个答案:

答案 0 :(得分:5)

我认为你的错误是在PL / SQL端而不是c#代码端。

这是无效的,因为在beginend之间需要声明:

begin end;

这不是无效的,因为它包含一个语句,尽管它是null;

begin null; end;