`

存储过程—删除表

阅读更多

这两天一直在弄存储过程,稍微有点头绪,记录一下以备后用。

判断表是否存在,存在则将其删除。

CREATE OR REPLACE PROCEDURE PROC_DROPTABLE(reportName in varchar2) AS
v_tablename varchar(200);
BEGIN
  SELECT table_name INTO v_tablename FROM all_tables WHERE table_name = reportName;
   IF v_tablename IS NOT NULL THEN
    EXECUTE IMMEDIATE 'drop table ' || reportName;
     COMMIT;
     END IF;
    EXCEPTION
     WHEN OTHERS THEN
        ROLLBACK;
    RETURN;
END; 

在JAVA中用JDBCTemplate调用:

String sql = "{call PROC_DROPTABLE(?)}";
getJdbcTemplate().execute(sql, new CallableStatementCallback() {
        @Override
        public Object doInCallableStatement(java.sql.CallableStatement cs) throws SQLException,
                        DataAccessException {
                cs.setString(1, tableName);
                cs.execute();
                return null;
        }
});

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics