﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-hk2000c技术专栏-随笔分类-Oracle存储过程</title><link>http://www.blogjava.net/hk2000c/category/27381.html</link><description>技术源于哲学，哲学来源于生活

关心生活，关注健康，关心他人

</description><language>zh-cn</language><lastBuildDate>Fri, 16 Nov 2007 09:29:06 GMT</lastBuildDate><pubDate>Fri, 16 Nov 2007 09:29:06 GMT</pubDate><ttl>60</ttl><item><title>Java调用Oracle的过程和函数</title><link>http://www.blogjava.net/hk2000c/archive/2007/11/16/161077.html</link><dc:creator>hk2000c</dc:creator><author>hk2000c</author><pubDate>Fri, 16 Nov 2007 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/hk2000c/archive/2007/11/16/161077.html</guid><wfw:comment>http://www.blogjava.net/hk2000c/comments/161077.html</wfw:comment><comments>http://www.blogjava.net/hk2000c/archive/2007/11/16/161077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hk2000c/comments/commentRss/161077.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hk2000c/services/trackbacks/161077.html</trackback:ping><description><![CDATA[<p align="left">内容或简介：<br />
/**<br />
调用数据库里的一个函数<br />
一个函数本质上一个返回一个结果的存储过程，这个例子示范了怎么调用有in、out和in/out参数的函数<br />
***********************************/<br />
CallableStatement cs;<br />
try {<br />
// 调用一个没有参数的函数; 函数返回 a VARCHAR<br />
// 预处理callable语句 <br />
<p>&nbsp; cs = connection.prepareCall("{? = call myfunc}");<br />
<br />
//&nbsp;注册返回值类型<br />
cs.registerOutParameter(1, i);<br />
<br />
// Execute and retrieve the returned value<br />
cs.execute();<br />
String retValue = cs.getString(1);<br />
<br />
// 调用有一个in参数的函数; the function returns a VARCHAR<br />
cs = connection.prepareCall("{? = call myfuncin(?)}");<br />
<br />
// Register the type of the return value<br />
cs.registerOutParameter(1, Types.VARCHAR);<br />
<br />
// Set the value for the IN parameter<br />
cs.setString(2, "a string");<br />
<br />
// Execute and retrieve the returned value<br />
cs.execute();<br />
retValue = cs.getString(1);<br />
<br />
// 调用有一个out参数的函数; the function returns a VARCHAR<br />
cs = connection.prepareCall("{? = call myfuncout(?)}");<br />
<br />
// Register the types of the return value and OUT parameter<br />
cs.registerOutParameter(1, Types.VARCHAR);<br />
cs.registerOutParameter(2, Types.VARCHAR);<br />
<br />
// Execute and retrieve the returned values<br />
cs.execute();<br />
retValue = cs.getString(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return value<br />
String outParam = cs.getString(2);&nbsp;&nbsp;&nbsp; // OUT parameter<br />
<br />
// 调用有一个in/out参数的函数; the function returns a VARCHAR<br />
cs = connection.prepareCall("{? = call myfuncinout(?)}");<br />
<br />
// Register the types of the return value and OUT parameter<br />
cs.registerOutParameter(1, Types.VARCHAR);<br />
cs.registerOutParameter(2, Types.VARCHAR);<br />
<br />
// Set the value for the IN/OUT parameter<br />
cs.setString(2, "a string");<br />
<br />
// Execute and retrieve the returned values<br />
cs.execute();<br />
retValue = cs.getString(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return value<br />
outParam = cs.getString(2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // IN/OUT parameter<br />
} catch (SQLException e) {<br />
} </p>
<img src ="http://www.blogjava.net/hk2000c/aggbug/161077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hk2000c/" target="_blank">hk2000c</a> 2007-11-16 17:18 <a href="http://www.blogjava.net/hk2000c/archive/2007/11/16/161077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>