ODP.NET Процедура компиляции - PullRequest
3 голосов
/ 05 мая 2010

Когда я пытаюсь выполнить процедуру создания с использованием ODP.NET, я получаю ORA-24344: успех с ошибкой компиляции. Однако когда я запускаю ту же инструкцию в SQL Developer, она успешно компилируется. Кто-нибудь знает, что мне нужно изменить, чтобы моя процедура для компиляции? Это проблема набора символов?

Я использую Oracle 10g Express, .NET 3.5 SP 1 и ODP.NET 2.111.7.20 (версия от Oracle.DataAccess.dll)

    [TestMethod]
    public void OdpNet_CreateProcedure()
    {
        ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["ODP.NET"];
        using (var con = new OracleConnection(settings.ConnectionString))
        {
            con.InfoMessage += new OracleInfoMessageEventHandler(con_InfoMessage);
            con.Open();

            var cmd = new OracleCommand();
            cmd.Connection = con;

            cmd.CommandText = @"
                CREATE OR REPLACE PROCEDURE TABLE1_GET
                (
                  P_CURSOR OUT SYS_REFCURSOR
                )
                IS
                BEGIN

                  OPEN P_CURSOR FOR
                  SELECT * 
                  FROM TABLE1;

                END;";

            cmd.ExecuteNonQuery(); // ORA-24344: success with compilation error

            cmd.CommandText = @"ALTER PROCEDURE TABLE1_GET COMPILE";
            cmd.ExecuteNonQuery(); // ORA-24344: success with compilation error
        }
    }

    void con_InfoMessage(object sender, OracleInfoMessageEventArgs eventArgs)
    {
        System.Diagnostics.Debug.WriteLine(eventArgs.Message);
    }

Ответы [ 2 ]

5 голосов
/ 05 мая 2010

Решение:

cmd.CommandText = cmd.CommandText.Replace("\r\n", "\n");
1 голос
/ 05 мая 2010

Сделайте SELECT * FROM USER_ERRORS, и вы увидите, что записывается как ошибка. Там могут быть какие-то странные символы, ползущие в ..

PS. Кажется странным создавать процедуры в приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...