簡體   English   中英

如何在JDBC中執行沒有參數的存儲過程?

[英]How do I execute a stored procedure without parameters in JDBC?

我正在嘗試執行沒有輸入變量的存儲過程,例如:

 String  sql2 = "{call vivek}" ;
 System.out.println(sql2);
 System.out.println("Executing procedure without parameters");
 stmt = conn.createStatement();
 stmt.executeQuery(sql2);

但它拋出一個錯誤說:

syntax error at or near "{"
  Position: 1

我試圖用谷歌搜索它,但找不到任何東西。 我該怎么做 ? 順便說一句,它也不適用於 callablestatement

未測試:

CallableStatement cs = null;
cs = conn.prepareCall("{call vivek}");
cs.executeQuery();

http://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html

找不到存儲過程? 當您收到此錯誤時,我將解釋這意味着什么。 假設我們的代碼是這樣的:

String sp="{call GetUnitReferenceMap}";
stmt=conn.prepareCall(sp);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
currencyMap.put(rs.getString(1).trim(), rs.getString(2).trim());

我有 4 個 DB(sample1、sample2、sample3),但是stmt將搜索位置master數據庫(默認數據庫)然后我們會得到一個異常。

我們應該提供數據庫名稱,然后問題將得到解決::

String sp="{call sample1..GetUnitReferenceMap}";

感謝大家的幫助,但以下代碼對我有用:

sql2 += "{exec "+ proc_name2 +"}" ;
cstmt = conn.prepareCall(sql2);
cstmt.executeUpdate();

順便說一下,這里的 cstmt 是 CallableStatement 對象。 我正在使用 Postgresql 數據庫,因此上面的代碼對我有用

這類似於調用不帶參數的函數。

CallableStatement cat = null;
con = YourConnectionClass.getConnection();
cst = con.prepareCall("{call YOUR_PROCEDURE_NAME()}");
cst.executeQuery();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM