Re: ProcedureQuery problem

From: Marie Goutièr (sweetylol..otmail.com)
Date: Tue Mar 28 2006 - 04:54:17 EST

  • Next message: Tomi NA: "Re: Cayenne M12 release is out"

    Thanks
    I'll try with a function to see if I still have the problem because for the
    moment we can't change Cayenne version.

    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: Tue, 28 Mar 2006 13:00:12 +0400
    >
    >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:54:42 EST