JasperSoft - 在执行JasperReport之前刷新oracle物化视图

时间:2017-06-09 09:40:50

标签: java oracle jasper-reports materialized-views

我创建了一个使用物化视图的Jasper报告。 我想在报告执行之前每次刷新mv以更新数据。 贾斯珀有什么办法吗? 我尝试使用java scriptlet,但它不能以某种方式工作,报告正在执行,但mv没有刷新。

@Override
public void beforeReportInit() throws JRScriptletException {
    try {
        CallableStatement stmt = preparePlSqlCall(
        "DBMS_MVIEW.REFRESH('MV_CHECK_GRAFIK_KUNDEN','C')");
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}


private Connection conn;

private Connection getConnection() throws JRScriptletException {
    if (conn == null) {
        if (getParameterValue(JRFillParameter.REPORT_CONNECTION) != null) {
            conn = (Connection) (getParameterValue(JRFillParameter.REPORT_CONNECTION));
        } else {
            throw new RuntimeException("Keine Datenbank-Verbindung am Report konfiguriert");
        }
    }
    return conn;
}

protected CallableStatement preparePlSqlCall(String sql) throws JRScriptletException, SQLException {
    return getConnection().prepareCall("begin " + sql + "; end;");
}

感谢您的帮助!

0 个答案:

没有答案