не срабатывает Executenonquery()

  • Автор темы neyaa
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

neyaa

Гость
#1
Хочу написать процедуру, которая по аббревиатуре искала бы в таблице полное название факультета, но на строчке cmd.ExecuteNonQuery(); выдает ошибку. У меня база данных - Oracle 10g, код C# в asp. Подскажите, пожалуйста, что я делаю не так:

CREATE TABLE FACULTY
(
FACULTY CHAR(10) NOT NULL ,
FACULTY_NAME VARCHAR2(50) NULL ,
CONSTRAINT PK_FACULTY PRIMARY KEY (FACULTY)
);
---------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE MyQuery
(
r IN varchar2(50)
)
return k char(10)
IS
BEGIN
select faculty.faculty_name into k
where faculty.faculty=r;
return k;
END MyQuery;

--------------------

protected void Button4_Click(object sender, EventArgs e)
{
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
try
{
OracleCommand cmd = new OracleCommand("MyQuery",con);

cmd.CommandType = CommandType.StoredProcedure;
con.Open();
OracleParameter param1 = new OracleParameter("r",OracleType.VarChar,50);
param1.Direction = System.Data.ParameterDirection.Input;
param1.Value = "ТОВ";
cmd.Parameters.Add(param1);

cmd.ExecuteNonQuery();
}

catch (Exception ex)
{
Label6.Text = "Ошибка соединения: " + ex.ToString();
}
finally
{
con.Close();
}
}

выскакивает ошибка:
System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7: PLS-00905: object SHLCORE.MYQUERY is invalid ORA-06550: line 1, column 7: PL/SQL: Statement ignored в System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) в System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) в System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor) в System.Data.OracleClient.OracleCommand.ExecuteNonQuery() в _Default.Button4_Click(Object sender, EventArgs e)

Я смотрела как оформлять здесь http://msdn.microsoft.com/en-us/library/ms971506.aspx
 
Статус
Закрыто для дальнейших ответов.