java--调用Oracle存储过程

Posted on 2013-09-28 20:45  巳沫  阅读(215)  评论(0)    收藏  举报
    /**
     * 表分析,调用存储过程
     */
    public void analyzeTables(String tabName) throws Exception{
        Connection conn = null;
        CallableStatement stmt = null;
        try {
            conn = DBConnection.getDestConnection();
            stmt = conn.prepareCall("{call RHZX.ANALYTABLE(?)}");
            stmt.setString(1, tabName);
            log(INFO, "analyzing table:"+tabName);
            stmt.execute();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw e;
        }finally{
            if(stmt!=null){
                stmt.close();
            }
            DBConnection.closeDest(conn);
        }
    }

 

开发目的:月末日终进行大批量数据拷贝到另一个数据库中,同时为了性能而进行表分析(oracle不使用analyze而是dbms分析)

存储过程:

CREATE OR REPLACE PROCEDURE ANALYTABLE(PARA1 IN VARCHAR2) IS
BEGIN
       DBMS_STATS.GATHER_TABLE_STATS('RHZX',PARA1,CASCADE=> TRUE,ESTIMATE_PERCENT => 100);
END ANALYTABLE;

 

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3