Re: ProcedureQuery problem

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Mar 28 2006 - 04:00:12 EST

  • Next message: Craig Turner: "Re: Generating classes in 1.1"

    The problem is that certain versions of Oracle drivers do not provide
    correct (per JDBC spec) "boolean execute()" implementation.

    Andrus

    On Mar 28, 2006, at 12:40 PM, Marie Goutière wrote:

    > We 're using the version 1.1.2 of Cayenne with Oracle 9i.
    > But I want to know what exactly is the problem.
    > Many Thanks
    > Marie
    >
    >
    >
    >> From: Andrus Adamchik <andru..bjectstyle.org>
    >> Reply-To: cayenne-use..ncubator.apache.org
    >> To: cayenne-use..ncubator.apache.org
    >> Subject: Re: ProcedureQuery problem
    >> Date: Mon, 27 Mar 2006 21:33:49 +0400
    >>
    >> What version of Cayenne and Oracle do you have? It looks like you
    >> are hitting this issue:
    >>
    >> http://objectstyle.org/jira/browse/CAY-464
    >>
    >> It is fixed in 1.2M12 (but note that you have to use the auto-
    >> adapter, i.e. do not enter DataNode adapter name for the fix to work)
    >>
    >> Andrus
    >>
    >>
    >> On Mar 27, 2006, at 9:11 PM, Marie Goutière wrote:
    >>
    >>>
    >>> Thanks
    >>> you're it's quite ok but in Tomcat log there a little problem
    >>> QueryLogger: === updated 1 row. appears without stopping.
    >>> Is that normal???
    >>> My proc doesn't update anything :'(
    >>> I don't understand
    >>>
    >>> Thanks
    >>> Marie
    >>>
    >>>> From: Andrus Adamchik <andru..bjectstyle.org>
    >>>> Reply-To: cayenne-use..ncubator.apache.org
    >>>> To: cayenne-use..ncubator.apache.org
    >>>> Subject: Re: ProcedureQuery problem
    >>>> Date: Mon, 27 Mar 2006 20:21:53 +0400
    >>>>
    >>>> Hi Marie,
    >>>>
    >>>> I noticed a mismatch between your procedure definition and
    >>>> Cayenne mapping:
    >>>>
    >>>> <procedure name="GETEXAVALBR" returningValue="true">
    >>>>
    >>>> "returningValue" should only be "true" for Oracle *functions*,
    >>>> not procedures. Try unchecking the corresponding checkbox in
    >>>> the Modeler.
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>>
    >>>>
    >>>> On Mar 27, 2006, at 8:16 PM, Marie Goutière wrote:
    >>>>
    >>>>> Hello
    >>>>> I've a problem pl/sql with a ProcedureQuery.
    >>>>> here's my java code :
    >>>>> ProcedureQuery query = new ProcedureQuery("GETEXAVALBR");
    >>>>> query.addParameter("idDevice", deviceId);
    >>>>> query.addParameter("codeMcoEnt", codeMco);
    >>>>> query.addParameter("dateQuestionBR", dateReview);
    >>>>> query.addParameter("codeForecast", forecastNum);
    >>>>>
    >>>>> try{
    >>>>> List result =dgctContext.performQuery(query);
    >>>>> }
    >>>>> catch (Exception e){
    >>>>> // PB dans la requete return null
    >>>>> DgctLogger.error("DB Request GETEXIST2VALBR Failed");
    >>>>> DgctLogger.error(e.toString());
    >>>>> }
    >>>>>
    >>>>> My proc stoc returns only one field of an oracle table
    >>>>>
    >>>>> in my map.xml you can find :
    >>>>> <procedure name="GETEXAVALBR" returningValue="true">
    >>>>> <procedure-parameter name="valBr" type="VARCHAR" length="10"
    >>>>> direction="out"/>
    >>>>> <procedure-parameter name="idDevice" type="VARCHAR"
    >>>>> length="10" direction="in"/>
    >>>>> <procedure-parameter name="codeMcoEnt" type="VARCHAR"
    >>>>> length="2" direction="in"/>
    >>>>> <procedure-parameter name="dateQuestionBR" type="VARCHAR"
    >>>>> length="10" direction="in"/>
    >>>>> <procedure-parameter name="codeForecast" type="VARCHAR"
    >>>>> length="10" direction="in"/>
    >>>>> </procedure>
    >>>>>
    >>>>> and the declation of the procedure is :
    >>>>>
    >>>>> CREATE OR REPLACE PROCEDURE GETEXAVALBR(
    >>>>> valBr OUT varchar,
    >>>>> idDevice IN varchar,
    >>>>> codeMcoEnt IN varchar,
    >>>>> dateQuestionBR IN varchar,
    >>>>> codeForecast IN varchar
    >>>>> ) IS
    >>>>>
    >>>>> here is the trace in tomcat :
    >>>>> QueryLogger: {? = call GETEXAVALBR(?, ?, ?, ?)} [bind:
    >>>>> '[OUT]', 'NA485', '2', '01/02/2004', '18']
    >>>>> I don't know if the binding is correct but I always have the
    >>>>> same error although i'tried a lot of things.
    >>>>> here is the PL/SQL error
    >>>>> PLS-00306: wrong number or types of arguments in call to
    >>>>> 'GETEXAVALBR'
    >>>>>
    >>>>> I've no Idea left
    >>>>> Can anyone rescue me???? :))
    >>>>> Thanks



    This archive was generated by hypermail 2.0.0 : Tue Mar 28 2006 - 04:00:42 EST