Ошибка вызова функции оракула с NHibernate - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь вызвать функцию оракула с моим кодом на C #, используя nhibernate, но он выдает мне эту ошибку: ORA-06550: строка 1, столбец 15: \ nPLS-00382: выражение неправильного типа \ nORA-06550 : строка 1, столбец 7: \ nPL / SQL: оператор игнорируется "}

Вот функция:

CREATE OR REPLACE FUNCTION OID_VAL_MOVIMIENTOS
(
  v_usuario   IN       NUMBER,
  v_archivo   IN       VARCHAR2
)
RETURN NUMBER
AS
  v_cont NUMBER;
BEGIN

  v_cont := 150;
  RETURN v_cont;
END;

вот мой файл hbm.xml

<sql-query name="ValidaMovimientos">
  {? = call OID_VAL_MOVIMIENTOS(:v_usuario,:v_archivo)}
</sql-query>

И, наконец, это мой код c #:

using (ISession session = NHibernateHelper.OpenSession())
{
    IQuery query = session.GetNamedQuery("ValidaMovimientos");
    query.SetDecimal("v_usuario", idUsuario);
    query.SetString("v_archivo", nombreArchivo);
    object str = query.UniqueResult();
}

Я не знаю, что случилось с этим ...

1 Ответ

1 голос
/ 23 марта 2011

ну, вы должны лучше определить именованный запрос

<sql-query name="ValidaMovimientos">
    <query-param name="v_usuario" type="decimal"/>
    <query-param name="v_archivo" type="string"/>
    <return-scalar column="ResultVal" type="decimal"/>
    select call OID_VAL_MOVIMIENTOS(:v_usuario,:v_archivo) as ResultVal
</sql-query>

select call OID_VAL_MOVIMIENTOS(:v_usuario,:v_archivo) as ResultVal может быть синтаксически неправильным для оракула, при необходимости измените, так как мой синтаксис оракула ржавый

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...