首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

JSP 中調用 Oracle 存儲過程最小化示例:INSERT 參數傳遞與結果回顯

     編輯:Oracle 資料庫基礎

資料庫端:建立測試表與存儲過程


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;
/

JSP 頁面完整代碼


<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>



<%
  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.close(); stmt.close(); conn.close();
%>
IDVAL
" + rs.getString(1) + "" + rs.getString(2) + "

Connection closed: <%= conn.isClosed() %>

關鍵點提示

  • JSP 中建議使用 **連線池** (DataSource) 而非直連,此處為演示簡化。
  • `CallableStatement` 使用 `{call PROC_NAME(?,...)}` 標準 JDBC Escape 語法。
  • `executeUpdate()` 適用於 DML 類過程,`execute()` 通用。
  • 生產環境務必在 `finally` 區塊關閉資源,避免洩漏。
  • 中文亂碼處理:確保 `contentType` charset、DB `NLS_LANG`、JVM `file.encoding` 三者一致。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved