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);
}