用CallableStatement 一个例子:
String cString = "{?= call yourproc(?)}";//yourproc是你的存储过程
CallableStatement cstmt = m_conn.prepareCall(cString);
cstmt.registerOutParameter(1, Types.INTEGER);//设置第一个?
cstmt.setString(2, Param);//设置第二个?
cstmt.execute();
int iRet = cstmt.getInt(1);
String cString = "{?= call yourproc(?)}";//yourproc是你的存储过程
CallableStatement cstmt = m_conn.prepareCall(cString);
cstmt.registerOutParameter(1, Types.INTEGER);//设置第一个?
cstmt.setString(2, Param);//设置第二个?
cstmt.execute();
int iRet = cstmt.getInt(1);
解决方案 »
- 为啥后台取不到data 定义的flag 定义的值?
- 用java语言开发一个类似新网的网站
- tomcat出现org.apache.catalina.core.StandardWrapperValve invoke错误
- 从JSP里调用JS函数的问题。
- hibernate 3.2支持条件查询的having子句?3.5呢?
- 有人遇到过这样的问题吗????请教
- 已经做了中文编码转换,还是显示问号,这是什么问题?
- 问大家一下,类似go2map 这种地图网站是用什么技术做的?
- 如何在JSP中HIDDEN一个类,请大家帮帮忙
- 掉用bean的时候属性为sessiond的话不是在其他页面就可以不用再写usebean了,是吗?
- 小弟在搞个留言版,需要分页显示,请教那位仁兄贴出你们认为较好的分页程序函数?分不多,最好的一定给分。
- 请问怎么用javascript关闭有多个框架的页面
<%--
create or replace function decuple (cc number)
return number as
begin
return cc * 10;
end;
/
--%>
<%@ page
language="java"
import="java.sql.*"
contentType="text/html;charset=gb2312"
%>
<html>
<body>
<%
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:oradb";
String user = "scott";
String password = "tiger";
Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); CallableStatement cstmt = conn.prepareCall("{? = call decuple(?)}");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setInt(2, 100);
cstmt.execute();
out.println("<b>" + cstmt.getInt(1) + "</b>");
cstmt.close();
conn.close();
%>
</body>
</html>
<%-- testoraproc.jsp --%>
<%--
CREATE OR REPLACE PACKAGE Types AS
TYPE cursor_type IS REF CURSOR;
END Types;
/ CREATE OR REPLACE PROCEDURE GetEmpRS (p_deptno IN emp.deptno%TYPE,
p_recordset OUT Types.cursor_type) AS
BEGIN
OPEN p_recordset FOR
SELECT ename,
empno,
deptno
FROM emp
WHERE deptno = p_deptno
ORDER BY ename;
END GetEmpRS;
/
--%>
<%@ page
language="java"
import="java.sql.*,
oracle.jdbc.driver.*"
contentType="text/html;charset=gb2312"
%>
<html>
<body>
<table border="1">
<%
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:oradb";
String user = "scott";
String password = "tiger";
Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password);
CallableStatement cstmt = conn.prepareCall("{call GetEmpRS(?, ?)}");
cstmt.setInt(1, 30); // DEPTNO
cstmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR
cstmt.execute();
ResultSet rs = ((OracleCallableStatement) cstmt).getCursor(2);
// ResultSet rs = (ResultSet) cstmt.getObject(2);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
%>
<tr>
<%
for (int i = 0; i < numberOfColumns; i++)
{
%>
<th><%= rsmd.getColumnName(i + 1) %></th>
<%
}
%>
</tr>
<%
while (rs.next())
{
%>
<tr>
<%
for (int i = 0; i < numberOfColumns; i++)
{
%>
<td><%= rs.getString(i + 1) %></td>
<%
}
%>
</tr>
<%
}
%>
</table>
<%
rs.close();
cstmt.close();
conn.close();
%>
</body>
</html>