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

Тема в разделе ".NET", создана пользователем neyaa, 1 май 2010.

Статус темы:
Закрыта.
  1. neyaa

    neyaa Гость

    Хочу написать процедуру, которая по аббревиатуре искала бы в таблице полное название факультета, но на строчке 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
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей