ODP.NET Procedure Compilation

Wenn ich versuche, eine Erstellungsprozedur mit ODP.NET auszuführen, erhalte ich wieder ORA-24344: Erfolg mit Kompilierungsfehler. Wenn ich jedoch dieselbe Anweisung in SQL Developer ausführe, wird sie erfolgreich kompiliert. Weiß jemand, was ich ändern muss, damit meine Prozedur kompiliert wird? Handelt es sich um ein Zeichensatzproblem?

Ich verwende Oracle 10g Express, .NET 3.5 SP 1 und ODP.NET 2.111.7.20 (Version von 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);
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage