簡體   English   中英

從Java獲取plsql過程的值

[英]Get value of plsql procedure from java

我想從PLSQL Proceduer獲取參數。

PROCEDURE BALANCE(requestDate in date, uniqueId in number, field1 out varchar2, field2 out varchar2)
AS 
BEGIN
    field1 := '110';
    field2 := '100';
END BALANCE;

這是java代碼:

 javax.persistence.Query query = pm.getEntityManager().createNativeQuery(" declare a number(10);" +
            " b number(10);" +
            " begin BALANCE(:date,:id,a,b); end;");
    query.setParameter("date", transaction.getTransactionId().getRequestDate());
    query.setParameter("id", transaction.getTransactionId().getId());
    query.executeUpdate();

我想在Java程序中使用“ a”和“ b”,但我不知道如何獲取“ a”和“ b”? 謝謝。

實際上,您不需要休眠,但需要JDBC。 您沒有out參數的任何實體。

要調用它們,只需注冊ut參數並在調用語句后取回它們。

String getDBUSERByUserIdSql = "{call getDBUSERByUserId(?,?,?,?)}";
callableStatement = dbConnection.prepareCall(getDBUSERByUserIdSql);
callableStatement.setInt(1, 10);
callableStatement.registerOutParameter(2, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(3, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(4, java.sql.Types.DATE);

// execute getDBUSERByUserId store procedure
callableStatement.executeUpdate();

String userName = callableStatement.getString(2);
String createdBy = callableStatement.getString(3);
Date createdDate = callableStatement.getDate(4);

示例中的代碼

暫無
暫無

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

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