欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于存储过程的编译有关问题

更新时间: 2014-01-05 02:14:24 责任编辑: Author_N1

 

关于存储过程的编译问题
想写一个程序C#程序,通过该程序在Oracle数据库中创建一个存储过程,然后再在C#程序中调用该存储过程,然而调用的时候却出现异常,经检查发现是存储过程没有编译的原因。
现在我想知道,有没有什么办法在程序中编译存储过程?
--参考方法--
我感觉是这个存储过程使用代码生成的,而生成完后没有commit。因为你的事务一直连接数据库,有点类似于在oracle中使用OLD:不能修改本表的数据一样
--参考方法--
你在创建完存储过程后手动提交下试试,还有是不是你的存储过程中有insert的语句啊
--参考方法--
引用:
调用成功,数据库中也已经生成了存储过程,只不过存储过程没有编译,处于Invilid状态,所以调用时会失败。
如果手动将生成的存储过程编译,则调用成功。
现在想将编译这步也用程序自动完成。

另外,有谁能解释下Oracle的存储过程为什么要编译?作用是什么?


存储过程没有编译的话,数据库中怎么会生成它?而且还是invalid状态?
--参考方法--
可以在c#中调用ORACLE自带的脚本utlrp.sql,编译无效的对象。
也可以自己写脚本。
另附上tianlesoftware的博客:http://blog.csdn.net/tianlesoftware/article/details/7412555
--参考方法--
如果你的过程真没有问题的话,
你就再alter procedure [procedure_name] compile;
重编译后再调用
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:24
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7394/
本文WWW.DOC100.NET DOC100.NET版权所有。