存储过程修改后,jdbc thin第一次调用报错 每次存储过程修改后,jdbc的第一次调用总是报错,后来就没问题了虽然没有大碍,但很不方便理由大概能猜到一二不知道有没有解决办法?是不是用另外一个固定的存储过程类似execute immediate这样的方法调用可以解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 oracle的库缓存区中保存着已经编译程序包的代码及执行树等信息.在库缓存区libarary cache中存储的程序包是有时间标签的.你每次编译完了之后, 该程序包的时间标签发生了改变, 所以libarary cache中存储的那个包就失效了.jdbc在编译之后的第一次调用时发现失效后会重新编译一次. 这样再次调用就ok了.可能的解决方法1, 就是楼主所说的在另外一个固定的存储过程中使用execute immediate调用这个包. 这样处理实际上是每次执行都重新编译, 会增加多余的分析时间花销;解决方式2是你在编译完过程后, 自己手工或者写代码调用一次新编译后的过程. 谢谢1楼的建议,你说的“解决方式2”,是不是就是jdbc连接重启 修改后,就重新recompile一把。或者在sqlplus里调用一次。 修改后重新编译或者oracle内调用一次没用就如同1楼说的“jdbc在编译之后的第一次调用时发现失效后会重新编译一次”必须是jdbc调用 ORA-12535: TNS: 操作超时 Oracle在线日志序列号的作用是什么? 关于索引的一个模糊的问题 看看这个sql怎么优化,谢谢 为什么要自己设置表空间,用默认的有什么问题 为什么无法更改表空间的大小 Oracle如何授权给用户到具体的字段? 在oracle里,什么是“事件”,“作业”,“报告”?请高手帮我深入理解一下? 向各位大侠求教一条SQL语句,关于记录前后相减的!!! 救命呀,在WIN2000上连ORACLE的安装程序都打不开,怎办? UNIX环境下用管道将ORACLE表中数据导出到文件中,请高手给个例子指点,多谢! 急 ,级联删除自表出错,哪位高人能指点一下?
在库缓存区libarary cache中存储的程序包是有时间标签的.
你每次编译完了之后, 该程序包的时间标签发生了改变, 所以libarary cache中存储的那个包就失效了.
jdbc在编译之后的第一次调用时发现失效后会重新编译一次. 这样再次调用就ok了.
可能的解决方法1, 就是楼主所说的在另外一个固定的存储过程中使用execute immediate调用这个包. 这样处理实际上是每次执行都重新编译, 会增加多余的分析时间花销;
解决方式2是你在编译完过程后, 自己手工或者写代码调用一次新编译后的过程.
你说的“解决方式2”,是不是就是jdbc连接重启
修改后,就重新recompile一把。或者在sqlplus里调用一次。
必须是jdbc调用