0

`i try to call an oracle function inside a package

function :

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 test script:

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;

it works but my fluent code does not work :S could anyone help me?

and here is it...

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();

here is my Parameter I_PARAMS does not exist as a named parameter

1 Answers1

0

May be session.CreateSQLQuery("reslt := D_PKG.test_func(:I _PARAMS , :O_RESPONSE_CODE , :O_RESPONSE_EXPLANATION )"). Missed the : char?

lavrik
  • 1,456
  • 14
  • 25
  • thanks, but it does not works. same error {System.ArgumentException: Parameter sonuc does not exist as a named parameter in... – Sezer Şahne Dec 19 '12 at 20:20
  • Try query like `select D_PKG.test_func(:I _PARAMS , :O_RESPONSE_CODE , :O_RESPONSE_EXPLANATION)` or `select D_PKG.test_func(:I _PARAMS , :O_RESPONSE_CODE , :O_RESPONSE_EXPLANATION) from dual` (don't know about dual, i'm not good at oracle) and Add values only with SetParameter("NAME", Value). – lavrik Dec 20 '12 at 17:57