0

`パッケージ内でオラクル関数を呼び出そうとしています

関数 :

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 に答える