Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 67578 invoked from network); 15 Mar 2007 15:34:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Mar 2007 15:34:37 -0000 Received: (qmail 27643 invoked by uid 500); 15 Mar 2007 15:34:42 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 27613 invoked by uid 500); 15 Mar 2007 15:34:41 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 27602 invoked by uid 99); 15 Mar 2007 15:34:41 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Mar 2007 08:34:41 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (herse.apache.org: local policy) Received: from [12.109.229.243] (HELO WBEXCH.WBADDC1.COM) (12.109.229.243) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Mar 2007 08:34:30 -0700 Content-class: urn:content-classes:message Subject: RE: Understanding stored procedure return types MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Date: Thu, 15 Mar 2007 09:34:09 -0600 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Understanding stored procedure return types Thread-Index: AcdmlyBRnXtiu5ywQ6Gqk1oefJopeQAfy7qA References: From: "Dave Rodenbaugh" To: X-Virus-Checked: Checked by ClamAV on apache.org Hi Collin, I struggled with this for a bit as well...Here's how we're doing it (and = it works, which is always a bonus). SQLMap fragment: {call ?:=3D CDS_OWNER.ORDSVC_APP.PARTNER_REFERENCE_UNIQUE(?, ?, = ?)} Java invocation: HashMap paramMap =3D new HashMap(); paramMap.put("returnvaluecolumn", new String()); paramMap.put("partnerSystemIdIn", partnerSystemIdIn); paramMap.put("partnerReferenceIdIn", partnerReferenceIdIn); paramMap.put("trackingTypeIdIn", trackingTypeIdIn); //Invoke the SP queryForObject("partnerReferenceUnique", paramMap); return (java.lang.String)paramMap.get("returnvaluecolumn"); There's nothing magic in 'returnvaluecolumn'--that's just a name we = picked to be obvious. No need for ResultMap stuff, since there's only = one value coming back... Hope that helps, -Dave=20 -----Original Message----- From: Collin Peters [mailto:cadiolis@gmail.com]=20 Sent: Wednesday, March 14, 2007 6:16 PM To: user-java@ibatis.apache.org Subject: Understanding stored procedure return types Hi all, I am trying to figure out return types in stored procedures. I am using PostgreSQL and have a simple function called saveUser. Here is the important parts of the stored procedure: CREATE OR REPLACE FUNCTION save_member_basic(in_user_id integer, in_enterprise_id integer, in_username text, in_password text, in_firstname text, in_lastname text) RETURNS integer AS $BODY$ DECLARE ... return _user_id; END $BODY$ LANGUAGE 'plpgsql' VOLATILE; So it is a stored procedure that has 6 arguments, and a single integer return value. I have been able to successfully call the function with this sqlmap: { call save_member_basic(?, ?, ?, ?, ?, ?) }