我有一个sql查询:
DECLARE @output varchar(100) exec map.GetGenreStatusName 'Genre', '2018-03-16', @output OUTPUT select @output;
它返回类似:
<anonymous>
Completed
我需要从java代码中获取它。我的变体是:
final String statusCheck = "DECLARE @output varchar(100) exec map.GetGenreProtocolStatusName ?, ?, ? OUTPUT select @output;";
List<String> chekList = new ArrayList<>();
try (CallableStatement statement = connection.prepareCall(statusCheck)) {
statement.setString(1, packageName);
statement.setDate(2, date);
statement.registerOutParameter("output", 12);
statement.execute();
ResultSet checkStatusResult = (ResultSet) statement.getObject(0);
chekList.add(checkStatusResult.getString(0));
}
如何将此字符串“Completed”从选择中取出到我的列表中?我用“?”尝试了不同的变体设置和注册输入/输出参数,我尝试像查询一样执行它,但什么也没有。
最佳答案
已将字符串更改为:
final String statusCheck = "exec map.GetGenreProtocolStatusName ?, ?, ?;";
代码:
最终Connection连接 = DriverManager.getConnection(dataSourceUrl, dbProperties);
List<TvScheduleInterval> scheduleIntervals = new ArrayList<>();
List<String> checkList = new ArrayList<>();
try (CallableStatement statement = connection.prepareCall(statusCheck)) {
statement.setString(1, packageName);
statement.setDate(2, date);
statement.registerOutParameter(3,12);
statement.execute();
checkList.add(statement.getString(3));
}
现在工作。
关于java - 声明输出参数并像查询结果、T-SQL、JAVA 一样选择它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423584/