oracle中如何批量编译视图和存储过程

oracle中如何批量编译视图和存储过程,第1张

1.批量编译存储工程的存储过程

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()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9263051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存