0

`我尝试在包中调用 oracle 函数

功能 :

FUNCTION test_func (I_PARAMS               IN TPARAMS,
                O_RESPONSE_CODE        OUT VARCHAR2,
              O_RESPONSE_EXPLANATION OUT VARCHAR2)
        RETURN BOOLEAN IS
    BEGIN
            O_RESPONSE_CODE          := 0;
            O_RESPONSE_EXPLANATION   := 'Başarılı';
            return true;
    END test_func;

Ora 测试脚本:

declare
  I_PARAMS                                          TPARAMS;
  O_RESPONSE_CODE                      VARCHAR2(4);
  O_RESPONSE_EXPLANATION    VARCHAR2(500);
  reslt                    boolean;

begin
  O_RESPONSE_EXPLANATION  := ' a';
  O_RESPONSE_CODE                    := '2';

reslt := D_PKG.test_func(I_PARAMS  , O_RESPONSE_CODE ,  O_RESPONSE_EXPLANATION );
dbms_output.put_line(o_response_explanation || ' ' || o_response_code);
end;

它可以工作,但我的流利代码不起作用:S 有人可以帮助我吗?

就是这样……

IQuery query = session.CreateSQLQuery("reslt := D_PKG.test_func(I _PARAMS  , O_RESPONSE_CODE ,  O_RESPONSE_EXPLANATION )")
                    .SetParameter("I_PARAMS", input, NHibernateUtil.Object)
                    .SetString("O_RESPONSE_CODE", null)
                    .SetString("O_RESPONSE_EXPLANATION", null)
                    .SetBoolean("reslt",false);

                output.RESULT = query.ExecuteUpdate();

这是我的参数 I_PARAMS 不作为命名参数存在

4

1 回答 1

0

可能是session.CreateSQLQuery("reslt := D_PKG.test_func(:I _PARAMS , :O_RESPONSE_CODE , :O_RESPONSE_EXPLANATION )")。错过了:字符?

于 2012-12-19T18:53:30.563 回答