Когда я пытаюсь выполнить процедуру создания с использованием 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);
}