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 <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
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 <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
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 <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
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