CREATE TABLE T (ID NUMBER, VAL VARCHAR2(20));
CREATE OR REPLACE PROCEDURE P_TEST2 (I IN NUMBER) AS
BEGIN
INSERT INTO T VALUES (I, 'X' || TO_CHAR(I));
COMMIT;
END;
/
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
ID VAL
<%
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.1.6:1521:db";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, "scott", "tiger");
// 調用存儲過程
String proc = "{call P_TEST2(?)}";
CallableStatement cstmt = conn.prepareCall(proc);
cstmt.setInt(1, 33);
cstmt.executeUpdate(); // 或 execute()
cstmt.close();
// 查詢回顯
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM T");
while (rs.next()) {
out.println("" + rs.getString(1) + " " + rs.getString(2) + " ");
}
rs.close(); stmt.close(); conn.close();
%>
Connection closed: <%= conn.isClosed() %>
{call PROC_NAME(?,...)}` 標準 JDBC Escape 語法。