﻿<?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-WEBIKE</title><link>http://www.blogjava.net/yake112/</link><description>Web &amp; me，一起微笑</description><language>zh-cn</language><lastBuildDate>Sun, 21 Jun 2026 11:29:53 GMT</lastBuildDate><pubDate>Sun, 21 Jun 2026 11:29:53 GMT</pubDate><ttl>60</ttl><item><title>JAVA调用oracle函数返回游标处理</title><link>http://www.blogjava.net/yake112/articles/201183.html</link><dc:creator>崖客</dc:creator><author>崖客</author><pubDate>Sat, 17 May 2008 16:37:00 GMT</pubDate><guid>http://www.blogjava.net/yake112/articles/201183.html</guid><wfw:comment>http://www.blogjava.net/yake112/comments/201183.html</wfw:comment><comments>http://www.blogjava.net/yake112/articles/201183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yake112/comments/commentRss/201183.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yake112/services/trackbacks/201183.html</trackback:ping><description><![CDATA[<br />
oracle函数如下： <br />
<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><span style="font-size: 10pt">Create&nbsp;or&nbsp;REPLACE&nbsp;FUNCTION&nbsp;AAAAA&nbsp;(<br />
&nbsp;&nbsp;&nbsp;&nbsp;P_USER_ID_I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;&nbsp;VARCHAR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--接收输入参数<br />
&nbsp;)<br />
RETURN&nbsp;&nbsp;&nbsp;SYS_REFCURSOR<br />
AS<br />
&nbsp;&nbsp;&nbsp;&nbsp;P_RESULT_SET_O&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYS_REFCURSOR;&nbsp;--返回游标<br />
&nbsp;&nbsp;&nbsp;&nbsp;X_SQL&nbsp;VARCHAR2(200);<br />
BEGIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X_SQL&nbsp;:='select&nbsp;user_id,user_name,email&nbsp;from&nbsp;user_mst&nbsp;<br />
&nbsp;&nbsp; where<br />
&nbsp;&nbsp;&nbsp; &nbsp;user_id&nbsp;like&nbsp;''%'&nbsp;||&nbsp;P_USER_ID_I&nbsp;||'%''';&nbsp;&nbsp;--生成SQL语句<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPEN&nbsp;P_RESULT_SET_O&nbsp;FOR&nbsp;X_SQL;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RETURN&nbsp;P_RESULT_SET_O;&nbsp;&nbsp;&nbsp;--返回游标<br />
END&nbsp;AAAAA;</span><br />
</div>
<br />
<br />
java中调用，并处理：<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><span style="font-size: 10pt">CallableStatement&nbsp;cstmt&nbsp;=&nbsp;null;<br />
ResultSet&nbsp;rs&nbsp;=&nbsp;null;<br />
try&nbsp;{<br />
String&nbsp;callSql&nbsp;=&nbsp;"{?&nbsp;=&nbsp;call&nbsp;AAAAA(?)}";<br />
cstmt&nbsp;=&nbsp;conn.prepareCall(callSql);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
cstmt.setString(2,&nbsp;"userName");<br />
<br />
cstmt.registerOutParameter(1,&nbsp;oracle.jdbc.OracleTypes.CURSOR);<br />
<br />
cstmt.execute();<br />
<br />
rs&nbsp;=&nbsp;(ResultSet)&nbsp;cstmt.getObject(1);<br />
if&nbsp;(rs&nbsp;!=&nbsp;null)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("usercd");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("userName");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("EMAIL");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(rs.next())&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(rs.getString(1)+"&nbsp;&nbsp;&nbsp;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(rs.getString(2)+"&nbsp;&nbsp;&nbsp;");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(rs.getString(3));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
}</span><br />
</div>
<br />
<br />
<img src ="http://www.blogjava.net/yake112/aggbug/201183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yake112/" target="_blank">崖客</a> 2008-05-18 00:37 <a href="http://www.blogjava.net/yake112/articles/201183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>alter table 用法大全</title><link>http://www.blogjava.net/yake112/articles/201040.html</link><dc:creator>崖客</dc:creator><author>崖客</author><pubDate>Sat, 17 May 2008 01:11:00 GMT</pubDate><guid>http://www.blogjava.net/yake112/articles/201040.html</guid><wfw:comment>http://www.blogjava.net/yake112/comments/201040.html</wfw:comment><comments>http://www.blogjava.net/yake112/articles/201040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yake112/comments/commentRss/201040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yake112/services/trackbacks/201040.html</trackback:ping><description><![CDATA[<p>----------------MODIFY--------------------------------------------------</p>
<p>某列定义非空约束 <br />
SQL&gt;ALTER TABLE office_organization <br />
<br />
&gt;MODIFY(desc VARCHAR2(20) <br />
<br />
&gt;CONSTRAINT nn_desc NOT NULL) <br />
<br />
某列定义唯一关键字 <br />
SQL&gt;ALTER TABLE office_organization <br />
<br />
&gt;MODIFY(office_name VATCHAR2(20) <br />
<br />
&gt;CONSTRAINT uq_officename UNIQUE) <br />
----------------ADD--------------------------------------------------</p>
<p>ALTER TABLE jxzy.switch <br />
<br />
&gt;ADD (DESC VARCHAR2(30));</p>
<p>----------------DISABLE---------------------------------------------</p>
<p>使主键约束无效 <br />
SQL&gt;ALTER TABLE switch DISABLE PRIMARY KEY</p>
<img src ="http://www.blogjava.net/yake112/aggbug/201040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yake112/" target="_blank">崖客</a> 2008-05-17 09:11 <a href="http://www.blogjava.net/yake112/articles/201040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在java中调用数据库中的函数【收集】</title><link>http://www.blogjava.net/yake112/articles/197735.html</link><dc:creator>崖客</dc:creator><author>崖客</author><pubDate>Fri, 02 May 2008 06:45:00 GMT</pubDate><guid>http://www.blogjava.net/yake112/articles/197735.html</guid><wfw:comment>http://www.blogjava.net/yake112/comments/197735.html</wfw:comment><comments>http://www.blogjava.net/yake112/articles/197735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yake112/comments/commentRss/197735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yake112/services/trackbacks/197735.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">内容或简介：</p>
<p style="text-indent: 2em">/**</p>
<p style="text-indent: 2em">调用数据库里的一个函数</p>
<p style="text-indent: 2em">一个函数本质上一个返回一个结果的存储过程，这个例子示范了怎么调用有in、out和in/out参数的函数</p>
<p style="text-indent: 2em">***********************************/</p>
<p style="text-indent: 2em">CallableStatement cs;</p>
<p style="text-indent: 2em">try {</p>
<p style="text-indent: 2em">// 调用一个没有参数的函数; 函数返回 a VARCHAR</p>
<p style="text-indent: 2em">// 预处理callable语句 </p>
<p style="text-indent: 2em">&nbsp; cs = connection.prepareCall("{? = call myfunc}");</p>
<p style="text-indent: 2em">//&nbsp;注册返回值类型</p>
<p style="text-indent: 2em">cs.registerOutParameter(1, i);</p>
<p style="text-indent: 2em">// Execute and retrieve the returned value</p>
<p style="text-indent: 2em">cs.execute();</p>
<p style="text-indent: 2em">String retValue = cs.getString(1);</p>
<p style="text-indent: 2em">// 调用有一个in参数的函数; the function returns a VARCHAR</p>
<p style="text-indent: 2em">cs = connection.prepareCall("{? = call myfuncin(?)}");</p>
<p style="text-indent: 2em">// Register the type of the return value</p>
<p style="text-indent: 2em">cs.registerOutParameter(1, Types.VARCHAR);</p>
<p style="text-indent: 2em">// Set the value for the IN parameter</p>
<p style="text-indent: 2em">cs.setString(2, "a string");</p>
<p style="text-indent: 2em">// Execute and retrieve the returned value</p>
<p style="text-indent: 2em">cs.execute();</p>
<p style="text-indent: 2em">retValue = cs.getString(1);</p>
<p style="text-indent: 2em">// 调用有一个out参数的函数; the function returns a VARCHAR</p>
<p style="text-indent: 2em">cs = connection.prepareCall("{? = call myfuncout(?)}");</p>
<p style="text-indent: 2em">// Register the types of the return value and OUT parameter</p>
<p style="text-indent: 2em">cs.registerOutParameter(1, Types.VARCHAR);</p>
<p style="text-indent: 2em">cs.registerOutParameter(2, Types.VARCHAR);</p>
<p style="text-indent: 2em">// Execute and retrieve the returned values</p>
<p style="text-indent: 2em">cs.execute();</p>
<p style="text-indent: 2em">retValue = cs.getString(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return value</p>
<p style="text-indent: 2em">String outParam = cs.getString(2);&nbsp;&nbsp;&nbsp; // OUT parameter</p>
<p style="text-indent: 2em">// 调用有一个in/out参数的函数; the function returns a VARCHAR</p>
<p style="text-indent: 2em">cs = connection.prepareCall("{? = call myfuncinout(?)}");</p>
<p style="text-indent: 2em">// Register the types of the return value and OUT parameter</p>
<p style="text-indent: 2em">cs.registerOutParameter(1, Types.VARCHAR);</p>
<p style="text-indent: 2em">cs.registerOutParameter(2, Types.VARCHAR);</p>
<p style="text-indent: 2em">// Set the value for the IN/OUT parameter</p>
<p style="text-indent: 2em">cs.setString(2, "a string");</p>
<p style="text-indent: 2em">// Execute and retrieve the returned values</p>
<p style="text-indent: 2em">cs.execute();</p>
<p style="text-indent: 2em">retValue = cs.getString(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return value</p>
<p style="text-indent: 2em">outParam = cs.getString(2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // IN/OUT parameter</p>
<p style="text-indent: 2em">} catch (SQLException e) {</p>
<p style="text-indent: 2em">} </p>
<img src ="http://www.blogjava.net/yake112/aggbug/197735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yake112/" target="_blank">崖客</a> 2008-05-02 14:45 <a href="http://www.blogjava.net/yake112/articles/197735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts报错：Cannot find bean ××× in scope request</title><link>http://www.blogjava.net/yake112/articles/196632.html</link><dc:creator>崖客</dc:creator><author>崖客</author><pubDate>Sun, 27 Apr 2008 13:08:00 GMT</pubDate><guid>http://www.blogjava.net/yake112/articles/196632.html</guid><wfw:comment>http://www.blogjava.net/yake112/comments/196632.html</wfw:comment><comments>http://www.blogjava.net/yake112/articles/196632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yake112/comments/commentRss/196632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yake112/services/trackbacks/196632.html</trackback:ping><description><![CDATA[1、在struts做查询数据的页面时，页面报错<br />
<pre>javax.servlet.ServletException: Cannot find bean jlist in scope request
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.version.list_jsp._jspService(list_jsp.java:143)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
</pre>
<br />
<br />
2、定位问题<br />
1）action类代码如下，且经过验证list是存在数据的<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid">&nbsp;&nbsp;List list = new ArrayList();<br />
&nbsp;&nbsp;VersionBean bean = new VersionBean();<br />
&nbsp;&nbsp;&nbsp;&nbsp; ServletContext app = request.getSession().getServletContext();<br />
&nbsp;&nbsp;&nbsp;&nbsp; String sql = (String) app.getAttribute("f_listVersion");<br />
&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;list = bean.qryVersion(sql);<br />
&nbsp;&nbsp;} catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp;logger.error("QryVersion failed！");<br />
&nbsp;&nbsp;&nbsp;logger.error(e.getMessage());<br />
&nbsp;&nbsp;&nbsp;return mapping.findForward("fail");<br />
&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;request.setAttribute("jlist",list);<br />
return mapping.findForward("success");</div>
<br />
<br />
2）jsp显示页面，代码也正常<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid">&nbsp;&nbsp; &lt;logic:present name="jlist" &gt;<br />
&nbsp;&nbsp; &lt;logic:iterate id="list" name="jlist" scope="request"&gt;<br />
&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&lt;td height="46" width="82" align="center"&gt;　<br />
&nbsp;&nbsp;&lt;bean:write name="list" property="verID"/&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;td height="46" width="138" align="center"&gt;　<br />
&nbsp;&nbsp;&lt;bean:write name="list" property="name"/&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;td height="46" width="58" align="center"&gt;　<br />
&nbsp;&nbsp;&lt;bean:write name="list" property="status"/&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;td height="46" width="232" align="center"&gt;<br />
&nbsp;&nbsp;&lt;bean:write name="list" property="description"/&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&lt;td height="46" width="50" align="center"&gt;<br />
&nbsp;&nbsp;&lt;input type="radio" value="&lt;bean:write name="list" property="verID"/&gt;" name="verID"&gt;<br />
　&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp; &lt;/logic:iterate&gt;<br />
&nbsp;&nbsp; &lt;/logic:present&gt;</div>
<br />
<br />
<br />
3）接下来查看struts-config.xml 配置文件，发现forward redirect属性为true，当试着修改成false的时候，重启tomcat，就查询出来结果了。<br />
<br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid">&nbsp;&nbsp;&nbsp; &lt;action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path="/version/listVersion"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="com.webike.action.ListVersionAction"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope="request"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="success" path="/version/list.jsp" redirect="true"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="fail"&nbsp;&nbsp;&nbsp; path="/version/index.html" redirect="true"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;</div>
<br />
<img src ="http://www.blogjava.net/yake112/aggbug/196632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yake112/" target="_blank">崖客</a> 2008-04-27 21:08 <a href="http://www.blogjava.net/yake112/articles/196632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证数字的正则表达式集[收集]</title><link>http://www.blogjava.net/yake112/articles/196604.html</link><dc:creator>崖客</dc:creator><author>崖客</author><pubDate>Sun, 27 Apr 2008 11:55:00 GMT</pubDate><guid>http://www.blogjava.net/yake112/articles/196604.html</guid><wfw:comment>http://www.blogjava.net/yake112/comments/196604.html</wfw:comment><comments>http://www.blogjava.net/yake112/articles/196604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yake112/comments/commentRss/196604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yake112/services/trackbacks/196604.html</trackback:ping><description><![CDATA[<p>"^\d+$"　　//非负整数...... </p>
<p>"^\d+$"　　//非负整数（正整数 + 0） </p>
<p>"^[0-9]*[1-9][0-9]*$"　　//正整数 </p>
<p>"^((-\d+)|(0+))$"　　//非正整数（负整数 + 0） </p>
<p>"^-[0-9]*[1-9][0-9]*$"　　//负整数 </p>
<p>"^-?\d+$"　　　　//整数 </p>
<p>"^\d+(\.\d+)?$"　　//非负浮点数（正浮点数 + 0） </p>
<p>"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"　　//正浮点数 </p>
<p>"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"　　//非正浮点数（负浮点数 + 0） </p>
<p>"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"　　//负浮点数 </p>
<p>"^(-?\d+)(\.\d+)?$"　　//浮点数 </p>
<p>^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串 </p>
<p>^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串 </p>
<p>^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串 </p>
<p>^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串 </p>
<p>^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串 </p>
<p>^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$　　　　//匹配email地址 </p>
<p>^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$　　//匹配url </p>
<img src ="http://www.blogjava.net/yake112/aggbug/196604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yake112/" target="_blank">崖客</a> 2008-04-27 19:55 <a href="http://www.blogjava.net/yake112/articles/196604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>