Re: ProcedureQuery problem

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Mar 27 2006 - 12:33:49 EST

  • Next message: Lothar Krenzien: "invalid domain node after reengineering database"

    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 : Mon Mar 27 2006 - 12:34:15 EST