正如對問題的評論所述,Apache Derby存儲過程的實現是Java(public static
)方法。請參閱Apache Derby Wiki文章DerbySQLRoutines,特別是第創建步驟,其中包含如何創建存儲過程的簡單示例。
以下摘錄摘自鏈接的Wiki文章。
的SQL創建過程:
CREATE PROCEDURE DRS2(DP1 INTEGER, DP2 INTEGER)
PARAMETER STYLE JAVA
LANGUAGE JAVA
READS SQL DATA
DYNAMIC RESULT SETS 2
EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows'
是程序執行靜態Java方法:
public static void selectRows(int p1,
int p2,
ResultSet[] data1,
ResultSet[] data2)
throws SQLException
{
Connection conn = DriverManager.getConnection("jdbc:default:connection");
PreparedStatement ps1 = conn.prepareStatement("select * from t1 where i = ?");
ps1.setInt(1, p1);
data1[0] = ps1.executeQuery();
PreparedStatement ps2 = conn.prepareStatement("select * from t1 where i >= ?");
ps2.setInt(1, p2);
data2[0] = ps2.executeQuery();
conn.close();
}
注一試,與資源子句將最好所示的明確conn.close()
。
在鏈路斷開我搜索 「的Apache Derby存儲過程」 事件。
AFAIK,Derby [存儲過程](https://db.apache.org/derby/docs/10.1/ref/rrefcreateprocedurestatement.html)需要用Java編寫。 –
@ElliottFrisch如何創建EXTERNAL NAME?謝謝。我仍然對創建這個存儲過程感到困惑 – Francisunoxx
通過在'class'中寫入Java靜態方法。 –