Greetings,
We use Oracle packages successfully here but we use the ODP.Net 10.1
provider from Oracle not OleDb. Could you try that?
Lee
On Fri, 2007-09-21 at 20:47 +0800, pei allen wrote:
>
> Dear all,
> The prodedure with no package,like below (it runs ok!):
> ********************************************************
> CREATE OR REPLACE
> PROCEDURE allen_test (i_input in number,o_result out number)
> IS
> v_seq NUMBER;
> BEGIN
> o_result := i_input;
> return;
> END allen_test;
> **************************************
> <procedure id="ProcedureTest" parameterMap="ProcedureTestMap" >
> ALLEN_TEST
> </procedure>
>
> parameterMap id="ProcedureTestMap" class="Hashtable">
> <parameter property="input" column="i_input" dbType="integer"
> direction="Input" />
> <parameter property="result" column="o_result"
> dbType="integer" direction="Output" />
> </parameterMap>
> ****************************************
> public long ProcedureTest()
> {
> Hashtable ht = new Hashtable();
> ht["input"] = 1;
> ht["result"] = 0;
> m_DaoFacade.QueryForObject<Hashtable>("ProcedureTest",
> ht);
> return Convert.ToInt32(ht["result"]);
> }
> #endregion
> **********************************************
>
> So please help how to call procedure in oracle package using
> IBatis.Net.
>
> Thanks very much!
> allen
> 2007.9.21
>
>
>
>
> ______________________________________________________________
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: RE: How to call procedure in oracle package using
> IBatis.Net.
> Date: Fri, 21 Sep 2007 20:32:17 +0800
>
> Dear all,
> my whole sqlmap:
> <?xml version="1.0" encoding="utf-8" ?>
> <sqlMap namespace="CommonBase"
> xmlns="http://ibatis.apache.org/mapping"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <statements>
> <procedure id="ProcedureTestPkg"
> parameterMap="ProcedureTestMapPkg" >
> ALLEN_PKG.ALLEN_TEST
> </procedure>
>
> </statements>
> <parameterMaps>
> <parameterMap id="ProcedureTestMapPkg"
> class="Hashtable">
> <parameter property="input" column="i_input "
> dbType="integer" direction="Input" />
> <parameter property="result" column="o_result"
> dbType="integer" direction="Output" />
> </parameterMap>
> </parameterMaps>
> </sqlMap>
>
> *******************************************
> SqlMapConfig like below database node, the othe node is
> like the standard config:
> <database>
> <provider name="OleDb1.1"/>
> <dataSource name="darwine_test"
> connectionString="Provider=OraOLEDB.Oracle.1;Password=oracle;Persist
> Security Info=True;User ID=rddarwine;Data Source=darwine_rd"/>
> </database>
>
> I only know "Queryforobject","Queryforlist", any other?
>
> but with this config,i can call the procedure successfully if
> this procedure not in package,but in oracle, i don't konw why?
> like below:
> <procedure id="Pr ocedureTest" parameterMap="ProcedureTestMap"
> >
> ALLEN_TEST
> </procedure>
>
> parameterMap id="ProcedureTestMap" class="Hashtable">
> <parameter property="input" column="i_input"
> dbType="integer" direction="Input" />
> <parameter property="result" column="o_result"
> dbType="integer" direction="Output" />
> </parameterMap>
>
> Thanks!
> 2007.9.21
>
> > Subject: RE: How to call procedure in oracle package using
> IBatis.Net.
> > Date: Fri, 21 Sep 2007 08:15:55 -0400
> > From: [EMAIL PROTECTED]
> > To: [email protected]
> >
> > I think we need to see more of your sql map. All I see is
> your
> > procedure name, and we need to see the xml node that the
> call is defined
> > in.
> >
> > I 'm also not sure you're using the correct call. Unless
> there's an
> > attribute I'm not aware of, Queryforobject is to read an
> object from a
> > result set, not load it from an input/output parameter.
> >
> > -----Original Message-----
> > From: pei allen [mailto:[EMAIL PROTECTED]
> > Sent: Friday, September 21, 2007 8:10 AM
> > To: [email protected]
> > Subject: How to call procedure in oracle package using
> IBatis.Net.
> >
> >
> > Dear all,
> > when i call procedure in oracle package using IBatisNet, it
> always
> > failed.
> > I can call oracle procedre using IBatisNet successfully,but
> to
> > package 's procedure, it dosen't work.
> > The code like this:
> >
> > Oracle's Package like below:
> > **************************************
> > CREATE OR REPLACE
> > PACKAGE allen_pkg
> > IS
> >
> > PROCEDURE ALLEN_TEST (i_input in number,o_result out
> number) ;
> &g t; END;
> > /
> > CREATE OR REPLACE
> > PACKAGE BODY allen_pkg
> > IS
> > PROCEDURE ALLEN_TEST (i_input in number,o_result out
> number)
> > IS
> > v_seq NUMBER;
> > BEGIN
> > o_result := i_input;
> > return;
> > END ALLEN_TEST;
> >
> > END allen_pkg;
> > ***************************************
> >
> > The SqlMap like below:
> > *****************************************************
> >
> >
> > ALLEN_PKG.ALLEN_TEST
> >
> >
> >
> >
> >
> >
> >
> >
> > ******************************************************
> >
> > The Calling function like below:
> > *****************************************************
> > public long ProcedureTest()
> > {
> > Hashtable ht = new Hashtable();
> > ht["input"] = 1;
> > ht["result"] = 0;
> > m_DaoFacade.QueryForObject("ProcedureTestPkg", ht);
> >
> > return Convert.ToInt32( ht["result"]);
> > }
> > ********************************************************
> >
> > when run to "m_DaoFacade.QueryForObject("ProcedureTestPkg",
> ht);", an
> > exception was thrown like below:
> > "PLS-00306: wrong number or types of arguments ......"
> >
> > I use Oracle 10gR2, VS2005 C#, IBatisNet.DataMapper(1.5.1.0)
> >
> > Thanks!
> > 2007.9.21
> >
> >
> >
> >
> >
> _________________________________________________________________
> > Invite your mail contacts to join your friends list with
> Windows Live
> > Spaces. It's easy!
> >
>
> http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.a
> > spx&mkt=en-us
> > --------------------------------------------------------
> >
> > Princeton Retirement Group, Inc - Important Terms
> > This E-mail is not intended for distribution to, or use by,
> any person or entity in any location where such distributio n
> or use would be contrary to law or regulation, or which would
> subject Princeton Retirement Group, Inc. or any affiliate to
> any registration requirement within such location.
> > This E-mail may contain privileged or confidential
> information or may otherwise be protected by work product
> immunity or other legal rules. No confidentiality or privilege
> is waived or lost by any mistransmission. Access, copying or
> re-use of information by non-intended or non-authorized
> recipients is prohibited. If you are not an intended recipient
> of this E-mail, please notify the sender, delete it and do not
> read, act upon, print, disclose, copy, retain or redistribute
> any portion of this E-mail.
> > The transmission and content of this E-mail cannot be
> guaranteed to be secure or error-free. Therefore, we cannot
> represent that the information in this E-mail is complete,
> accurate, uncorrupted, timely or free of viruses, and
> Princeton Retirement Group, Inc. cannot accept any liability
> fo r E-mails that have been altered in the course of delivery.
> Princeton Retirement Group, Inc. reserves the right to
> monitor, review and retain all electronic communications,
> including E-mail, traveling through its networks and systems
> (subject to and in accordance with local laws). If any of your
> details are incorrect or if you no longer wish to receive
> mailings such as this by E-mail please contact the sender by
> reply E-mail.
> >
> > --------------------------------------------------------
>
>
>
> ______________________________________________________________
> Discover the new Windows Vista Learn more!
>
>
>
> ______________________________________________________________________
> Explore the seven wonders of the world Learn more!