
create or replace procedure compile_invalid_procedures(
p_owner varchar2 -- 所有者名称,即 SCHEMA) as--编译某个用户下的无效存储过程
str_sql varchar2(200)begin
for invalid_procedures in (select object_name from all_objects
where status = 'INVALID' and object_type = 'PROCEDURE' and owner=upper(p_owner))loop
str_sql := 'alter procedure ' ||invalid_procedures.object_name || ' compile'begin
execute immediate str_sqlexception
--When Others Then Null
when OTHERS Then
dbms_output.put_line(sqlerrm)endend loopend
2.批量编译视图的存储过程
可以使用jdbc预编译+批量更新,这样的执行效率最高。具体是这样使用的:
循环2000条数据例如数据被装到了一个名叫dataList的List<Map<String,String>>中,那么批量更新就是这样执行的
Map map = null
String data1= ""
String data2 = ""
String sql = insert into biao values(?,?)
PreparedStatement preStmt = conn.prepareStatement(sql)
for(i = 0i<dataList.size()i++){
map = dataList.get(i)
data1=map.get("data1")
data2 = map.get("data2")
preStmt.setString(1,data1)
preStmt.setString(2, data2)
preStmt.addBatch()
}
preStmt.executeBatch()
preStmt.clearBatch()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)